如何配置nginx 同一ip,多域名,不同端口?

Recoding
  • 417

就是我有一个域名ABC.com
一台服务器,两个网站应用程序
两个网站应用程序挂在不同端口
设置了两个域名,A.ABC.com,B.ABC.com
访问A.ABC.com和B.ABC.com能指向这两个应用程序.
如何配置

回复
阅读 21.9k
5 个回答
✓ 已被采纳

类似这样子

server { 
listen       80; 
server_name  A.ABC.com; 
location / { 
proxy_pass http://localhost:1234; 
proxy_set_header   Host    $host; 
proxy_set_header   X-Real-IP   $remote_addr; 
proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for; 
    } 
} 

另外一个:

server { 
listen       80; 
server_name  B.ABC.com; 
location / { 
proxy_pass http://localhost:4321; 
proxy_set_header   Host    $host; 
proxy_set_header   X-Real-IP   $remote_addr; 
proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for; 
    } 
} 

这样就可以把两个请求转发到对应的本地程序端口上了。。。 :)

你需要配置虚拟主机,让 Nginx 监听不同的域名的80端口,然后转发到各自应用的实际端口

首先,你需要编辑/etc/nginx/nginx.conf,在http模块中引入其他配置文件:

include /etc/nginx/conf.d/*.conf;

这样你就可以在/etc/nginx/conf.d文件夹中分别设置每个虚拟主机。

然后在上面的文件夹下分别新建文件/etc/nginx/conf.d/a.conf/etc/nginx/conf.d/b.conf,当然文件名ab随你起。

server {
    listen       80;
    server_name  a.abc.com;

    access_log /data/node/log/host.access.log  main;

    location / {
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-Ip $remote_addr;
        proxy_set_header X-NginX-Proxy true;
        proxy_pass http://127.0.0.1:<YOUR PORT>/;
        proxy_redirect off;
    }
}

b.abc.com的应用只需要修改上面的server_name就可以。

这样每个访问http://a.abc.com的请求就会被转发到相应的端口上,由各自的应用处理。

添加配置如下:
server {

    listen 80;
    server_name www.a.abc.com a.abc.com;
    #charset koi8-r;
    access_log /var/log/nginx/a.access.log;
    location / {
        proxy_pass http://192.168.1.101:80;(修改为你自己的IP)
        proxy_read_timeout 180s;
        break;
    }

}

server {

    listen 80;
    server_name www.b.abc.com b.abc.com;
    #charset koi8-r;
    access_log /var/log/nginx/b.access.log;
    location / {
        proxy_pass http://192.168.1.102:80;(修改为你自己的IP)
        proxy_read_timeout 180s;
        break;
    }

}

更详细的请参考下面2个链接:
使用Nginx实现同一固定IP上,多个Web站点访问不加端口号
使用Nginx代理IP转发错误,图片/CSS/JS无法正常加载,或请求无法访问

域名指向同一IP,配相应虚拟主机

可以用Nginx的反向代理

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏