我們本篇將通過兩個實例進行對Nginx反向代理的學習。
1、概念基礎
反向代理,其實客戶端對代理是無感知的,因為客戶端不需要任何配置就是可以訪問。我們只需要將請求發送到反向代理服務器上,有反向代理服務器去選擇目標服務器獲取數據后,再返回給客戶端,此時反向代理服務器和目標服務器對外就是一個服務器,暴漏的是代理服務器地址,隱藏了真實服務器地址。
反向代理的作用:
保證內網的安全,阻止web攻擊,大型網站,通常將反向代理作為公網訪問地址,Web服務器是內網
負載均衡,通過反向代理服務器來優化網站的負載
2、反向代理實例一
2.1、實例目標
通過nginx服務器的反向代理到本地的tomcat服務器上,我們可以通過修改hosts,設定一個域名訪問,比如123.com
2.2、具體操作
- 修改本地hosts:進入/etc目錄vi hosts添加以下內容:127.0.0.1 www.123.com;
- 啟動nginx:進入nginx/sbin目錄 ./nginx
- 修改nginx配置文件:進入/usr/local/nginx/conf目錄vi nginx.cong修改以下內容。
listen 80; (這里是默認監聽端口)server_name localhost;#charset koi8-r;#access_log logs/host.access.log main;location / {root html;proxy_pass http://127.0.0.1:8080;(在這里添加如下內容,映射到tomcat服務器)index index.html index.htm;}
- 更新修改:進入nginx/sbin目錄 ./nginx -s reload
- 啟動tomcat:進入tomcat/bin目錄 ./startup.sh
## 2.3效果截圖
3、反向代理實例二
3.1、實例目標
我們本節的實例,是通過不同的路徑分別訪問不同的Tomcat服務器。
3.2、具體操作
- 復制一個tomcat然后修改端口號和備用端口,這里以修改為8081為例。
- 修改conf:在nginx.conf文件中加入
server {listen 9001;server_name localhost;location ~/a/ {root html;proxy_pass http://127.0.0.1:8080/;index index.html index.htm;}location ~/b/ {root html;proxy_pass http://127.0.0.1:8081/;index index.html index.htm;}}
- 重啟nginx
3.3 效果截圖