nginx让所有的http地址重定向到https

本文详细介绍了如何在Nginx中配置HTTP到HTTPS的重定向,通过简单的配置实现网站安全性提升。具体包括Nginx配置文件的关键参数解析,以及如何确保所有HTTP请求被重写为HTTPS。

问:为什么让所有的http都重定向到https呢?
答:因为这样会使网站更安全些。

那么我是如何在nginx配置,让输入http://www.youcongtech.com或者youcongtech.com全部都重定向到https://www.youcongtech.com的呢?
其实我仅仅只是在nginx.conf配置文件中的server配置了如下:

rewrite ^(.*)$  https://$host$1 permanent;

这段配置的含义将所有的http请求通过rewrite重写到https上。

下面贴一下我的nginx.conf配置文件(主要重要的):

upstream  www.youcongtech.com{
         server   39.107.110.227:2019;

    }
 server {
        listen       80;
        server_name  www.youcongtech.com;
        rewrite ^(.*)$  https://$host$1 permanent;
        #charset koi8-r;

        #access_log  logs/host.access.log  main;


        location ~ / {
            root /usr/local/nginx/html;
            index index.html index.htm;

        }
      error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }


      server {
        listen 443;
        server_name www.youcongtech.com;
        ssl on;
        index index.html;
        ssl_certificate /usr/local/nginx/cert/18540291_www.youcongtech.com.pem;
        ssl_certificate_key /usr/local/nginx/cert/18540291_www.youcongtech.com.key;
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;



        location / {
                proxy_set_header X-Forwarded-Host $host;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header Host $http_host;
                proxy_redirect off;
                expires off;
                sendfile off;
                proxy_pass http://www.youcongtech.com;
                root /usr/local/nginx/html;
                index index.html index.htm;
        }

        location ~ ^/blog/(.*){
                 proxy_set_header Host $host;
                 proxy_set_header X-Real-IP $remote_addr;
                 proxy_pass http://www.youcongtech.com;    #转向tomcat处理

         }


}

上面参数到底是什么意思,加或者不加到底会怎么样,关于nginx参数详解和更好的优化,后续会有详细的讲解,我会继续编写我的博客系统,并以此作为案例。
当然了,如果公司涉及这块比较多,后续我也会以公司案例来给大家讲解。

本文主要参考该地址:https://www.cnblogs.com/kevingrace/p/6187072.html

转载于:https://www.cnblogs.com/youcong/p/10462881.html

### 配置 Nginx 实现 HTTPHTTPS重定向 为了实现将 HTTP 请求重定向HTTPS,需要在 Nginx 中配置两个 `server` 块,分别监听 80 和 443 端口。以下是一个完整的配置示例: ```nginx server { listen 80; server_name my.domain.com; return 301 https://$server_name$request_uri; // 将所有 HTTP 请求重定向HTTPS[^1] } server { listen 443 ssl; server_name my.domain.com; ssl_certificate /path/to/your/certificate.crt; // SSL 证书路径[^2] ssl_certificate_key /path/to/your/private.key; // 私钥路径[^2] ssl_session_cache shared:SSL:1m; // 配置 SSL 会话缓存 ssl_session_timeout 5m; // 设置 SSL 会话超时时间[^2] ssl_ciphers HIGH:!aNULL:!MD5; // 配置加密套件 ssl_prefer_server_ciphers on; // 启用服务器端加密套件优先级 location / { proxy_pass http://backend_service; // 将请求转发到后端服务[^2] proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } ``` #### 注意事项 - 在上述配置中,`return 301` 表示永久重定向,这有助于搜索引擎优化(SEO)[^4]。 - 替换 `/path/to/your/certificate.crt` 和 `/path/to/your/private.key` 为实际的 SSL 证书和私钥路径。 - 如果使用的是自签名证书或 Let's Encrypt 提供的免费证书,请确保路径正确无误。 #### 验证配置并重启 Nginx 完成配置后,需要验证 Nginx 配置文件的语法是否正确,并重新加载 Nginx 以应用更改: ```bash sudo nginx -t // 检查配置文件语法 sudo systemctl reload nginx // 重新加载 Nginx 配置 ``` 如果在运行过程中遇到问题,可以查看错误日志以获取更多信息: ```bash sudo tail -f /var/log/nginx/error.log ``` --- ####
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值