안녕하세요 여러분! 멀티사이트 설정을 시도해 보다가 완전히 실패해서, 결국 현재 포럼용 컨테이너 하나와 아카이브 포럼용 컨테이너 두 개로 총 세 개의 독립된 컨테이너를 구성했습니다. 소켓 방식을 선택했고, NGINX 설정에도 성공했으며 해당 가이드라인에 따라 Let’s Encrypt도 적용해 두었습니다 .
아카이브 포럼에는 유니콘(unicorn) 프로세스를 하나씩, 현재 포럼에도 하나씩 할당했는데, 이런 생각이 들었습니다. 이렇게 기본 설정 그대로 진행해도 괜찮은 걸까요? 모든 컨테이너가 redis와 sidekiq를 실행하고 있어서 문제가 크게 발생할까요? 아니면 아카이브 컨테이너 두 개를 첫 번째 컨테이너에 어떻게든 연결하는 방식이 맞을까요? 왜냐하면 이제 복구(restore) 이후에 다음과 같은 메시지가 뜨고 있기 때문입니다:
Oops
The software powering this discussion forum encountered an unexpected problem. We apologize for the inconvenience.
Detailed information about the error was logged, and an automatic notification generated. We’ll take a look at it.
No further action is necessary. However, if the error condition persists, you can provide additional detail, including steps to reproduce the error, by posting a discussion topic in the site’s feedback category.
멀티사이트 관련 주제 에서 멀티사이트를 구성할 때는 두 개의 별도 컨테이너가 있어야 한다는 것을 이해했지만, 데이터 컨테이너와 웹 컨테이너가 정확히 무엇을 의미하는지는 여전히 잘 모르겠습니다. 데이터 컨테이너만 sql을 사용하고 웹 컨테이너가 redis와 sidekiq를 사용한다는 뜻인가요?
저는 이 분야에 대해 빠른 학습 능력을 갖추고 있고 어느 정도 지식이 있지만, 시스템 관리사(sysadmin)라고 자처하기는 어렵습니다.
pfaffman
(Jay Pfaffman)
2월 5, 2020, 1:47오후
2
권장 구성은 Redis와 Postgres가 포함된 컨테이너 하나와 웹 서버가 포함된 컨테이너 하나를 사용하는 것입니다. 웹 컨테이너를 두 개 사용하려면 웹 컨테이너로 역방향 프록시하는 별도의 외부 nginx가 필요합니다. 단일 멀티사이트 서버를 사용하는 것이 더 쉬울 것입니다.
/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
}
최소 두 개의 포럼은 정상적으로 작동하고 있습니다…