server{ listen 9001; // 使该服务器块监听在 TCP 端口 9001 上 listen 9000 ssl http2; // 使该服务器块在 TCP 端口 9000 上监听 HTTPS 请求,并启用 HTTP/2 协议。 server_name siyuan.terwergreen.com; // 定义该服务器块的服务器名称为 siyuan.terwergreen.com index index.php index.html index.htm default.php default.htm default.html; // 定义默认的索引文件列表,当访问目录时,Nginx 会按照此列表中的顺序查找这些文件,并返回第一个找到的。 root /var/www/html; // 设置文档根目录为 /var/www/html。 if ($server_port !~ 9000){ rewrite ^(/.*)$ https://$host$1 permanent; // 如果请求的端口不是 9000,则执行重定向到 HTTPS。这确保非 HTTPS 请求(即端口 9001 上的请求)被重定向到 HTTPS。 } # HTTP_TO_HTTPS_END # SSL 配置部分: ssl_certificate /etc/ssl/siyuan.pem; // SSL 证书路径 ssl_certificate_key /etc/ssl/siyuan.key; // 证书私钥路径 ssl_protocols TLSv1 TLSv1.1 TLSv1.2; // 持的 SSL/TLS 协议版本 ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; // 定义支持的加密套件 ssl_prefer_server_ciphers on; // 优先使用服务器上的加密套件 ssl_session_cache shared:SSL:10m; // 设置 SSL 会话缓存 ssl_session_timeout 10m; // 设置 SSL 会话缓存超时时间 error_page 497 https://$host$request_uri; // 定义如何处理 497 HTTP 状态码,这里是将请求重定向到 HTTPS。 # SSL-END # 对所有路径的请求的处理规则: location / { proxy_set_header X-Real-IP $remote_addr; // 设置请求头部 X-Real-IP,其值为客户端的真实 IP 地址($remote_addr)。通常用于后端服务器识别原始客户端的 IP 地址,特别是在 Nginx 作为反向代理时。 proxy_set_header Host $http_host; // 设置Host 头部,其值为请求中的 Host 头部字段 proxy_pass http://[ip]:[端口]; // proxy_pass 将请求代理到另一个服务器,实际配置中需要替换为实际的 IP 地址和端口。 proxy_set_header Upgrade $http_upgrade; // 设置 Upgrade 头部,其值来自请求中的 Upgrade 头部。这通常用于支持 HTTP/1.1 的 Upgrade 机制,如 WebSocket 连接 proxy_set_header Connection 'Upgrade'; // 设置 Connection 头部为 Upgrade。这告诉后端服务器客户端希望升级连接(例如,从 HTTP 升级到 WebSocket) client_max_body_size 100m; // 允许客户端请求的最大体大小为 100MB } # 对路径以 /ws 开头的请求的处理规则 location /ws { proxy_pass http://[ip]:[端口]; proxy_read_timeout 60s; // 设置了代理读取超时时间为 60 秒 proxy_http_version 1.1; // 强制使用 HTTP/1.1 协议版本 proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'Upgrade'; } }
标签:常用,Upgrade,请求,ssl,nginx,proxy,conf,服务器,SSL From: https://www.cnblogs.com/shyhuahua/p/18088964