1. 程式人生 > >nodejs使用nginx埠轉發,埠對映,反向代理,子域名對映到不同埠

nodejs使用nginx埠轉發,埠對映,反向代理,子域名對映到不同埠

工作中經常使用nginx將埠對映到另一個埠,或者子域名分別對映到不同埠。

檢視nginx.conf,可以知道我們可以將配置檔案放在conf.d目錄下.參考連結

在conf.d中新建一個file.conf檔案,檔名可以自己起,需要以.conf為字尾。

下面的程式碼將8090埠轉發到90埠

upstream ubuntu{   #這裡ubuntu可以為其他自定義字串,下方需要填寫對應字串
    server 127.0.0.1:8090;  #8090為需要轉發的埠號
}
server{
    listen 0.0.0.0:90;  #90為轉發到的埠號
    server_name /*此處需要填寫你伺服器的IP地址*/;

    location / {
        proxy_set
_header X-Real-IP $remote_addr; proxy_set_header X-Forward-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-Nginx-Proxy true; proxy_pass http://ubuntu; #與上方對應 proxy_redirect off; } }

或者省略upstream定義,直接定義在proxy_pass

server{
    listen 0.0
.0.0:90; #90為轉發到的埠號 server_name /*此處需要填寫你伺服器的IP地址*/; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forward-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-Nginx-Proxy true; proxy_pass http://127.0
.0.1:8090; #8090為需要轉發的埠號 proxy_redirect off; } }

開啟或重新載入nginx即可完成埠8090對映到90埠

sudo service nginx start #開啟
sudo nginx -s reload  #過載

子域名對映到伺服器某個埠

在conf.d目錄下建立xiaozhu.conf檔案(同樣自定義檔名,以conf為檔案字尾)。

server{
    listen 0.0.0.0:80;
    server_name xiaozhu.10y.xyz;

    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-Nginx-Proxy true;
        proxy_pass http://127.0.0.1:9000;
        proxy_redirect off;
    }
}

執行重啟操作,以應用更改

sudo service nginx start #啟用nginx
sudo nginx -s reload  #過載

訪問xiaozhu.10y.xyz即可,如果xiaozhu.conf中server定義監聽其他埠則需訪問對應埠:

server{
    listen 0.0.0.0:90; #需訪問xiaozhu.10y.xyz:90
    server_name xiaozhu.10y.xyz;
}

將8000埠對映到某個路徑下,定義location即可

server{
    listen 0.0.0.0:80;
    server_name xiaozhu.10y.xyz;

    location /public {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-Nginx-Proxy true;
        proxy_pass http://127.0.0.1:8000;
        proxy_redirect off;
    }
}

需要注意的是我們可以使用不同的conf 定義不同的server,也可以將server都定義到一個conf檔案中。比如將本文中的file.conf和xiaozhu.conf都放入一個conf檔案中。

如有問題請留言,如果啟用防火牆,則需開啟對應埠,使用AWS伺服器需要更改伺服器安全組,新增響應入站規則,開啟對應埠。