Nginx로 하나의 서버에서 두 사이트 제공
내 서버에 Rails 앱이 설치되어 실행 중이며 이제 다른 앱을 추가하고 싶습니다.
Nginx가 요청이 무엇인지 확인하고 도메인 이름을 기반으로 트래픽을 분할하고 싶습니다.
두 사이트 모두 자체 nginx.conf가 사이트 사용 가능으로 심볼릭 링크되어 있지만 nginx를 시작하는 동안 오류가 발생합니다. Starting nginx: nginx: [emerg] duplicate listen options for 0.0.0.0:80 in /etc/nginx/sites-enabled/bubbles:6
그들은 둘 다 80에서 듣고 있지만 다른 것을 듣고 있습니다.
사이트 # 1
upstream blog_unicorn {
server unix:/tmp/unicorn.blog.sock fail_timeout=0;
}
server {
listen 80 default deferred;
server_name walrus.com www.walrus.com;
root /home/deployer/apps/blog/current/public;
location ^~ /assets/ {
gzip_static on;
expires max;
add_header Cache-Control public;
}
try_files $uri/index.html $uri @blog_unicorn;
location @blog_unicorn {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://blog_unicorn;
}
error_page 500 502 503 504 /500.html;
client_max_body_size 4G;
keepalive_timeout 10;
}
사이트 2 :
upstream bubbles_unicorn {
server unix:/tmp/unicorn.bubbles.sock fail_timeout=0;
}
server {
listen 80 default deferred;
server_name bubbles.com www.bubbles.com;
root /home/deployer/apps/bubbles/current/public;
location ^~ /assets/ {
gzip_static on;
expires max;
add_header Cache-Control public;
}
try_files $uri/index.html $uri @bubbles_unicorn;
location @bubbles_unicorn {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://bubbles_unicorn;
}
error_page 500 502 503 504 /500.html;
client_max_body_size 4G;
keepalive_timeout 10;
}
default_server 매개 변수 (있는 경우)는 서버가 지정된 주소 : 포트 쌍의 기본 서버가되도록합니다.
또한 하나의 기본 서버 만있을 수 있다는 것도 분명 합니다.
또한 다음과 같이 말합니다.
수신 지시문에는 소켓 관련 시스템 호출에 특정한 몇 가지 추가 매개 변수가있을 수 있습니다. 모든 수신 지시문에서 지정할 수 있지만 주어진 address : port 쌍에 대해 한 번만 지정할 수 있습니다.
So, you should remove default
and deferred
from one of the listen 80
directives. And same applies to ipv6only=on
directive as well.
Just hit this same issue, but the duplicate default_server
directive was not the only cause of this message.
You can only use the backlog
parameter on one of the server_name
directives.
Example
site 1:
server {
listen 80 default_server backlog=2048;
server_name www.example.com;
location / {
proxy_pass http://www_server;
}
site 2:
server {
listen 80; ## NOT NOT DUPLICATE THESE SETTINGS 'default_server backlog=2048;'
server_name blogs.example.com;
location / {
proxy_pass http://blog_server;
}
I was having the same issue. I fixed it by modifying my /etc/nginx/sites-available/example2.com file. I changed the server block to
server {
listen 443 ssl; # modified: was listen 80;
listen [::]:443; #modified: was listen [::]:80;
. . .
}
And in /etc/nginx/sites-available/example1.com I commented out listen 80
and listen [::]:80
because the server block had already been configured for 443.
참고URL : https://stackoverflow.com/questions/13676809/serving-two-sites-from-one-server-with-nginx
'Programing' 카테고리의 다른 글
ASP.Net에서 상태 코드 500을 보내고 여전히 응답에 쓰는 방법은 무엇입니까? (0) | 2020.11.21 |
---|---|
방화범 : iframe으로 cd하는 방법 (0) | 2020.11.21 |
Android에서 캔버스로 원을 그리는 방법은 무엇입니까? (0) | 2020.11.21 |
Emacs에서 현재 버퍼를 닫는 키 시퀀스는 무엇입니까? (0) | 2020.11.20 |
Eclipse의 프로젝트 탐색기보기에서 프로젝트 .jars 제거 (0) | 2020.11.20 |