nginx服务器http升级https
首先环境: 我的nginx安装目录在/usr/sbin, 配置路径在/etc/nginx/nginx.conf,是在nginx服务器环境下从http升级https
(如果安装之后找不到自己的安装目录,文章结尾给大家准备了查找命令)
1.我的是腾讯云服务器,现在个人域名申请ssl证书,比较方便而且也是免费的,申请的位置直接看图。
证书下载好后,上传到服务器里边,新建一个文件夹,这里我新创建的文件夹的路径是/usr.local/zhengshu(可以使用xftp工具,比较方便)
2.接下来找到我们nginx的配置文件,nginx.conf,在这个里边将以下代码粘贴进去,每个人的信息都不一样,大家可以在我标注的地方都改成自己的信息,就可以了。
server {
listen 443 ssl;//这里设置https的开放端口以及证书ssl
server_name www.dongyaxin.xyz;//这里是自己申请的域名
ssl on;//需要注意,在nginx版本1.15之后,不需要设置
root /data/wwwroot/blog;
index index.html;
ssl_certificate /usr/local/zhengshu/1_www.dongyaxin.xyz_bundle.crt;//这里是下载好的证书
ssl_certificate_key /usr/local/zhengshu/2_www.dongyaxin.xyz.key;//这里是下载好的证书的秘钥
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL;
ssl_prefer_server_ciphers on;
}
3.配置完成之后,重新启动一下nginx
//需要进入到nginx的安装目录
cd /usr/sbin
./nginx -s reload
4.重新启动之后,再次访问你的站点,https就可以访问了,成功的标志就是,url地址栏左边有一把小锁。还有最后一步,我们就可以更加完美,这个时候如果我们还用http访问的话,还是可以访问的,我们需要其重定向到https,下边是代码
server {
listen 80;
server_name dongyaxin.xyz;
//return 301 https://$server_name$request_uri;
return 301 https://dongyaxin.xyz$request_uri;
}
//配置完成之后,再次访问,会发现即便访问的是http,也会自动变成https
注意:在启动的过程中,如若出现以下错误
nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address already in use)
nginx: [emerg] still could not bind()
出现这样的错误可能是您的80端口被上次那个进程占用,需要我们手动清除一下
netstat -ntlp|grep 80
kill -9 进程号
下边是一些常用到的命令
//查找配置文件nginx.conf
find /|grep nginx.conf
//查找nginx的安装目录
ps -ef | grep nginx
//nginx停止服务的命令
nginx -s quit(此方法比较温和,需要进程完成当前工作后停止)
//启动命令,一般我都是进入安装目录后
./nginx
还没有评论,来说两句吧...