nginx:配置實(shí)例進(jìn)行反向代理 (二)

插播一條不相關(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:

hosts.png

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

server1.png

改成:


server2.png

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

123.png

當(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ō)一下思路:

  1. 創(chuàng)建兩個(gè)運(yùn)行的tomcat實(shí)例(8081改tomcat的端口,需要改變tomcatconf.xml配置里面的啟動(dòng)和關(guān)閉端口號(hào)避免沖突),
  2. 啟動(dòng)之后, 寫(xiě)html文件放在tomcatwebapp目錄下面, 創(chuàng)建文件夾和測(cè)試頁(yè)面
  3. 然后就是nginx中的配置, 主要是這里:


    初始配置.png

上面是初始配置文件,應(yīng)該配置成這樣:

不同端口跳轉(zhuǎn)路徑.png

注: 配置中的location~其實(shí)是幾種選項(xiàng)中的一種:

  1. =: 嚴(yán)格匹配,沒(méi)有regex
  2. ~: URI包含regex, 區(qū)分大小寫(xiě);
  3. ~*: 不區(qū)分;
  4. ^: 不含regex, 要求nginx服務(wù)器找到: 請(qǐng)求和標(biāo)識(shí)URI匹配度最高的location并請(qǐng)求;
    如果有regex就要用~~*

最終測(cè)試:


最終測(cè)試

總結(jié): 反向代理實(shí)際上就是找配置文件中server部分的listen(port), server_namelocation

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容