我的環(huán)境是一臺centos7的騰訊云服務(wù)器,同時安裝了nginx和tomcat,配置反向代理以將對nginx的請求轉(zhuǎn)發(fā)給tomcat處理。
反向代理不僅可以使用tomcat,諸多其他服務(wù)器,如jetty都可以。
反向代理的作用有很多,可以把靜態(tài)文件交由nginx來進(jìn)行處理,作為靜態(tài)服務(wù)器,這樣可以方便緩存那些靜態(tài)文件,比如CSS,JS,html,htm等文件。還可以配置負(fù)載均衡,虛擬主機(jī),F(xiàn)astCGI等功能。
下邊詳細(xì)介紹如何配置反向代理。nginx的安裝過程,參見nginx官網(wǎng)安裝指南 ,tomcat安裝,請參考Apache tomcat 官方指南?
首先來看一下nginx配置文件中我們需要了解的幾個配置項(xiàng)
server {
listen? ? ? 80 default_server;
listen? ? ? [::]:80 default_server;
server_name? localhost;
root? ? ? ? /usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
proxy_pass http://localhost;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
這段代碼在server里面,相當(dāng)于一個代理服務(wù)器,當(dāng)然可以配置多個。
下面我們仔細(xì)來分析一下:
listen:表示當(dāng)前的代理服務(wù)器監(jiān)聽的端口,默認(rèn)的是監(jiān)聽80端口。注意,如果我們配置了多個server,這個listen要配置不一樣,不然就不能確定轉(zhuǎn)到哪里去了。
server_name:表示監(jiān)聽到之后需要轉(zhuǎn)到哪里去,這時我們直接轉(zhuǎn)到本地,這時是直接到nginx文件夾內(nèi)。
location:表示匹配的路徑,這時配置了/表示所有請求都被匹配到這里
root:里面配置了root這時表示當(dāng)匹配這個請求的路徑時,將會在這個文件夾內(nèi)尋找相應(yīng)的文件,這里對我們之后的靜態(tài)文件服務(wù)器很有用。
index:當(dāng)沒有指定主頁時,默認(rèn)會選擇這個指定的文件,它可以有多個,并按順序來加載,如果第一個不存在,則找第二個,依此類推。
下面的error_page是代表錯誤的頁面,這里我們暫時不用,先不管它。
那我們知道了具體的配置了,怎么讓它訪問localhost時轉(zhuǎn)到tomcat時。實(shí)際上就修改兩個地方:
server_name localhost:8080;
location?/?{
? proxy_pass?http://localhost:8080;
}
檢查nginx配置是否正確(這一步也可以省略)
nginx -t
重新加載nginx配置文件
nginx -s reload
重新訪問服務(wù)器ip或域名,原來的nginx服務(wù)器的web界面就會變成tomcat的web界面。
參考:nginx官網(wǎng)指南?