• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

    如何使用Nginx配置将80端口重定向到443端口

    发布者: 涵韵 | 发布时间: 2025-6-14 13:30| 查看数: 93| 评论数: 0|帖子模式

    要将Nginx配置为将HTTP(80端口)请求重定向到HTTPS(443端口),请按照以下步骤操作:

    1. 创建或编辑Nginx配置文件

    通常配置文件位于
    1. /etc/nginx/sites-available/
    复制代码
    ,您需要修改或创建相应的配置文件(如
    1. default
    复制代码
    或您的站点配置)。

    2. 配置HTTP重定向到HTTPS

    在配置文件中添加以下内容,将HTTP请求重定向到HTTPS:
    1. server {
    2.     listen 80;
    3.     listen [::]:80;  # 支持IPv6
    4.     server_name example.com www.example.com;  # 替换为您的域名

    5.     # 强制重定向到HTTPS
    6.     return 301 https://$host$request_uri;
    7. }
    复制代码
    3. 配置HTTPS服务器块

    添加或修改443端口的配置,启用SSL并指定证书路径:
    1. server {
    2.     listen 443 ssl;
    3.     listen [::]:443 ssl;  # 支持IPv6
    4.     server_name example.com www.example.com;

    5.     # SSL证书配置
    6.     ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;  # 替换为您的证书路径
    7.     ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;  # 替换为私钥路径

    8.     # 推荐SSL配置(增强安全性)
    9.     ssl_protocols TLSv1.2 TLSv1.3;
    10.     ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256';
    11.     ssl_prefer_server_ciphers on;
    12.     ssl_session_cache shared:SSL:10m;
    13.     ssl_session_timeout 10m;

    14.     # HSTS(可选但推荐)
    15.     add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

    16.     # 网站根目录和其他配置
    17.     root /var/www/html;
    18.     index index.html index.htm;

    19.     location / {
    20.         try_files $uri $uri/ =404;
    21.     }
    22. }
    复制代码
    4. 检查防火墙设置

    确保服务器防火墙允许HTTP(80)和HTTPS(443)端口:
    1. sudo ufw allow 80/tcp
    2. sudo ufw allow 443/tcp
    3. sudo ufw reload
    复制代码
    5. 测试并应用配置
    1. # 检查配置语法是否正确
    2. sudo nginx -t

    3. # 重新加载Nginx使配置生效
    4. sudo systemctl reload nginx
    复制代码
    6. 验证配置

    访问
    1. http://example.com
    复制代码
    ,应自动跳转到
    1. https://example.com
    复制代码

    使用浏览器开发者工具检查网络请求,确认返回状态码为301或307。
    使用SSL检测工具(如SSL Labs)检查HTTPS配置安全性。

    注意事项

    证书路径:确保
    1. ssl_certificate
    复制代码
    1. ssl_certificate_key
    复制代码
    指向正确的证书和私钥文件(如Let's Encrypt证书)。
    多域名支持:若需处理多个域名,在
    1. server_name
    复制代码
    中添加所有相关域名,或使用通配符
    1. *.example.com
    复制代码

    IPv6支持:若服务器启用IPv6,需包含
    1. listen [::]:80;
    复制代码
    1. listen [::]:443 ssl;
    复制代码

    HTTP/2:在HTTPS配置中添加
    1. http2
    复制代码
    以启用HTTP/2:
    1. listen 443 ssl http2;
    2. listen [::]:443 ssl http2;
    复制代码
    错误处理:若遇到重定向循环,检查SSL配置是否正确,或暂时注释HTTPS配置,排查问题。

    方法补充

    nginx 80端口重定向到443端口
    nginx 80端口重定向到443端口,也就是http访问自动跳转到https
    配置如下:
    1.按照如下格式修改nginx.conf 配置文件,80端口会自动转给443端口,这样就强制使用SSL证书加密了。访问http的时候会自动跳转到https上面。
    1. server {
    2.         server_name xxxx.com;  # 域名   
    3.         listen 80;                        
    4.         rewrite ^(.*) https://$server_name$1 permanent;     
    5.     }  

    6. server {
    7.         listen 443 ssl;
    8.         listen [::]:443 ssl ipv6only=on;

    9.         ssl_certificate /etc/letsencrypt/live//fullchain.pem;
    10.         ssl_certificate_key /etc/letsencrypt/live//privkey.pem;
    11.         ssl_trusted_certificate /etc/letsencrypt/live//chain.pem;

    12.         .... 其他配置信息


    13.         
    14. }
    复制代码
    备注: ${server_name}可以换成$host
    2.重启nginx
    3.示例(以下是我们生产的配置)
    1. server {
    2.     listen 80;
    3.     server_name www.test.com;
    4.     rewrite ^(.*)$ https://${server_name}$1 permanent; }

    5. server {
    6.     listen 443;
    7.     server_name www.test.com;
    8.     ssl on;
    9.     ssl_certificate   /etc/pki/CA/certs/214321311540956.pem;
    10.     ssl_certificate_key  /etc/pki/CA/certs/214321311540956.key;
    11.     ssl_session_timeout 5m;
    12.     ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    13.     ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    14.     ssl_prefer_server_ciphers on;   
    15.     index index.php index.htm index.html;
    16.     error_page 404 /404.html;
    17.     error_page 500 502 503 504 /50x.html;

    18.     location ~ \.php {
    19.     root /alidata/www/html;
    20.     fastcgi_pass unix:/tmp/php-cgi.sock;
    21.     fastcgi_index index.php;
    22.     include   fastcgi.conf;    set $path_info "";    set $fastcgi_script_name_new $fastcgi_script_name;        if ($fastcgi_script_name ~*   "^(.+\.php)(/.+)$"  ) {            set $fastcgi_script_name_new $1;        set $path_info $2;
    23.     }

    24.     fastcgi_param   SCRIPT_FILENAME   $document_root$fastcgi_script_name_new;
    25.     fastcgi_param   SCRIPT_NAME   $fastcgi_script_name_new;                    
    26.     fastcgi_param   PATH_INFO $path_info;
    27.     }

    28.     location / {
    29.     root /alidata/www/html;
    30.     index index.php index.html index.htm;    if (!-e  $request_filename){
    31.         rewrite ^(.*)$ /index.php$1 last;
    32.     }
    33.   }
    34. }
    复制代码
    到此这篇关于如何使用Nginx配置将80端口重定向到443端口的文章就介绍到这了,更多相关Nginx端口80重定向443内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    来源:https://www.jb51.net/server/3399824h6.htm
    免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

    最新评论

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表