首页  >  问答  >  正文

反向代理 - 如何配置nginx 同一ip,多域名,不同端口?

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

阿神阿神2713 天前866

全部回复(4)我来回复

  • 世界只因有你

    世界只因有你2017-05-16 17:19:48

    类似这样子

    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; 
        } 
    } 

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

    回复
    0
  • 某草草

    某草草2017-05-16 17:19:48

    你需要配置虚拟主机,让 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的请求就会被转发到相应的端口上,由各自的应用处理。

    回复
    0
  • 巴扎黑

    巴扎黑2017-05-16 17:19:48

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

    回复
    0
  • 某草草

    某草草2017-05-16 17:19:48

    可以用Nginx的反向代理

    回复
    0
  • 取消回复