Nginx proxy 反向代理 轉發Tomcat

由 Derek 發表於 十二月 10, 2012 / 尚無評論

前言 :

在 Nginx 的 proxy 代理上可分為正向代理和反向代理。今天主要說明,反向代理且轉發到 Tomcat 的設定方式。

 

Nginx 反向代理(Reverse Proxy), 當代理服務器 Nginx 接收到 internet 的連線請求時,會將此請求轉發到內部指定的服務器上。並從內部服務器上取得資料後返回到代理服務器,最後在由代理服務器傳送資料給 internet 上的用戶端。

 

 

安裝環境 :

Centos 5.8

Nginx 1.2.5

PHP 5.4.9

MySQL 5.5.28

Tomcat 6.0.36

JDK 6.37

 

 

設定方式 :

轉發設定上,今天就來介紹一下 Nginx 80 → Tomcat 8080 Nginx 443 → Tomcat 443

 

Nginx 80 → Tomcat 8080

修改 Nginx.conf 設定

在安裝好 Nginx 和 Tomcat 後,來修改 Nginx.conf 的設定。找到server{}裡面的location來做修改。如果 server{} 內沒有設定 location 的話請自行添加

修改前

 

修改後

主要是在location {} 內添加

proxy_pass http://IP或domain:8080;
proxy_set_header Host $host:8080;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

 

重啟 Nginx 服務

測試

如果有做過修改的話可用以下指定測試修改後是否有問題

 

reload

在不停止Nginx服務情況下,重啟Nginx

 

開啟和停止

 

開網頁測試

在網址的地方輸入「http://ip或domain」。應該看到的頁面會從原先的「Welcome to nginx !」變成 Apache Tomcat的頁面。如此就設定完成了。

 

 

Nginx 443 → Tomcat 443

在開始跳轉設定之前,請先把 Nginx 和 Tomcat 的443port 連線設定好包括KEY的部份。

修改 Nginx.conf 設定

修改前

 

修改後

主要是在location {} 內添加

proxy_pass https://IP或domain:443;
proxy_set_header Host $host:443;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

 

重啟 Nginx 服務

測試

如果有做過修改的話可用以下指定測試修改後是否有問題

 

reload

在不停止Nginx服務情況下,重啟Nginx

 

開啟和停止

 

開網頁測試

在網址的地方輸入「https://ip或domain」。應該看到的頁面會從原先的「Welcome to nginx !」變成 Apache Tomcat的頁面。如此就設定完成了。

 

 

如果後端為LINUX  Nginx  系統的話。在LOG分析上需要加上以下設定方可得到最初來源IP而不是上層IP

主要是在location {} 內添加

set_real_ip_from  192.168.1.111;

real_ip_header X-Forwarded-For;

192.168.1.111為上層反向代理的Nginx  IP

 

  

關於作者

一個半路殺出來的傻小子,憑著一股傻勁努力的學習、嘗試、分享。希望能用自己微薄之力,替IT界和資訊界盡一點心力。單憑一己之力始終還是有限,歡迎和我有相同理念的夥伴一同加入一同努力。

評論

此文章尚無評論。

發表評論

*