一、Nginx介紹
Nginx(“engine x”)是一個高性能的HTTP和反向代理服務器
具有內存占用少,啟動極快,高并發(fā)能力強的優(yōu)點、在互聯(lián)網(wǎng)項目中廣泛應用。
一臺nginx能承受大約5萬個并發(fā)連接數(shù)。
中國Nginx官網(wǎng):https://www.nginx-cn.net/
GitHub地址:https://github.com/nginxinc/
二、正向代理
代理就是代理服務器介于用戶客戶端和目標服務器之間,
正向代理就是用戶指定想要獲取的目標內容,通過客戶端先向代理服務器發(fā)送請求,再由代理服務器發(fā)送到目標服務器,隨后將獲得的內容返回用戶客戶端。
正向代理的情況下,客戶端需要知道正向代理服務器的IP地址,還有代理程序的端口才可使用。
正向代理是代理用戶客戶端,為客戶端發(fā)送請求,使真實的用戶客戶端對服務器不可見。
三、反向代理
反向代理剛好與正向代理相反。
對于反向代理,客戶端對代理是無感知的,
因為客戶端不需要任何配置就可以訪問,我們只需要將請求發(fā)送到反向代理服務器,由反向代理服務器去選擇目標服務器獲取數(shù)據(jù)后,在返回給客戶端,此時反向代理服務器和目標服務器對外就是一個服務器,
暴露的是代理服務器地址,隱藏了真實服務器IP地址。
客戶端想訪問tomcat服務器,只需要訪問ww.baidu.com。對真實的服務器IP是隱藏的
四、實例演示
1、反向代理實例一(反向代理,訪問www.123.com)
步驟一:修改主機映射“C:\Windows\System32\drivers\etc\hosts”
步驟二:修改Nginx中的配置文件并啟動
發(fā)現(xiàn)
報錯
注意:我的nginx和tomcat都在Docker中,容器之間是相互隔離的。
127.0.0.1訪問的nginx容器內部的8080端口,而此容器并沒有tomcat所以肯定會報錯注意:我的tomcat8080容器已經(jīng)映射到虛擬機的8080端口,所以進行以下更改:
可以看到此時訪問成功
但是輸入www.123.com(已經(jīng)設置hosts端口映射)訪問卻
報錯
解決方法:關閉windows本地代理
訪問成功
2、反向代理實例二(使用 nginx 反向代理,根據(jù)訪問的路徑跳轉到不同端口的服務中)
步驟一:為了區(qū)分Tomcat,對歡迎頁面進行小改,修改webapps/ROOT/index.jsp同理8081端口也是一樣操作
步驟二:修改Nginx配置文件并重新啟動Nginx
這里注意:
proxy_pass http://192.168.31.238:8080/;
proxy_pass最后面有斜杠”/”,此時通過瀏覽器請求http://http://192.168.31.238/edu/,那么實際訪問的地址就是 http://192.168.31.238:8080,會將/edu拋棄的,
proxy_pass http://192.168.31.238:8080;
說明:proxy_pass最后面沒有斜杠”/”,此時通過瀏覽器請求http://192.168.31.238/vod/,
那么實際訪問的地址就是 http://192.168.31.238/vod/,會將匹配路徑/vod一起加過去
注意:路徑/usr/share/nginx/html/vod文件夾下需要有html文件才可以正常訪問
步驟三:測試結果(成功)
文章來源:http://www.zghlxwxcb.cn/news/detail-478791.html
五、nginx之location規(guī)則
- = 開頭表示精確匹配(優(yōu)先級最高)
- ^~ 開頭表示uri以某個常規(guī)字符串開頭,理解為匹配url路徑即可(非正則)
- ~ 開頭表示區(qū)分大小寫的正則匹配
- ~* 開頭表示不區(qū)分大小寫的正則匹配
- !~ 和!~*分別為區(qū)分大小寫不匹配及不區(qū)分大小寫不匹配的正則
- / 通用匹配,任何請求都會匹配到
更多l(xiāng)ocation實例可以參考:nginx之location詳解文章來源地址http://www.zghlxwxcb.cn/news/detail-478791.html
到了這里,關于Nginx(一)介紹Nginx、正向代理和實現(xiàn)反向代理的兩個實例的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!