Nginx+Tomcat负载均衡及动静分离
以下是一个简化的示例,展示了如何配置Nginx以实现Tomcat的负载均衡和静态资源的分离。
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;
keepalive_timeout 65;
# 用于动态分离的代理服务器
upstream dynamic {
server tomcat1:8080;
server tomcat2:8080;
}
# 用于静态资源的服务器
server {
listen 80;
server_name localhost;
# 静态资源位置
location /static/ {
root /usr/share/nginx/html;
expires 30d;
}
# 所有其他请求代理到Tomcat服务器
location / {
proxy_pass http://dynamic;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}
在这个配置中,Nginx监听80端口,并根据请求的URL将流量代理到名为dynamic
的上游服务器组。所有静态资源都被直接从/usr/share/nginx/html/static/
目录提供,并设置了30天的缓存。对于动态内容,请求被转发到Tomcat服务器,默认为8080端口,这些服务器通过tomcat1
和tomcat2
标识。
确保Tomcat服务器正确配置,并且Nginx的配置文件路径符合您的服务器环境。在实际部署时,可能需要调整root
指令以指向您的静态资源目录,并可能需要修改upstream
部分以反映您的Tomcat服务器的实际地址和端口。
评论已关闭