Nginx设置https和http同时使用同一个端口访问

 更新时间:2025年05月30日 09:46:38   作者:姜太小白  
本文主要介绍了Nginx通过8070端口同时支持HTTP和HTTPS的配置方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

以下是一个同时使用 HTTP 和 HTTPS 并通过 8070 端口的配置示例:

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 块:

  • listen 8070;:让 Nginx 监听 8070 端口进行 HTTP 访问。
  • server_name your_domain.com;:指定服务器的域名,将 your_domain.com 替换为你的实际域名。
  • location /:将请求发送到 /var/www/html 目录下的静态文件,你可以根据需要修改,如将请求代理到其他服务器。

第二个 server 块:

  • listen 8070 ssl;:让 Nginx 监听 8070 端口进行 HTTPS 访问。
  • ssl_certificate 和 ssl_certificate_key:指定 SSL 证书和私钥的路径。
  • ssl_protocols 和 ssl_ciphers:配置 SSL 协议和加密套件,提高安全性。
  • add_header Strict-Transport-Security:启用 HSTS,让浏览器强制使用 HTTPS。
  • location /:与 HTTP 部分类似,将请求发送到 /var/www/html 目录下的静态文件,你可以根据需要修改。

注意事项

虽然可以在同一端口同时提供 HTTP 和 HTTPS 服务,但这种配置可能会引起混淆,并且不是一个推荐的最佳实践。通常建议将 HTTP 服务和 HTTPS 服务分别部署在不同的端口,例如 80 端口用于 HTTP,443 端口用于 HTTPS,然后使用重定向将 HTTP 请求重定向到 HTTPS 以确保安全。以下是一个将 80 端口的 HTTP 请求重定向到 443 端口的 HTTPS 的示例:

server {
    listen 80;
    server_name your_domain.com;
    return 301 https://$host$request_uri;
}

到此这篇关于Nginx设置https和http同时使用同一个端口访问的文章就介绍到这了,更多相关Nginx 同时使用同一个端口访问内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

最新评论