Dynadot 搬瓦工 腾讯云

LNMP 一键包配置 NGINX 实现 HTTP 自动跳转 HTTPS 最佳方法

Sider GigsGigsCloud

今天发现网站一直没有自动跳转 HTTPS,首次进入的时候如果只访问了 HTTP,那么还是会停留在 HTTP,所以研究了一下 LNMP 一键包环境下配置 NGINX 实现自动跳转 HTTPS 的方法。其实很简单,我相信我们配置完 SSL 证书之后,都希望通过 301 实现自动跳转。本文分享一下 NGINX 官方推荐的 301 跳转实现方法。

LAMP 下实现类似效果可以参考老唐之前的文章:《LAMP 环境下安装配置 SSL 证书并自动跳转到 HTTPS》。

一、NGINX 官方推荐的跳转方法

目前官方推荐的写法如下(参考:《LNMP环境下正确配置HTTP强制跳转HTTPS的方法》,以及官方文档:《Taxing Rewrites》):

# 不好的方法:
  rewrite ^/(.*)$ http://example.com/$1 permanent;
# 好的方法:
  rewrite ^ http://example.com$request_uri? permanent;
# 更好的方法:
  return 301 http://example.com$request_uri;

因此,对于 HTTP 强制自动 301 跳转 HTTPS 的写法就是:

return 301 https://$server_name$request_uri;

二、LNMP 配置自动跳转 HTTPS 方法

知道了怎么写跳转,之后就是写在哪里的问题了。

LNMP 对于每个 vhost 的配置文件在下面的目录:

/usr/local/nginx/conf/vhost/域名.conf

我们打开对应自己域名的文件,然后会看到一个类似下面这样的文件:

# https部分
server {
        listen 443 ssl;
        server_name  yourname.com;

        ssl_certificate      /dir/xx.crt;
        ssl_certificate_key  /dir/xx.key;
        ssl_dhparam          /dir/dhparam.pem;

        ssl_session_timeout  5m;

        ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers   on;
        ssl_ciphers  ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+EXP;

        location / {
            root   /your/wwwroot/;
            index  index.html index.htm index.jsp index.do;
        }
    }
# http部分
server {
	listen	80;
	server_name yourname.com;
	return 301 https://$server_name$request_uri;   # 将需要添加的语句添加在此
	location / {
            root   /your/wwwroot/;
            index  index.html index.htm index.jsp index.do;
        }
    # http部分的location字段可保留可删除
    }

上面文件只是示例。主要是文件分为两部分,HTTPS 部分和 HTTP 部分,我们需要把上面的那句 return 301 添加到 HTTP 部分,如上所示。

最后,重启一下 NGINX 生效:

lnmp nginx restart

这个是目前 NGINX 官方最推荐的做法,在 LNMP 一键安装包下配置也很简单,本文就分享至此。

三、建站 VPS 推荐

目前比较推荐腾讯云香港:《腾讯云香港 CN2 VPS 秒杀:428 元/3年,1核 1G 1M,三网直连,超低延迟》。

1、便宜 VPS 推荐:

更多国内 VPS 商家推荐,参考《2019 年最好用的便宜国内云服务器 VPS 主机商家排行推荐》。

2、优质的域名注册商:

更多域名注册商推荐,可以参考 搬砖部落 出品的《2019 年最好的便宜域名注册商推荐》。

Dynadot Hostwinds
赞(1)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《LNMP 一键包配置 NGINX 实现 HTTP 自动跳转 HTTPS 最佳方法
文章链接:https://oldtang.com/1735.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。