2013-04-25 47 views
9

我正尝试在两个端口上配置nginx,例如在端口80和端口81上,但目前还没有运行。这里是什么,我试图做一个例子:如何在多个端口上运行Nginx

worker_processes 1; 

events { 
    worker_connections 1024; 
} 

http { 
    include  mime.types; 
    default_type application/octet-stream; 
    sendfile  on; 
    keepalive_timeout 65; 

    server { 
     listen 80; 
     server_name chat.local.com; 

     location/{ 
      proxy_pass http://127.0.0.1:8080; 
      proxy_http_version 1.1; 
      proxy_set_header Upgrade $http_upgrade; 
      proxy_set_header Connection "Upgrade"; 
      proxy_set_header Host $host; 
      proxy_buffering off; 

     } 
     error_page 500 502 503 504 /50x.html; 
     location = /50x.html { 
      root html; 
     } 

    } 

    server { 
     listen 81; 
     server_name console.local.com; 
     location/{ 
      proxy_pass http://127.0.0.1:8888; 
      proxy_http_version 1.1; 
      proxy_set_header Upgrade $http_upgrade; 
      proxy_set_header Connection "Upgrade"; 
      proxy_set_header Host $host; 
      proxy_buffering off; 
     } 
    } 
} 

当我尝试运行console.local.com,它显示了从chat.local.com内容。有没有办法让nginx运行在两个端口上?提前致谢!

回答

7

你的配置看起来不错

我认为这个问题是这样的(纠正我,如果我错了):

  • 你console.local.com 81端口监听,
  • 那意味着你需要访问它作为http://console.local.com:81/
  • 当你访问它作为http://console.local.com/(没有显式的端口,所以默认为端口80) nginx将检查,注意到注意到正在监听端口80为该server_name,并利弊经常会将请求传递给默认的服务器块。由于默认的服务器块是第一个(在没有配置来改变它的情况下),你最终将进入chat.local.com处理。

在所有的情形产生,你想改变你的console.local.com到侦听端口80还因为:

  • 的服务器名指令在两个serverblocks足以区分
  • 避免请求你必须在请求中始终添加:81到域名
+0

嗨Cobaco,我完全忘了,我需要用端口访问页81.感谢您指出该点的点。 – Uday 2013-04-25 07:17:05

3

你可以添加2个简单的listen语句;像下面
听80;
listen 81;

这应该与nginx的工作

相关问题