#user nobody nogroup; #表示以默认用户(root)运行。若取消注释,注意修改为相应权限的用户与组。 worker_processes auto; error_log /var/log/nginx/error.log; #错误日志的文件地址 pid /run/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; #使用 map 函数让自定义变量 $clientRealIp 获取客户端真实 IP,配置如下: map $http_x_forwarded_for $clientRealIp { "" $remote_addr; "~*(?P([0-9a-f]{0,4}:){1,7}[0-9a-f]{1,4}|([0-9]{1,3}\.){3}[0-9]{1,3})$" $firstAddr; } #重新定义日志格式,配置如下: log_format main '$clientRealIp $remote_addr $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" $http_x_forwarded_for ' '"$upstream_addr" "$upstream_status" "$upstream_response_time" "$request_time" '; access_log /var/log/nginx/access.log main; #访问日志的文件地址 sendfile on; keepalive_timeout 65; server { listen 80; listen [::]:80; #无 IPv6,此项可删除。 return 301 https://$host$request_uri; #HTTP 自动跳转 HTTPS,让网站看起来更真实。 } server { listen 443 ssl default_server; listen [::]:443 ssl default_server; #无 IPv6,此项可删除。 ssl_protocols TLSv1.2 TLSv1.3; ssl_reject_handshake on; #版本不小于 v1.19.4 才支持 } #限定域名连接(包括禁止以 IP 方式访问网站) server { listen 443 ssl; listen [::]:443 ssl; #无 IPv6,此项可删除。 server_name xx.yy; #修改为自己的域名 ssl_certificate /home/tls/xx.yy/xx.yy.crt; #换成自己的证书,绝对路径。 ssl_certificate_key /home/tls/xx.yy/xx.yy.key; #换成自己的密钥,绝对路径。 ssl_protocols TLSv1.2 TLSv1.3; #若使用 OpenSSL 库,TLSv1.3 需要 OpenSSL 库的版本不小于 1.1.1 编译才支持。 ssl_prefer_server_ciphers on; #优先使用服务端的密码套件。(对如下 TLSv1.2 协议的密码套件有效) ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305; #若证书为 RSA 证书,所有 ECDSA 改为 RSA。 ssl_ecdh_curve secp521r1:secp384r1:secp256r1:x25519; #若使用 OpenSSL 库,此项的配置参数需要 OpenSSL 库的版本不小于 3.0.0 编译才支持。 location = /9ALdGZ9k { #与 Trojan+WebSocket 应用中 path 对应 if ($http_upgrade != "websocket") { return 404; } #WebSocket 协商失败时返回 404 proxy_redirect off; proxy_pass http://127.0.0.1:2007; #转发给本机 Trojan+WebSocket 监听端口 proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } location / { add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always; #启用 HSTS root /var/www/html; #修改为自己存放的 WEB 文件路径 index index.html index.htm; } } } #备注: #1、本示例仅推荐使用 CDN 流量中转来避免被封。