menu Stephen Space
more_vert
chevron_right 首页 » 【折腾】 » 正文
【折腾】nginx设置强制HTTPS
2020-03-25 | 【折腾】 | 暂无评论 | 459 次阅读 | 618字

    最近换了服务器,要将旧服务器上的网站全部丢到新服务器去。以前我都是用宝塔Linux面板来管理网站,但是那个东西只支持在ipv4的环境下安装软件和管理网站,而我的服务器却只支持ipv6(之后在一篇专题中我会告诉大家为什么),所以在迫不得已的情况下,只能自己动手,丰衣足食了(当然,如果你正在使用宝塔面板等Linux面板,你就可以很方便地直接在面板中强制开启https)。
    所谓自己动手,就是指自己手动搭建LNMP环境。之所以不搭建LAMP,是因为在这个服务器上apache2老是启动失败,十分不稳定,所以便转投nginx。下面,正文开始!
走起.gif
    首先,搭网站必须要开启https(因为浏览器地址栏旁边的那把小锁看起来赏心悦目),但是有一些坑爹的浏览器默认是http,所以就会出现这种界面。
    
SSL.jpg
(图片来自网络,因为我的服务器跳过一次这种错误后就始终不肯再跳了。。。)
    又因为几乎没有人会自己手动在地址栏中输入“https://”,所以这个网站通常就废了。。。(废话啥,赶快进入正题)
    为了使你的网站“复活”,你就需要开启强制https来对付这一些坑爹的浏览器。首先,打开浏览器配置文件,如果你是自己手动安装nginx,那配置文件应该在etc/nginx/sites-enabled这个文件夹里(这句话好像是废话耶。。。),然后你就可以看到满屏幕的“劝退”(开个玩笑,你连手动搭建LNMP的决心都下下来了,以下操作应该都是小儿科)。
找到这两行代码。

server{
    ......
    listen 80;
    listen [::]:80;
    ......
}

    然后删掉。接着,在文件开头把这几行代码复制进去

server{
    listen 80;
    listen [::]:80;
    server_name YOUR_DOMAIN;
    return 301 https://YOUR_DOMAIN;
}

    这里的YOUR_DOMAIN指的是你的域名。在做完这一系列骚操作以后,你的配置文件的整体结构应该是这样子的

server{
    listen 80;
    listen [::]:80;
    server_name YOUR_DOMAIN;
    return 301 https://YOUR_DOMAIN;
}
#......
#......
server{
    ......
    listen 443 ssl;
    listen [::]:443 ssl;
    ......
    server_name YOUR_DOMAIN;
}

    别急,最后一步还没完,别忘了重启你的nginx来使配置文件生效哦。有一些刚刚开始折腾的小朋友可能就要重启你的服务器了。别急,重启nginx的命令在这里。

sudo /etc/init.d/nginx restart

    我是Stephen Zeng,如果这篇文章有什么写错了的地方需要更新的,欢迎在评论区指点江山,激扬文字~~~我们下篇文章再见!

None
发表评论
暂无评论
textsms
account_circle
email
link