1. 全局配置 user nginx; # 运行用户 worker_processes auto; # 建议auto error_log /var/log/nginx/error.log warn;#错误日志等级 pid /var/run/nginx.pid;

  2. 事件模型 events { worker_connections 10240; # 单个进程最大并发数 use epoll; # Linux下高性能网络模型}

3. HTTP

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 {#负载均衡池

负载均衡策略:默认轮询;若加 ip_hash 可保持会话(但建议用Redis共享Session)

    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;

日志格式定义 log_format main '$remote_addr - $remote_user [$time_local] "$request"'

            '$status $body_bytes_sent "$http_referer" '
            '"$http_user_agent" $http_x_forwarded_for';

gzip 文件压缩

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;

expires [time] 浏览器缓存模块

防盗链模块

指令 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;
    }
}

}

← 返回笔记列表