nodejs使用nginx埠轉發,埠對映,反向代理,子域名對映到不同埠
阿新 • • 發佈:2018-12-17
工作中經常使用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伺服器需要更改伺服器安全組,新增響應入站規則,開啟對應埠。