동일한 서버에 domain1.com과 domain2.com이라는 두 개의 도메인이 연결되어 있습니다.
이러한 도메인 이름을 사용하여 두 개의 별도 웹사이트를 구성하려고 하면 nginx 오류 500이 발생합니다.
첫 번째 도메인에 nginx를 설정했습니다. 사용 가능한 사이트에서 프로필을 생성하고 이를 활성화된 사이트에 연결했습니다.
다음은 sites-available에 저장되고 sites-enabled에 연결된 domain1.conf 파일입니다.
server {
server_name domain1.com, www.domain1.com;
listen 80;
location / {
proxy_pass https://somehost/;
proxy_redirect default;
}
}
server {
server_name domain1.com, www.domain1.com;
listen 443 ssl;
location / {
proxy_pass https://somehost/;
proxy_redirect default;
}
ssl_certificate crt;
ssl_certificate_key key;
}
완벽하게 작동합니다. 또한 이 프로필을 사용하여 domain2.com에 액세스하려고 하면 domain1.com 콘텐츠가 표시됩니다.
사용 가능한 사이트에서 domain2.conf 파일을 생성하고 활성화된 사이트에 연결하려고 하면 두 사이트 모두에서 nginx 오류 500이 발생합니다.
domain2.conf:
server {
server_name domain2.com, www.domain2.com;
listen 80;
location / {
proxy_pass https://someotherhost/;
proxy_redirect default;
}
}
server {
server_name domain2.com, www.domain2.com;
listen 443 ssl;
location / {
proxy_pass https://someotherhost/;
proxy_redirect default;
}
ssl_certificate crt;
ssl_certificate_key key;
}
또한 이 두 파일을 하나의 domain1-2.conf 파일에 넣으려고 하면 동일한 오류가 발생합니다.
사용 가능한 사이트 및 활성화된 사이트에는 다른 파일이나 링크가 없습니다. 서버는 ubuntu20.04이고 단일 서버에서 여러 사이트를 작업해야 합니다. 내가 뭘 잘못했나요?
고쳐 쓰다:
오류가 발생하지 않습니다. 경고만. 브라우저에서 domain2.com에 접속하려고 할 때 error.log에 기록되는 문자열입니다.
2023/06/19 13:07:00 [alert] 107176#107176: *110116 768 worker_connections are not enough while connecting to upstream, client: 123.456.789.000, server: domain1.com,, request: "GET / HTTP/1.0", upstream: "https://123.456.789.000:443/", host: "domain1.com"
2023/06/19 13:07:01 [alert] 107176#107176: *110880 768 worker_connections are not enough while connecting to upstream, client: 123.456.789.000, server: domain1.com,, request: "GET /favicon.ico HTTP/1.0", upstream: "https://123.456.789.000:443/favicon.ico", host: "domain1.com", referrer: "https://domain2.com/"
답변1
의견을 보내주신 @Richard Smith에게 감사드립니다. 문제는 쉼표로 구분된 server_name 지시문에 있습니다.
nginx -t
이 오류는 나에게 표시되지 않습니다.
server {}
nginx는 두 파일의 모든 지시문을 읽고 server_name
지시문에 쉼표가 있기 때문에 지시문을 무시하는 것 같습니다 . 이것이 바로 오류 500이 발생하는 이유입니다.