配置中 location / { root /html; index index.html; } 導致請求 https://host/ 映射到磁盤 /html/index.html,若實際項目在 /usr/local/tomcat/webapps/ROOT 或其他路徑,會 404。
server {
listen 80;
server_name your.domain.com;
location / {
proxy_pass https://127.0.0.1:8080; # 轉發給 Tomcat
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
# 靜態資源直接由 Nginx 服務(可選)
location ~ .*\.(js|css|png|jpg|jpeg|gif|ico)$ {
root /usr/local/tomcat/webapps/ROOT; # Tomcat webapps 實際路徑
expires 30d;
}
}
proxy_pass 到 Tomcat 端口(默認 8080)。root 指向 Tomcat 部署項目的實際目錄(含項目名)。/var/log/nginx/error.log 確認具體 404 路徑。去掉多餘的 root /html;,改用反向代理模式才是 Nginx + Tomcat 標準架構。