起始
今天測試一個需求,需要同事遠程訪問我本地的兩個項目,遠程訪問使用了natapp進行內網穿透,但是由於一個natapp只能綁定訪問一個端口,所以沒辦法同時讓他訪問我的兩個項目,無法測試,我又不想花錢再買一個隧道。
爲了解決這個問題,也爲了以後能更充分的使用natapp的內網穿透,我決定在自己的電腦上使用 nginx代理 來達到目的。
natapp 的使用
natapp 的使用方法網上有許多,可自行百度,這裏提供官網教程:
nginx 安裝
nginx 的windows版本的安裝網上也有,可自行百度,這裏簡單說下:
- 先去下載nginx安裝包
http://nginx.org/en/download.html
下載穩定版本,以 nginx/Windows-1.16.0 爲例,直接下載 nginx-1.16.0.zip
- 下載後解壓,解壓後如下
參考:【windows下nginx的安裝及使用】https://www.cnblogs.com/jiangwangxiang/p/8481661.html
配置 nginx.conf
在nginx的安裝目錄下的conf文件夾中有nginx.conf,我們需要配置該文件,使nginx代理我們的服務地址。
配置如下:
......
server {
listen 8082; # 監聽端口
server_name https://xnz.mynatapp.cc; # nginx服務名稱
#charset koi8-r;
#access_log logs/host.access.log main;
#location / {
# root html;
# index index.html index.htm;
#}
# 根據項目名區分代理的地址與端口
location /gdjmt.wx.xcx {
proxy_pass http://127.0.0.1:8083;
proxy_redirect off;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_next_upstream http_502 http_504 error timeout invalid_header;
}
# 根據項目名區分代理的地址與端口
location /gdjmt.wx.manage {
proxy_pass http://127.0.0.1:8084;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
#location = /50x.html {
# root html;
#}
......
......
-
由於我的 natapp 的隧道端口配置的是 8082,所以這裏監聽的也是 8082 端口;
listen 8082; # 監聽端口
-
另外我們需要通過我們購買的 natapp 的二級域名訪問我們的本地項目,而訪問 nginx 也需要使用nginx服務的名稱,所以這裏將 nginx 的服務名稱設置爲我的 natapp 的二級域名。
server_name https://xnz.mynatapp.cc; # nginx服務名稱
-
通過訪問地址中的項目名,由 nginx 進行代理轉發到對應的本地的項目地址,從而達到使用一個 natapp隧道 穿透本地內網訪問多個項目的目的。
# 根據項目名區分代理的地址與端口
location /gdjmt.wx.xcx {
proxy_pass http://127.0.0.1:8083;
proxy_redirect off;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_next_upstream http_502 http_504 error timeout invalid_header;
}
# 根據項目名區分代理的地址與端口
location /gdjmt.wx.manage {
proxy_pass http://127.0.0.1:8084;
}
關閉 windows 上的 nginx
在CMD命令行窗口輸入以下命令可關閉 windows 上的 nginx 進程
taskkill /f /t /im nginx.exe
參考:【(親測)使用cmd結束進程的3種方法】https://blog.csdn.net/peng86788/article/details/80595487
可使用以下命令查看 windows 上的 nginx 進程
tasklist /fi "imagename eq nginx.exe"