一篇學(xué)會Nginx實現(xiàn)反向代理
Nginx實現(xiàn)反向代理
昨天已經(jīng)介紹Nginx快速入門,進行來學(xué)習(xí)Nginx反向代理,但是在知道反向代理之前,要先了解以下正向代理
1.正向代理
正向代理類似一個跳板機,代理訪問外部資源。
原理架構(gòu)圖
客戶端與代理服務(wù)器形成一個LAN局域網(wǎng)
作用
- 訪問原來無法訪問的資源,如google
- 可以做緩存,加速訪問資源
- 對客戶端訪問授權(quán),上網(wǎng)進行認證
- 代理可以記錄用戶訪問記錄(上網(wǎng)行為管理),對外隱藏用戶信息
2.反向代理
反向代理(Reverse Proxy)方式是指以代理服務(wù)器來接受internet上的連接請求,然后將請求轉(zhuǎn)發(fā)給內(nèi)部網(wǎng)絡(luò)上的服務(wù)器, 從服務(wù)器上得到的結(jié)果返回給internet上請求連接的客戶端,此時代理服務(wù)器對外就表現(xiàn)為一個服務(wù)器
原理架構(gòu)圖
圖片
說明:反向代理是代理服務(wù)器與原始服務(wù)器形成局域網(wǎng),原始服務(wù)器沒有暴露在外網(wǎng)上
作用
- 保證內(nèi)網(wǎng)服務(wù)器的安全。由于原始服務(wù)器沒有暴露在外網(wǎng)上,所以外網(wǎng)無法攻擊服務(wù)器。
- 實現(xiàn)反向代理(例如:可以將代理服務(wù)器的請求分發(fā)給一個tomcat)。終極目標(biāo)是實現(xiàn)負載均衡(分發(fā)給多個tomcat)
3.nginx實現(xiàn)反向代理-案例-nginx代理tomcat服務(wù)器
目標(biāo)
用戶請求交給nginx(反向代理服務(wù)器),nginx將請求交給tomcat去處理,處理完成交回給nginx,nginx交給用戶。tomcat是原始服務(wù)器,不暴露在外網(wǎng)上
軟件 | 地址 |
nginx | 192.168.150.102 |
tomcat1 | 192.168.150.104 |
tomcat2 | 192.168.150.106 |
【步驟一】:安裝Tomcat(在兩臺機器上安裝)
可以查看如何在linux上安裝Linux上如何安裝軟件(mysql,java,tomcat)以及防火墻介紹
- 下載tomcat
curl -O -L https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.87/bin/apache-tomcat-9.0.87.tar.gz
- 解壓
tar -zxvf apache-tomcat-9.0.87.tar.gz -C /usr/local/
- Tomcat環(huán)境變量全局配置
vim /etc/profile
圖片
- 啟動Tomcat
【步驟二】:在兩臺Tomcat上創(chuàng)建靜態(tài)頁面
- 進入到tomcat下的webapps目錄
/usr/local/apache-tomcat-9.0.87/webapps
- 創(chuàng)建test目錄
mkdir test
- 在test目錄創(chuàng)建index.html
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>Welcome to tomcat!</h1>
<a >https://tomcat.apache.org/</a>.<br/>
<p><em>192.168.150.106 </em></p>
<p><em>I am Zbbmeta</em></p>
</body>
</html>
注意:不同機器上寫各自IP地址,方便查看Nginx作用
圖片
【步驟三】:修改nginx.conf配置文件,增加代理tomcat
圖片
- 增加代理tomcat服務(wù)器
upstream test2{server 192.168.150.104:8080 ; server 192.168.150.106:8080 ;}
- 代理時的負載使用
location / {
#root /data/nginx;
index index.html index.htm;
proxy_pass http://test2/test/;
}
- 重啟nginx
cd /usr/local/nginx/sbin
# 重啟nginx
./nginx -s reload
【步驟四】:測試
使用瀏覽器訪問http://192.168.150.102/
多次刷新瀏覽器發(fā)現(xiàn),ip地址進行變換,也就說明nginx反向代理生效