使用Nginx从一台服务器提供两个站点
我有一个Rails应用程序,并在我的服务器上运行,现在我想添加另一个。
我希望Nginx检查请求是什么,并根据域名拆分stream量
这两个站点有自己的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; }
网站二:
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参数,将使服务器成为指定地址:端口对的默认服务器。
也很明显,只能有一个默认的服务器。
而且它也说:
listen指令可以有多个特定于与套接字相关的系统调用的附加参数。 它们可以在任何listen指令中指定,但对于给定的地址:端口对只能指定一次。
所以,你应该删除default
并从listen 80
指令之一中deferred
。 同样适用于ipv6only=on
指令。
只是碰到同样的问题,但重复的default_server
指令不是唯一的原因,如果这个消息。
您只能在其中一个server_name
指令中使用backlog
参数。
例
网站1:
server { listen 80 default_server backlog=2048; server_name www.example.com; location / { proxy_pass http://www_server; }
网站2:
server { listen 80; ## NOT NOT DUPLICATE THESE SETTINGS 'default_server backlog=2048;' server_name blogs.example.com; location / { proxy_pass http://blog_server; }