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

已关闭留言

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

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

文章目录
隐藏
一、NGINX 官方推荐的跳转方法
二、LNMP 配置自动跳转 HTTPS 方法
三、建站 VPS 推荐

一、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(BandwagonHost)所有便宜方案整理和推荐》
  • Vultr:《Vultr 便宜 VPS 方案整理以及速度测试,按小时计费,支付宝付款》
  • 腾讯云:《腾讯云:2019年 10 月最新优惠,云服务器 99 元/年起,新老用户均可领取 1870 元代金券》
  • 阿里云:《2019 年 9 月阿里云最新活动和优惠信息整理》
  • 阿里云:《阿里云轻量应用服务器:24 元/月,香港 CN2,1G 内存,1TB 月流量》
  • GigsGigsCloud:《GigsGigsCloud 香港 PCCW / 香港 HKBN / 洛杉矶 CN2 GIA 等便宜 VPS 方案整理》
  • DMIT:《DMIT 香港补货:$14.9/月,1G 内存,1.2TB 月流量,200Mbps 大带宽,年付额外九折且流量 1.3 倍》
  • DMIT:《DMIT CN2 GIA 优惠:终身九折 + 1.3 倍流量,或终身 1.5 倍流量》
  • UCloud:《UCloud:北京、香港 CN2 云服务器 VPS 低至 100 元/年》
  • HostDare:《HostDare CN2 GIA 方案重新补货上线,永久 85 折,$39/年起》
  • VirMach:《VirMach:$4.9/年,1核 256MB 5GB,超低价便宜 VPS 重现江湖》
  • Linode:《Linode 优惠码:2019 年 9 月最新 Linode 新用户 20 美元优惠码》
  • SugarHosts:《糖果主机 SugarHosts:2019 年 10 月最新优惠码,VPS 全场七折》
  • CubeCloud:《CubeCloud 魔方云:欢度国庆,洛杉矶 CN2 产品限时特惠,终身九折 58.5 元/月起》
  • HostWinds:《HostWinds:1核 1G 30G,$5.17/月,西雅图,最便宜的全管理型 VPS 推荐》
  • RFCHOST:《RFCHOST:$8.99/月,洛杉矶 CN2 GIA,512MB,10GB HDD,500GB 月流量 @500Mbps》

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

2、优质的域名注册商:

  • Dynadot:《Dynadot:靠谱便宜国外域名注册商,域名注册低至 15 元/年》
  • NameCheap:《NameCheap:.COM,.ME 等多种域名优惠低至 1.6 折,$2.98/年》

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