首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Nginx在一台服务器上服务两个站点

使用Nginx在一台服务器上服务两个站点
EN

Stack Overflow用户
提问于 2012-12-03 11:39:45
回答 2查看 61.2K关注 0票数 69

我已经在我的服务器上安装并运行了一个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

代码语言:javascript
运行
复制
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;
}

站点二:

代码语言:javascript
运行
复制
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;
}
EN

回答 2

Stack Overflow用户

发布于 2016-06-02 18:22:14

刚刚遇到了同样的问题,但重复的default_server指令并不是导致此消息的唯一原因。

只能在其中一个server_name指令上使用backlog参数。

示例

站点1:

代码语言:javascript
运行
复制
server {
    listen 80 default_server backlog=2048;
    server_name www.example.com;
    location / {
        proxy_pass http://www_server;
    }

站点2:

代码语言:javascript
运行
复制
server {
    listen 80;    ## NOT NOT DUPLICATE THESE SETTINGS 'default_server backlog=2048;'
    server_name blogs.example.com;
    location / {
        proxy_pass http://blog_server;
    }
票数 17
EN

Stack Overflow用户

发布于 2018-03-03 09:56:58

我也有同样的问题。我通过修改我的/etc/nginx/sites available/example2.com文件修复了这个问题。我将服务器块更改为

代码语言:javascript
运行
复制
server {
        listen 443 ssl; # modified: was listen 80;
        listen [::]:443; #modified: was listen [::]:80;
        . . .
}

在/etc/nginx/sites available/example1.com中,我注释掉了listen 80listen [::]:80,因为服务器块已经配置为443。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13676809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档