温馨提示×

ubuntu jsp怎么整合nginx

小樊
46
2026-10-06 21:51:52
栏目: 编程语言

在 Ubuntu 上把 JSP(通常是 Tomcat) 和 Nginx 整合,本质是:

Nginx 做反向代理 / 静态资源服务器,Tomcat 负责 JSP 动态请求

下面给你一套最常用、可生产的方案。


一、架构说明

浏览器
  |
Nginx (80)
  |-- 静态资源 (/static, /images)
  |
Tomcat (8080)
  |-- JSP / Servlet

Nginx 把 .jsp 请求转发给 Tomcat。


二、安装环境

1. 安装 Tomcat(JSP 容器)

sudo apt update
sudo apt install tomcat9 -y

验证:

systemctl status tomcat9

默认端口:8080


2. 安装 Nginx

sudo apt install nginx -y

三、配置 Tomcat(可选但推荐)

编辑:

sudo nano /etc/tomcat9/server.xml

确保有:

<Connector port="8080" protocol="HTTP/1.1"
           address="127.0.0.1" />

只监听本地,安全。


四、配置 Nginx 反向代理

1. 新建站点配置

sudo nano /etc/nginx/sites-available/jsp.conf

2. 示例配置(最常用)

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;
    }
}

3. 启用配置

sudo ln -s /etc/nginx/sites-available/jsp.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

五、测试 JSP

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

✅ 看到时间说明整合成功


六、常见优化

1. 动静分离(推荐)

location ~ \.(jpg|css|js|png)$ {
    root /var/lib/tomcat9/webapps/ROOT;
}

2. HTTPS(Let’s Encrypt)

sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx

七、常见问题

JSP 404?

  • Tomcat 是否启动
  • proxy_pass 是否写对

样式加载不出?

  • 静态资源没配置 Nginx

端口冲突?

  • Nginx 用 80
  • Tomcat 用 8080

八、总结一句话

Ubuntu 上 JSP + Nginx = Nginx 反代 Tomcat,JSP 交给 Tomcat,静态交给 Nginx

如果你有:

  • Spring Boot
  • 多 Tomcat
  • 负载均衡
  • HTTPS + JSP

可以继续问我,我给你具体配置。

0 踩