概述
腾讯云| Nginx安装与配置HTTPS
最近在写项目的时候,在将后台服务器部署到腾讯云后,因为前端是小程序,微信小程序开发对于正常使用必须基于
HTTPS
请求,因此需要配置HTTPS
。
本来是使用比较简单openssl
进行配置使用,使用第三方免费的SSL证书
,但是由于自己配置的证书不稳定,不能被校验通过,服务功能不能正常使用。因此选择申请腾讯云服务器的SSL证书
使用,后台的服务器框架为Flask
,但是腾讯云里面免费的SSL证书
只有Apache
、IIS
、Nginx
、Tomcat
四种,相应的证书对应专属的服务器,因此选择使用配置Nginx
服务器,再将相关请求代理到后端服务器处理
环境系统
- Centos 7
安装
yum install nginx
安装之后,可以查看nginx
的默认安装目录
# 方法 1
nginx -t
# 方法 2
whereis nginx
设置启动
# 设置自动启动
systemctl enable nginx
# 启动nginx
systemctl start nginx
获取证书
腾讯云
->SSL证书管理
->申请
- 下载证书,将对应的
nginx
服务器证书上传到腾讯云上- 在配置
nginx
需要用到,本文将证书放到/etc/nginx/SSL
文件夹
- 在配置
修改配置文件
cd /etc/nginx
vi nginx.conf
,修改相应部分server { listen 80; server_name xxx.xxx.cn; # 对应的域名或者host rewrite ^(.*)$ https://$host$1 permanent; # 默认强制使用https对http进行跳转 #charset koi8-r; #access_log logs/host.access.log main; location / { root html; index index.html index.htm; } } ... # HTTPS server # server { listen 443 ssl; server_name qcloud.captainp.cn; ssl_certificate /etc/nginx/SSL/1_qcloud.captainp.cn_bundle.crt; # 指定对应的证书 ssl_certificate_key /etc/nginx/SSL/2_qcloud.captainp.cn.key; # 指定对应的私钥 ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; location / { # root html; # index index.html index.html; proxy_pass http://xxx.xxx.cn:5000/; # 将请求都代理到本机5000,Flask服务器监听的端口进行处理,可以根据需要修改该部分 } }
重启Nginx
service nginx restart
问题补充与解决
在之前的成功配置后,某天在使用在服务器后,突然发现访问异常了,服务被拒绝,简单的重启服务器后,再次请求,发现服务器日志没有相关请求信息,猜想nginx的服务出现了问题
-
首先检查nginx的配置是否正确:
nginx -t -c /etc/nginx/nginx.conf
-
发现有以下报错:
nginx: [emerg] open() "/var/run/nginx/nginx.pid" failed (2: No such file or directory)
-
查阅相关博客:
不要在/var/run目下创建新目录。centos7,创建
了/var/run/nginx/
目录存放nginx.pid
,每次重启后,/var/run目录下都会清空!解决方法:
$vi /etc/nginx/nginx.conf
- 修改相应部分
#pid /var/run/nginx/nginx.pid; pid /home/nginx/pid/nginx.pid;
最后
以上就是疯狂冰淇淋为你收集整理的腾讯云| Nginx安装与配置HTTPS腾讯云| Nginx安装与配置HTTPS的全部内容,希望文章能够帮你解决腾讯云| Nginx安装与配置HTTPS腾讯云| Nginx安装与配置HTTPS所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复