大家好!在尝试配置多站点设置但彻底失败后,我最终采用了三个独立的容器:一个用于我当前的论坛,另外两个用于归档论坛。我选择了 socket 模式,成功让 NGINX 运行起来,并且 按照这些指南配置了 Let’s Encrypt。
我为归档论坛分配了一个 Unicorn 进程,当前论坛也只有一个,但我现在产生了一个疑问:我真的可以这样开箱即用吗?所有容器都在运行 Redis 和 Sidekiq,这是否会导致严重的冲突?或者我是否应该以某种方式将两个归档容器与第一个容器关联起来,以此类推?因为现在在执行恢复后,我收到了以下错误信息:
哎呀
驱动此讨论论坛的软件遇到了意外问题。对于造成的不便,我们深表歉意。
有关该错误的详细信息已被记录,并生成了自动通知。我们将对此进行检查。
无需进一步操作。不过,如果错误情况持续存在,您可以通过在网站的反馈类别中发布讨论主题来提供额外细节,包括重现错误的步骤。
我从 多站点主题 中了解到,进行多站点配置时应该有两个独立的容器,但我始终不太明白“数据容器”和“Web 容器”具体指什么。这是否意味着只有数据容器使用 SQL,而 Web 容器使用 Redis 和 Sidekiq,还是另有含义?
我学东西很快,对这方面也略知一二,但确实不能说我是一名系统管理员。
pfaffman
(Jay Pfaffman)
2
建议采用以下架构:一个容器运行 Redis 和 PostgreSQL,另一个容器运行 Web 服务器。如果您需要两个 Web 容器,则还需额外配置一个外部的 Nginx 反向代理来转发请求到这些 Web 容器。不过,部署单个多站点服务器会更加简便。
我在 /etc/nginx/sites-available/default 中有如下配置:
server {
server_name www.uskojarukous.fi uskojarukous.fi nyforum.uskojarukous.fi;
location /errorpages/ {
alias /var/www/errorpages/;
}
location / {
proxy_pass http://unix:/var/discourse/shared/nyforum/nginx.http.sock:;
proxy_set_header Host $http_host;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
error_page 502 =502 /errorpages/offline.html;
}
listen [::]:443 ssl ipv6only=on; # managed by Certbot
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/uskojarukous.fi/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/uskojarukous.fi/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
server_name urforum.uskojarukous.fi;
location /errorpages/ {
alias /var/www/errorpages/;
}
location / {
proxy_pass http://unix:/var/discourse/shared/urforum/nginx.http.sock:;
proxy_set_header Host $http_host;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
error_page 502 =502 /errorpages/offline.html;
}
listen [::]:443 ssl; # managed by Certbot
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/uskojarukous.fi/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/uskojarukous.fi/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
server_name ueforum.uskojarukous.fi;
location /errorpages/ {
alias /var/www/errorpages/;
}
location / {
proxy_pass http://unix:/var/discourse/shared/ueforum/nginx.http.sock:;
proxy_set_header Host $http_host;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
error_page 502 =502 /errorpages/offline.html;
}
listen [::]:443 ssl; # managed by Certbot
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/uskojarukous.fi/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/uskojarukous.fi/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
if ($host = www.uskojarukous.fi) {
return 301 https://$host$request_uri;
} # managed by Certbot
if ($host = nyforum.uskojarukous.fi) {
return 301 https://$host$request_uri;
} # managed by Certbot
if ($host = uskojarukous.fi) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
listen [::]:80;
server_name www.uskojarukous.fi uskojarukous.fi nyforum.uskojarukous.fi;
return 404; # managed by Certbot
}
server {
if ($host = ueforum.uskojarukous.fi) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
listen [::]:80;
server_name ueforum.uskojarukous.fi;
return 404; # managed by Certbot
}
server {
if ($host = urforum.uskojarukous.fi) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
listen [::]:80;
server_name urforum.uskojarukous.fi;
return 404; # managed by Certbot
}
其中至少有两个论坛运行正常……