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

以下是一个同时使用 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_certificatessl_certificate_key:指定 SSL 证书和私钥的路径。
      • ssl_protocolsssl_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;
    }
相关推荐
handsomestWei7 小时前
Docker引擎API接入配置
运维·http·docker·容器·api
tryCbest14 小时前
Nginx常用操作命令-Linux和Windows系统
linux·windows·nginx
大數據精準工單獲取17 小时前
【数据抓取】 编写爬虫基本请求:使用爬虫框架发送 HTTP 请求,获取网页内容
爬虫·网络协议·http
时空自由民.17 小时前
HTTP协议和MQTT协议区别
网络·网络协议·http
AI_Claude_code18 小时前
网络基础回顾:DNS、IP封锁与HTTP/S协议关键点
网络·爬虫·python·tcp/ip·http·爬山算法·安全架构
難釋懷18 小时前
Nginx实现本地缓存查询
nginx·spring·缓存
ZzzZZzzzZZZzzzz…1 天前
Nginx 平滑升级:从 1.26.3 到 1.28.0,用户无感知
linux·运维·nginx·平滑升级·nginx1.26.3·nginx1.28.0
robch1 天前
python3 -m http.server 8001直接启动web服务类似 nginx
前端·nginx·http
以太浮标2 天前
华为eNSP模拟器综合实验之- DHCP、DNS、HTTP和FTP服务器配置案例Client-Server
linux·服务器·windows·http·华为·信息与通信
cyber_两只龙宝2 天前
【Nginx】Nginx实现FastCGI详解
linux·运维·nginx·云原生·php·memcached·fastcgi