搜尋

首頁  >  問答  >  主體

反向代理 - 如何配置nginx 同一ip,多網域,不同連接埠?

就是我有一個網域ABC.com
一台伺服器,兩個網站應用程式
兩個網站應用程式掛在不同連接埠
設定了兩個網域,A.ABC.com, B.ABC.com
訪問A.ABC.com和B.ABC.com能指向這兩個應用程式.
如何設定

阿神阿神2755 天前910

全部回覆(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
  • 取消回覆