在實(shí)際生產(chǎn)中,Tomcat服務(wù)器一般不單獨(dú)使用在項(xiàng)目中,對(duì)于靜態(tài)資源的響應(yīng)Nginx表現(xiàn)的比較好,另外由于nginx是專門用于反向代理的服務(wù)器,所以很容易實(shí)現(xiàn)將java的請(qǐng)求轉(zhuǎn)發(fā)到后端交給tomcat容器處理,而本身用來(lái)處理靜態(tài)資源
在Nginx中,一個(gè)server {}塊往往用來(lái)配置一個(gè)比較大的項(xiàng)目,一般就是對(duì)于一個(gè)域名的所有配置,一個(gè)server塊內(nèi)一般有多個(gè)location來(lái)定義多個(gè)請(qǐng)求規(guī)則,比如域名和根目錄配置,靜態(tài)資源支持,php fastcgi請(qǐng)求,url重寫,錯(cuò)誤頁(yè)面配置等多種配置,所以nginx代理tomcat和前面的轉(zhuǎn)發(fā)php-fpm一樣,就是將請(qǐng)求轉(zhuǎn)發(fā)到后端的動(dòng)態(tài)模塊去處理該請(qǐng)求
下面在server中簡(jiǎn)單配置一個(gè)location局部規(guī)則,將指定的nginx請(qǐng)求轉(zhuǎn)發(fā)至tomcat容器
假設(shè)tomcat已經(jīng)正常運(yùn)行,端口號(hào)為8080,首先使用vim編輯nginx.conf配置文件,比如: vim /usr/local/nginx/nginx.conf
然后在server {}塊最后,補(bǔ)充下面的內(nèi)容:
location ^~ /tomcat/ { proxy_pass http://127.0.0.1:8080/; proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }
因?yàn)樯厦媾渲昧藀hp-fpm的支持,所以這里使用/tomcat/請(qǐng)求來(lái)確定是否轉(zhuǎn)發(fā)到tomcat容器,前面的^~就是匹配任意的域名或者IP地址部分,所以當(dāng)訪問http://ip/tomcat這樣的請(qǐng)求時(shí),那么tomcat容器就會(huì)起作用,和訪問http://ip:8080效果是一樣的,包括容器下的項(xiàng)目都是完全一樣的
保存之后,重新載入nginx配置文件: /usr/local/nginx/nginx -s reload
當(dāng)然這里的location可以配置好多個(gè),從而代理到多個(gè)服務(wù)器上的tomcat,也可以自由配置多個(gè)server {}塊,代理到多個(gè)服務(wù)器,這之間都是根據(jù)自己的需要靈活配置的,另外加上靜態(tài)資源規(guī)則等配置,可以實(shí)現(xiàn)強(qiáng)大的功能,比如配置負(fù)載均衡,實(shí)現(xiàn)網(wǎng)站的高并發(fā)訪問以及圖片服務(wù)器的資源共享等等
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持VEVB武林網(wǎng)。
新聞熱點(diǎn)
疑難解答
圖片精選