全局配置 user nginx; # 运行用户 worker_processes auto; # 建议auto error_log /var/log/nginx/error.log warn;#错误日志等级 pid /var/run/nginx.pid;
事件模型 events { worker_connections 10240; # 单个进程最大并发数 use epoll; # Linux下高性能网络模型}
http { include /etc/nginx/mime.types; # 文件类型映射 引入mime表 default_type application/octet-stream;
--- 通用优化(放http块里,对所有网站生效) ---
sendfile on; #零拷贝
tcp_nopush on; # 配合sendfile,不直接发送
tcp_nodelay on; # 长连接不延迟(适用于动态请求)
keepalive_timeout 65; # 长连接超时时间
--- 上游服务器定义 --- upstream tomcat_cluster {#负载均衡池
server 127.0.0.1:8080 weight=3 max_fails=2 fail_timeout=30s;
server 127.0.0.1:8081 weight=1 max_fails=2 fail_timeout=30s;
# keepalive 32; # 开启长连接池,减少Tomcat握手开销(进阶)
}
#auth_basic "nginx access test!";
#auth_basic_user_file /etc/nginx/conf.d/passwd;
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $http_x_forwarded_for';
gzip on;
gzip_min_length 1024;
gzip_disable "msie5";
gzip_static on;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
指令 valid_referers
server {
listen 80;
server_name www.yourdomain.com localhost; # 域名或IP
# 字符集
charset utf-8;
# 访问日志(格式后面定义)
access_log /var/log/nginx/access.log main;
error_log /var/log/nginx/error.log warn;
# ---------- 核心:Location匹配规则 ----------
#1. 静态资源(图片/css/js)直接读硬盘,不交给Tomcat
location ~* \.(jpg|jpeg|png|gif|ico|css|js|svg|woff2)$ {
root /usr/share/nginx/html/static; # 存放静态资源的目录
expires 30d; # 强缓存30天(减少重复请求,和你简历里写的一样)
add_header Cache-Control "public, immutable";
}
# 2. 动态请求(反向代理给Tomcat)
location / {
proxy_pass http://tomcat_cluster; # 对应上面的 upstream 名字
# 标准代理头
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;
# 超时控制(防止后端挂了导致Nginx卡死)
proxy_connect_timeout 30s;
proxy_send_timeout 30s;
proxy_read_timeout 30s;
# 开启缓冲(提升响应速度)
proxy_buffering on;
proxy_buffer_size 4k;
proxy_buffers 8 4k;
}
# 3. 错误页面重定向
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
}