目 录CONTENT

文章目录

Linux:nginx配置

koniaoer
2025-11-27 / 0 评论 / 0 点赞 / 0 阅读 / 0 字 / 正在检测是否收录...
温馨提示:
部分素材来自网络,若不小心影响到您的利益,请联系我们删除。
一、HTTP 服务器块(80 端口):必要基础配置
  server {
    listen 80;
    server_name koniaoer.top;
        return 301 https://koniaoer.top$request_uri;  #永久重定向到https服务
    }

二、HTTPS 服务器块(443 端口):分模块分析

1. SSL 核心配置:全为必要配置
listen 443 ssl;  # 1.1版本后标准写法
server_name lxwg.biyouxinli.com;  # 绑定证书的域名
ssl_certificate  /etc/nginx/ssl/biyouxinli.com.pem;  # 证书路径
ssl_certificate_key /etc/nginx/ssl/biyouxinli.com.key;  # 私钥路径
ssl_session_cache    shared:SSL:10m;  # SSL会话缓存(提升性能)
ssl_protocols TLSv1.2 TLSv1.3;  # 安全协议版本(禁用老旧漏洞版本)
ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:...:!RC4";  # 安全加密套件(排除弱加密)
ssl_prefer_server_ciphers on;  # 优先使用服务器端加密套件(保障安全)
ssl_session_timeout 10m;  # SSL会话超时时间(平衡性能与安全)

2. 基础安全与代理头配置

配置项

原因

server_tokens off;

隐藏 Nginx 版本号,减少指纹泄露,降低黑客针对性攻击风险

proxy_set_header Host $host;(主 server 块)

反向代理时传递真实域名到后端,后端服务依赖 Host 识别请求

proxy_set_header X-Real-IP $remote_addr;(主 server 块)

传递真实客户端 IP 到后端,便于日志审计和业务逻辑(如 IP 限制)

proxy_set_header REMOTE-HOST $remote_addr;(主 server 块)

同 X-Real-IP,部分后端框架依赖该字段获取客户端 IP

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;(主 server 块)

传递经过的代理节点 IP,后端可追溯完整请求链路

client_max_body_size 1000M;

若后端需接收大文件上传(如 1G 以内)则必要;若无此需求,可缩小为 100M 内(默认 1M 过小,需保留但优化大小)

client_body_buffer_size 500M;

默认值(16k/32k)足够,500M 过大导致内存浪费(超过缓冲大小会写入磁盘,无需设置这么大)

3. 跨域配置:部分必要
add_header Access-Control-Allow-Origin *;  # 开启跨域(允许所有域名)
# 以下为注释掉的跨域配置(未生效)
#add_header Access-Control-Allow-Headers X-Requested-With;
#add_header Access-Control-Allow-Methods 'GET,POST,OPTIONS,PUT,DELETE,OPTION';
#add_header Access-Control-Allow-Credentials 'true';
#add_header Access-Control-Allow-Headers 'DNT,Keep-Alive,...';

4. 反向代理核心配置(location 块):全为必要配置
location /koniaoer-screen/ {
    proxy_pass http://127.0.0.1:8117/koniaoer-screen/;  # 反向代理目标地址
    proxy_set_header Host $host;  # 传递Host(虽主server块已配置,此处重复但不冲突,可优化但非不必要)
    proxy_set_header X-Real-IP $remote_addr;  # 传递真实IP
    proxy_set_header X-Forwarded-Proto $scheme;  # 传递协议(HTTP/HTTPS)
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  # 传递代理链路
    proxy_http_version 1.1;  # WebSocket依赖的HTTP版本
    proxy_set_header Upgrade $http_upgrade;  # WebSocket升级头
    proxy_set_header Connection "upgrade";  # WebSocket连接标识
}

5. WebSocket 专属配置:全为必要配置
location /lianxin-screen/myWs {
    proxy_pass  http://127.0.0.1:8117;
    proxy_http_version 1.1;  # 必要:WebSocket依赖HTTP/1.1
    proxy_set_header Upgrade $http_upgrade;  # 必要:触发WebSocket升级
    proxy_set_header Connection "upgrade";  # 必要:标识WebSocket连接
}

6. 静态资源服务配置(location 块):全为必要配置
location /smartjz-web {
    alias /usr/share/nginx/html/smartjz-web/dist;  # 静态文件路径
    try_files $uri $uri/ /index.html;  # 前端路由重写(SPA应用必要)
}

7. 安全限制配置:全为必要配置
location ^~ /api/actuator {
    return 403;  # 禁止访问Spring Boot Actuator端点
}

8. 文件下载配置:场景必要
location /lianxin/file {
    add_header Content-Disposition "attachment";  # 强制浏览器下载文件
    alias    /data/nginxdata/html/trial;  # 文件存储路径
}

9. 错误页面配置:必要配置
error_page 404 /404.html;
location = /404.html {}

error_page 500 502 503 504 /50x.html;
location = /50x.html {}

三、基础配置
# HTTP 80端口:强制重定向到HTTPS
server {
    listen 80;
    server_name koniaoer.top;
    return 301 https://$host$request_uri;  # 修复原配置缺少https://的问题
}

# HTTPS 443端口:最基础核心配置
server {
    listen 443 ssl;
    server_name koniaoer.top;

    # SSL核心配置(必须保留,否则HTTPS无法启用)
    ssl_certificate  /etc/nginx/ssl/koniaoer.top.pem;
    ssl_certificate_key /etc/nginx/ssl/koniaoer.top.key;
    ssl_protocols TLSv1.2 TLSv1.3;  # 安全协议(禁用老旧漏洞版本)
    ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";  # 精简安全加密套件
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;

    # 基础安全:隐藏Nginx版本号
    server_tokens off;

    # 最简化错误页面配置
    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
    location = /404.html {}
    location = /50x.html {}
}

0

评论区