相信作微信公衆號開發的朋友都知道,要想在微信中預覽效果,必須使用域名訪問.不少朋友使用內網穿透工具.不只很差用還不穩定.因此,發揮臉厚吃天下的態度,向公司it申請了一個子域名指向了阿里雲一臺ecs的80端口.但是後來,端口不夠用了.本着就近原則,又找到IT小哥,能再好心的再映射一個8080端口.那知傲嬌的小哥一臉鄙夷眼睛看着我,對不起子域名只能80端口.不湊巧的時,個人ecs也只開放了80端口.此時只有一個域名,我要映射多個服務器.是時候放出大器nginx了.訴求很簡單html
查看官方文檔,咱們選擇 tengine 翻譯的官方文檔.在頁面[模塊參考目錄]找到[ngx_http_proxy_module]連接,點擊進入之後搜索proxy_pass.必定會找到如下兩個說明前端
location /name/ {
proxy_pass http://127.0.0.1/remote/;
}
複製代碼
location /some/path/ {
proxy_pass http://127.0.0.1;
}
複製代碼
這段說明晦澀難懂,還出現一個不少人搞不清楚的名稱 URI ,固然我也是那個不少人,爲此我搜索了URI URL的區別,期間還冒出了一個URN,頭都大了,看了十分鐘沒找到滿意的答案.姑且我麼認爲就是地址中的某一部分吧.nginx
簡單理解下第一點,若是 proxy_pass 配置值後邊包含/,最終獲得的路徑,會去掉location配置的path,再結合請求地址中location配置以後可能存在的內容.二者相結合成一個新的地址.按照官方提供的配置.咱們假設json
wx.464884492.com
wx.464884492/name/herbert/
根據提供的第一種配置,nginx獲得的真實地址示意圖以下:後端
再簡單理解下第二點,若是 proxy_pass 配置值後邊不包含/,最終獲得的路徑,proxy_pass配置值加上location配置path以及以後的path.二者結合成一個新地址,按官方提供配置,咱們假設瀏覽器
wx.464884492.com
wx.464884492/some/path/herbert/
根據提供的第二種配置,nginx獲得的真實地址示意圖以下:服務器
因此簡單總結就是微信
從nginx官網下載解壓修改nginx.conf文件中http模塊以下:markdown
...
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
client_max_body_size 20M;
server {
listen 80 default_server;
server_name 127.0.0.1;
location / {
proxy_pass http://127.0.0.1;
}
location /name/ {
proxy_pass http://127.0.0.1/remote/;
}
location /some/path/ {
proxy_pass http://127.0.0.1;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
...
複製代碼
雙擊nginx.exe運行分別在瀏覽器中訪問一下地址app
因爲我配置並無具體root,訪問頁面最終的地址是找不到.因此頁面會出現 An error occurred 的錯誤頁.不過咱們恰好能夠在錯誤日誌印證咱們上面的結果.咱們上邊的示意圖採用了域名的方式說明,若是想獲得示意圖上的結果,須要在host文件中添加配置wx.464884492.com 127.0.0.1
同時在nginx配置文件server_name改爲wx.464884492.com
打開logs目錄下error.log日誌文件,咱們就會發現咱們剛訪問的信息以及最終轉換的真實地址信息都乖乖的顯示在那裏,主要信息以下:
瀏覽器訪問 http://127.0.0.1/name/herbert/
nginx 給個人訪問日誌
2019/12/06 14:21:32 [alert] 15384#12716: *9206 1024 worker_connections are not enough while connecting to upstream,
client: 127.0.0.1, server: 127.0.0.1,
request: "GET /remote/herbert/ HTTP/1.0",
upstream: "http://127.0.0.1:80/remote/herbert/", host: "127.0.0.1"
瀏覽器訪問 http://127.0.0.1/some/path/herbert/
nginx 給個人訪問日誌
2019/12/06 14:21:35 [alert] 15384#12716: *11251 1024 worker_connections are not enough while connecting to upstream,
client: 127.0.0.1, server: 127.0.0.1,
request: "GET /some/path/herbert/ HTTP/1.0",
upstream: "http://127.0.0.1:80/some/path/herbert/", host: "127.0.0.1"
複製代碼
有了以上知識個人訴求就完美解決了.
對應配置
location /dev1/ {
proxy_pass http://192.168.10.2:8080;
}
複製代碼
對應配置
location /dev2/ {
proxy_pass http://192.168.10.2:8081/;
}
複製代碼
凡事多總結中沒有壞處,以上那麼多其實就一句話,有槓去掉,無槓保留,雖然小,但解決的步驟一個很多.
歡迎感興趣的朋友關注個人微信訂閱號"小院不小",或者點擊下方的二維碼關注。我將多年開發中遇到的難點,以及一些有意思的功能,體會都會一一發布到個人訂閱號中。須要本文nginx配置文件能夠在公衆號中回覆nginx1
閒來無事,採用cocos creator開發了一個小遊戲,感興趣的朋友一個能夠來玩玩
有喜歡聊技術朋友也歡迎入羣,若二維碼失效可加我微信回覆前端