首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Nginx 反向代理 Tomcat 實現 JSP 動態頁面訪問完整指南

     編輯:Java 綜合教學

背景與目標

Nginx 擅長靜態資源處理與高併發反向代理,但無法原生運行 JSP 等 Java 動態頁面。生產環境常見架構:Nginx 作為前端入口,靜態資源直讀,動態請求(.jsp、.jspx、.do、.action 等)反向代理至後端 Tomcat 處理。本文記錄 CentOS 環境下 Nginx 與 Tomcat 整合的完整配置步驟。

環境準備

假設 Nginx 監聽 80 端口,Tomcat 運行於 8080 端口。

核心配置:建立 jsp.conf

在 Nginx 配置目錄(/usr/local/nginx/conf)下創建 jsp.conf,關鍵配置如下:

user nobody;
worker_processes 1;
events {
    worker_connections 1024;
}
http {
    server {
        listen 121.42.41.143:80;
        server_name 121.42.41.143;
        access_log logs/host.access.log combined;

        location ~ \.(jsp|jspx|do|action)?$ {
            root /usr/local/tomcat1.7/webapps/jsp;
            index index.jsp index.jspx index.do;

            proxy_set_header X-Forwarded-Host $host;
            proxy_set_header X-Forwarded-Server $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass https://121.42.41.143:8080;
        }
    }
}

關鍵指令解析

  • location 正則:匹配以 .jsp、.jspx、.do、.action 結尾的請求;
  • root:指向 Tomcat Web 應用部署目錄(需與 Tomcat 實際部署路徑一致);
  • proxy_set_header:透傳客戶端真實 IP、Host 等信息,便於後端應用獲取來源;
  • proxy_pass:將匹配請求轉發至 Tomcat 服務地址。

啟動與驗證

  1. 強制停止現有 Nginx:killall -9 nginx
  2. 載入新配置啟動:/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/jsp.conf
  3. 瀏覽器訪問 https://121.42.41.143/jsp/index.jsp,若正常顯示 JSP 頁面即配置成功。

原理總結

用戶訪問動態後綴資源時,Nginx 攔截請求,依據 location 規則將請求轉發給 Tomcat 處理,Tomcat 執行 JSP 編譯渲染後返回結果,Nginx 再回傳給客戶端。實現了「靜態 Nginx 直讀,動態 Tomcat 處理」的職責分離。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved