云服务器部署完tomcat环境 也部署完ssl证书, nginx怎么配置代理
时间: 2025-03-07 19:12:26 浏览: 38
### 配置 Nginx 作为 Tomcat 的反向代理并启用 SSL
为了实现这一目标,需要完成几个关键步骤:安装必要的软件组件、配置 Nginx 和 Certbot 自动化处理 SSL 证书以及设置正确的 Nginx 反向代理指令。
#### 安装依赖项和 Nginx
对于基于 Red Hat 的系统,可以通过 yum 命令来获取所需的工具:
```bash
yum -y install epel-release
yum -y install certbot python2-certbot-nginx nginx
```
而对于 Debian 或 Ubuntu 系统,则应使用 apt-get 更新源列表并安装相应包[^2]。
#### 使用 Certbot 获取并管理 SSL 证书
Certbot 工具能够简化 Let's Encrypt 提供的免费 SSL/TLS 证书申请流程。运行如下命令可让 Certbot 自动生成适合 Web 应用程序使用的 HTTPS 设置,并自动调整现有的 Nginx 配置文件以适应新的安全需求[^1]。
```bash
certbot --nginx -d yourdomain.com -d www.yourdomain.com
```
此过程会引导用户输入电子邮件地址用于紧急通知和服务条款确认;之后便会创建有效的 SSL 认证并将它们应用到指定域上。
#### 编辑 Nginx 配置文件
编辑 `/etc/nginx/sites-available/default` 文件(或对应站点特定位置),加入针对 Tomcat 后端的服务定义。确保 `location /` 路径下的代理头信息被正确设定以便传递客户端原始 IP 地址给后端 Java 应用服务器[^3]。
```nginx
server {
listen 80;
server_name yourdomain.com;
# Redirect all HTTP requests to HTTPS with a permanent redirect (status code 301)
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name yourdomain.com;
ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
include snippets/ssl-params.conf;
location / {
proxy_pass http://localhost: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;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffers 32 4k;
}
}
```
这段配置不仅指定了如何转发请求至本地监听于 8080 端口上的 Tomcat 实例,还包含了重定向所有来自 HTTP 协议的流量至更安全的 HTTPS 版本的功能。
#### 测试与验证
保存修改后的配置文件后,执行 `sudo systemctl restart nginx` 来使新规则生效。接着可以在浏览器中尝试访问 `https://yourdomain.com` ,如果一切顺利的话应该能看到由 Tomcat 渲染的内容页面,并且 URL 栏显示带有锁形图标的安全连接标志。
阅读全文
相关推荐

















