nginx反向代理tomcat

nginx反向代理tomcat

本文由個人總結,如需轉載使用請標明原著及原文地址

首先你要有tomcat和nginx
沒有裝tomcat的點這裏!!!!!
沒有裝nginx的點這裏!!!!!!
nginx反向代理tomcat其實很簡單只需要修改nginx的配置文件就行了
nginx配置文件在/usr/loacl/nginx/conf/nginx.conf
有圖形化界面的可以直接打開修改,沒圖形化界面的用vim命令打開修改

在server上方加入upstream
在這裏插入圖片描述
完整代碼結構如下

   upstream Demo_server{
		ip_hash;#將相同ip的請求發送到同個server上
		server 127.0.0.1:8080;
		#配置多個,實現輪詢,將多個前端請求自動分配到多個server上
		#server 127.0.0.1:8082 backup;#熱備,作爲備份,主server宕機後自動轉發到熱備server
		#server 127.0.0.1:8082 weight=2;#權重模式,優先使用級別
	}
    server {
        listen       80;
        server_name www.hostname.cn;
		root /data;#前端靜態工程
		index index.html;
	 	location / {
				proxy_set_header Host $host;
				proxy_set_header X-Real-IP $remote_addr;
				proxy_pass http://Demo_server;#反向代理地址
	        }
		location ~ .*\.(gif|jpg|png|html|mp3){
			expires 6h;
		}
		location ~ .*\.(js|css){
			expires 2h;
		}
		access_log /data/logs/nginx/app_access.log;
    }

1.upstream中主要是部署反向代理的服務器,服務器可以是多個也可以是單個
配置多個服務器能夠實現負載均衡,所有服務器被使用到的機率都相同,避免單一服務器訪問量過大產生問題

upstream Demo_server{
		server 127.0.0.1:8080;
		server 127.0.0.1:8081;
		server 127.0.0.1:8082;
		#配置多個,實現輪詢,將多個前端請求自動分配到多個server上
	}

如果是有資金來往的網站,爲了避免用戶刷新使得訂單提交到多個服務器上的情況可以在upstream中加入 ip_hash,目的是同個ip發出的請求只由單個服務器處理

upstream itripbiz_server{
		ip_hash;#將相同ip的請求發送到同個server上
		server 127.0.0.1:8080;
	}

配置的server後面可以加上backup,weight關鍵詞
backup的作用是將該服務器作爲一個熱備服務器,平時不使用,僅當主服務器出現問題宕機後使用

upstream itripbiz_server{
		server 127.0.0.1:8080;
		server 127.0.0.1:8082 backup;
		#熱備,作爲備份,主server宕機後自動轉發到熱備server
	}

weight是權重的意識,也就是服務器被使用的優先級,因爲有的時候,公司有多臺服務器,有的性能比較好,有的性能比較差,那麼我們能讓性能好的多處理些請求,就可以用到weight

upstream itripbiz_server{
		server 127.0.0.1:8080;
		server 127.0.0.1:8082 weight=2;#權重模式,優先使用級別
	}

像這樣 8082端口的server被用到的概率就會大於8080端口的server,但是這僅僅是概率上的問題,即使把權重設的很大,其他服務器依舊能分配到請求,這方面知識可以參考CPU分配時間片的原理

2.upstream說完後,我們接下來說下server
nginx.conf中的server就是一個攔截器,他能夠監聽並攔截你指定端口的請求

關鍵詞 作用
listen 是監聽的端口
server_name 是訪問的域名,例如127.0.0.1與localhost的關係
root 這是設置靜態頁面存放的路徑
index 默認主頁
location 根據後面的匹配規則進行攔截
access_log 配置日誌存放路徑

攔截所有的請求,然後發送到tomcat上
要注意,第三條的名字要和之前配置的upstream的名字相同

location / {
			proxy_set_header Host $host;
			proxy_set_header X-Real-IP $remote_addr;
			proxy_pass http://Demo_server;#反向代理地址
      }

然後可以驗證下conf文件語法是否正確使用以下命令

/usr/local/nginx/sbin/nginx -t	

在這裏插入圖片描述
我這第一次驗證conf文件時報錯,原因是我指定的日誌文件夾不存在,所以我用mkdir -p 創建了文件夾,之後再進行驗證就顯示successful了

3.重啓nginx

/usr/local/nginx/sbin/nginx -s reload

然後就可以通過nginx訪問tomcat了(tomcat要記得開)

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章