插播一條不相關(guān)的內(nèi)容: nacos啟動(dòng)之后, 是訪問(wèn)localhost:8848/nacos而不是localhost:8848來(lái)進(jìn)入nacos
用案例說(shuō)明比較方便:
反向代理 e.g.1
目標(biāo): 在Mac上面打開(kāi)瀏覽器訪問(wèn)www.123.com跳轉(zhuǎn)到linux上面的tomcat主頁(yè)
準(zhǔn)備工作
linux上面安裝tomcat, 默認(rèn)端口8080,進(jìn)入tomcat的bin目錄,./startup.sh啟動(dòng), 在Mac上面訪問(wèn)linux中運(yùn)行的tomcat主頁(yè)
訪問(wèn)過(guò)程分析:
Mac
www.123.com --> Nginx --> tomcat
(hosts文件配置域名映射的IP) 192.168.68.136:8080 127.0.0.1:8080
其中192.168.68.136是linux的IP, hosts中改是因?yàn)橛蛎馕瞿J(rèn)首先訪問(wèn)本機(jī)的hosts,找不到就去DNS查詢(xún)(是不是es查詢(xún)?)
首先Mac的hosts配置加上www.123.com:

然后usr/local/nginx/sbin中改nginx.conf:
本來(lái)是:

改成:

就做完了: usr/local/nginx/sbin下./nginx -s reload熱部署nginx, 那么此時(shí)在Mac下輸入www.123.com就可以訪問(wèn)linux上部署的tomcat:

當(dāng)然,這只是最簡(jiǎn)單的例子,實(shí)際上稍微深一點(diǎn)的就是這種: 根據(jù)不同路徑映射到不同的tomcat中
反向代理 e.g.2
"nginx映射端口9001, 希望實(shí)現(xiàn)根據(jù)不同的URL跳轉(zhuǎn)訪問(wèn)不同的instance的能力, i.e.
-
request-->nginx: www.nginx.com/edu --> linux: 192.168.68.136:8080 -
request-->nginx: www.nginx.com/org --> linux: 192.168.68.136:8081
...
這種。
其實(shí)并沒(méi)有什么區(qū)別, 這里說(shuō)一下思路:
- 創(chuàng)建兩個(gè)運(yùn)行的tomcat實(shí)例(
8081改tomcat的端口,需要改變tomcatconf.xml配置里面的啟動(dòng)和關(guān)閉端口號(hào)避免沖突), - 啟動(dòng)之后, 寫(xiě)html文件放在
tomcat的webapp目錄下面, 創(chuàng)建文件夾和測(cè)試頁(yè)面 -
然后就是nginx中的配置, 主要是這里:
初始配置.png
上面是初始配置文件,應(yīng)該配置成這樣:

注: 配置中的
location的~其實(shí)是幾種選項(xiàng)中的一種:
-
=: 嚴(yán)格匹配,沒(méi)有regex -
~: URI包含regex, 區(qū)分大小寫(xiě); -
~*: 不區(qū)分; -
^: 不含regex, 要求nginx服務(wù)器找到: 請(qǐng)求和標(biāo)識(shí)URI匹配度最高的location并請(qǐng)求;
如果有regex就要用~或~*
最終測(cè)試:

