在 Ubuntu 上把 JSP(通常是 Tomcat) 和 Nginx 整合,本质是:
Nginx 做反向代理 / 静态资源服务器,Tomcat 负责 JSP 动态请求
下面给你一套最常用、可生产的方案。
浏览器
|
Nginx (80)
|-- 静态资源 (/static, /images)
|
Tomcat (8080)
|-- JSP / Servlet
Nginx 把 .jsp 请求转发给 Tomcat。
sudo apt update
sudo apt install tomcat9 -y
验证:
systemctl status tomcat9
默认端口:8080
sudo apt install nginx -y
编辑:
sudo nano /etc/tomcat9/server.xml
确保有:
<Connector port="8080" protocol="HTTP/1.1"
address="127.0.0.1" />
只监听本地,安全。
sudo nano /etc/nginx/sites-available/jsp.conf
server {
listen 80;
server_name example.com;
# 静态资源直接由 Nginx 处理
location /static/ {
root /var/www/html;
expires 30d;
}
# JSP 请求转发给 Tomcat
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
sudo ln -s /etc/nginx/sites-available/jsp.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
Tomcat 默认目录:
/var/lib/tomcat9/webapps/ROOT/
创建测试:
sudo nano /var/lib/tomcat9/webapps/ROOT/test.jsp
<%@ page language="java" %>
<html>
<body>
<h1>JSP Works!</h1>
<%= new java.util.Date() %>
</body>
</html>
访问:
http://服务器IP/test.jsp
✅ 看到时间说明整合成功
location ~ \.(jpg|css|js|png)$ {
root /var/lib/tomcat9/webapps/ROOT;
}
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx
proxy_pass 是否写对Ubuntu 上 JSP + Nginx = Nginx 反代 Tomcat,JSP 交给 Tomcat,静态交给 Nginx
如果你有:
可以继续问我,我给你具体配置。