安装Nginx
bash
sudo apt update
sudo apt install nginx
安装Tomcat
编辑Nginx配置文件(通常位于/etc/nginx/nginx.conf
或/usr/local/nginx/conf/nginx.conf
):
http {
upstream tomcat_server {
server 127.0.0.1:8080; # Tomcat默认端口
# 如果有多个Tomcat实例可以添加更多server行
}
server {
listen 80;
server_name yourdomain.com; # 替换为你的域名
location / {
proxy_pass http://tomcat_server;
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;
}
# 静态文件处理(可选)
location ~* \.(jpg|jpeg|png|gif|ico|css|js|html)$ {
expires 30d;
root /path/to/static/files;
}
}
}
编辑Tomcat的server.xml
文件(位于conf
目录):
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
proxyName="yourdomain.com" <!-- 替换为你的域名 -->
proxyPort="80" />
server {
listen 443 ssl;
server_name yourdomain.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
proxy_pass http://tomcat_server;
# 其他proxy设置同上
}
}
server {
listen 80;
server_name yourdomain.com;
return 301 https://$host$request_uri;
}
如果有多个Tomcat实例:
upstream tomcat_cluster {
server 127.0.0.1:8080 weight=5;
server 127.0.0.1:8081 weight=3;
server 127.0.0.1:8082 weight=2;
# 负载均衡策略
least_conn; # 最少连接数
# 或 ip_hash; # 基于IP的会话保持
}
location /wsapp/ {
proxy_pass http://tomcat_server;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 86400;
}
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
proxy_buffers 16 32k;
proxy_buffer_size 64k;
proxy_busy_buffers_size 128k;
检查Nginx配置是否正确:
sudo nginx -t
重启Nginx:
sudo systemctl restart nginx
# 或
sudo service nginx restart
启动Tomcat:
cd /path/to/tomcat/bin
./startup.sh
访问你的域名或服务器IP,应该能看到Tomcat应用通过Nginx提供服务。
502 Bad Gateway错误
/var/log/nginx/error.log
)静态文件不加载
会话丢失问题
性能问题
通过以上配置,你可以建立一个高效、稳定的Nginx+Tomcat服务器环境,既能利用Nginx的高性能静态文件处理能力,又能发挥Tomcat的Java应用处理优势。