以下是一个同时使用 HTTP 和 HTTPS 并通过 8070 端口的配置示例:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
server { listen 8070; server_name your_domain.com;
location / { root /var/www/html; index index.html; } }
server { listen 8070 ssl; server_name your_domain.com;
# SSL 证书和私钥的路径 ssl_certificate /etc/nginx/ssl/nginx.crt; ssl_certificate_key /etc/nginx/ssl/nginx.key;
# 可选:设置 SSL 协议和加密套件 ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384;
# 可选:设置 HSTS 头,让浏览器强制使用 HTTPS add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";
location / { root /var/www/html; index index.html; } } |
在上述配置中:
第一个 server 块:
第二个 server 块:
虽然可以在同一端口同时提供 HTTP 和 HTTPS 服务,但这种配置可能会引起混淆,并且不是一个推荐的最佳实践。通常建议将 HTTP 服务和 HTTPS 服务分别部署在不同的端口,例如 80 端口用于 HTTP,443 端口用于 HTTPS,然后使用重定向将 HTTP 请求重定向到 HTTPS 以确保安全。以下是一个将 80 端口的 HTTP 请求重定向到 443 端口的 HTTPS 的示例:
|
1 2 3 4 5 |
server { listen 80; server_name your_domain.com; return 301 https://$host$request_uri; } |