Nginx+Tomcat(多实例)实现动静分离和负载均衡(四层、七层)
以下是一个基于Nginx和Tomcat多实例的动静分离和负载均衡配置示例:
- Nginx配置文件(
nginx.conf
):
user nginx;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
# 日志格式
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
# 访问日志
access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
# 动静分离
server {
listen 80;
server_name localhost;
# 静态文件
location ~* \.(jpg|jpeg|png|css|js|ico|html)$ {
root /path/to/static/files;
expires 30d;
}
# 动态请求代理到Tomcat实例
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;
}
}
# 负载均衡配置
upstream tomcat_server {
# 四层负载均衡(使用TCP)
# server 192.168.1.1:8080 weight=1;
# server 192.168.1.2:8080 weight=1;
# 七层负载均衡(使用HTTP)
server http://192.168.1.1:8080 weight=1;
server http://192.168.1.2:8080 weight=1;
}
}
- 确保Nginx配置没有错误:
nginx -t
- 如果没有错误,重新加载Nginx配置:
nginx -s reload
确保Tomcat实例正常运行,并且可以通过192.168.1.1:8080
和192.168.1.2:8080
地址进行访问。
以上配置实现了Nginx作为静态文件的服务器,并将动态请求代理到后端的Tomcat实例上。同时,通过upstream模块实现了负载均衡,你可以根据需要启用四层或七层负载均衡。
注意:
- 确保Nginx有权限访问Tomcat实例。
- 根据实际情况调整
root
,upstream
中的服务器地址及端口,以及expires
时间。 - 如果使用四层负载均衡,确保移除
http://
前缀。
评论已关闭