Nginx上配置SSL证书
原文链接:https配置
方法1: HTTPS 访问本地静态网页
server{
\#监听443端口
listen 443;
\#对应的域名,把baofeidyz.com改成你们自己的域名就可以了
server\_name xl8836.xyz;
ssl on;
\#从腾讯云获取到的第一个文件的全路径
ssl\_certificate /etc/nginx/cert/cert-1540543343134\_www.xl8836.xyz.crt;
\#从腾讯云获取到的第二个文件的全路径
ssl\_certificate\_key /etc/nginx/cert/cert-1540543343134\_www.xl8836.xyz.key;
ssl\_session\_timeout 5m;
ssl\_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl\_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl\_prefer\_server\_ciphers on;
\#这是我的主页访问地址,因为使用的是静态的html网页,所以直接使用location就可以完成了。
location / \{
\#文件夹
root /home/python/Desktop/html;
\#主页文件
index index.html;
\}
}
server{
listen 80;
server\_name xl8836.xyz;
rewrite ^/(.\*)$ [https://xl8836.xyz:443/$1][https_xl8836.xyz_443_1] permanent;
}
方法2: 通过 Gunicorn 访问Flask项目
# 如果是多台服务器的话,则在此配置,并修改 location 节点下面的 proxy_pass
upstream flask {
server 127.0.0.1:5000; \# 多台服务器, 依次添加服务器的地址及端口 server host:port
\# server 127.0.0.1:5001;
}
server {
\# 监听80端口
listen 80 default\_server;
listen \[::\]:80 default\_server;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server\_name \_;
location / \{
\# 请求转发到gunicorn服务器
proxy\_pass [http://127.0.0.1:5000][http_127.0.0.1_5000];
\# 请求转发到多个gunicorn服务器
\# proxy\_pass [http://flask][http_flask];
\# 设置请求头,并将头信息传递给服务器端
proxy\_set\_header Host $host;
\# 设置请求头,传递原始请求ip给 gunicorn 服务器
proxy\_set\_header X-Real-IP $remote\_addr;
\}
}
方法3: 通过https协议访问Flask项目
upstream flask {
server 127.0.0.1:5000;
\# server 127.0.0.1:5001;
}
server{
\#监听443端口
listen 443;
\#对应的域名,把baofeidyz.com改成你们自己的域名就可以了
server\_name xl8836.xyz;
ssl on;
\#从腾讯云获取到的第一个文件的全路径
ssl\_certificate /etc/nginx/cert/cert-1540543343134\_www.xl8836.xyz.crt;
\#从腾讯云获取到的第二个文件的全路径
ssl\_certificate\_key /etc/nginx/cert/cert-1540543343134\_www.xl8836.xyz.key;
ssl\_session\_timeout 5m;
ssl\_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl\_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl\_prefer\_server\_ciphers on;
\#这是我的主页访问地址,因为使用的是静态的html网页,所以直接使用location就可以完成了。
location / \{
\# 请求转发到gunicorn服务器
proxy\_pass [http://127.0.0.1:5000][http_127.0.0.1_5000];
\# 请求转发到多个gunicorn服务器
\# proxy\_pass [http://flask][http_flask];
\# 设置请求头,并将头信息传递给服务器端
proxy\_set\_header Host $host;
\# 设置请求头,传递原始请求ip给 gunicorn 服务器
proxy\_set\_header X-Real-IP $remote\_addr;
\}
}
server{
listen 80;
server\_name xl8836.xyz;
rewrite ^/(.\*)$ [https://xl8836.xyz:443/$1][https_xl8836.xyz_443_1] permanent;
}
重要
配置完成后,检查一下nginx配置文件是否可用,有successful表示可用。
$ nginx -t // 检查nginx配置文件
配置正确后,重新加载配置文件使配置生效:
$ nginx -s reload // 使配置生效
到阿里云ECS的管理后台的安全组,修改端口过滤规则把80端口和443端口开放才能访问到。
至此,nginx的https访问就完成了,并且通过rewrite方式把所有http请求也转成了https请求,更加安全。
如需重启nginx,用以下命令:
$ service nginx stop // 停止
$ service nginx start // 启动
$ service nginx restart // 重启
lsof -i:端口号, 如:
lsof -i:5000 查看占用5000端口的应用
kill -9 4937 杀死PID为1062的应用
有的时候杀死一个不能全部结束, 所以需要查看一下
sudo pkill redis-server 关闭redis-server所有后台
sudo pkill gunicorn 关闭gunicorn所有后台
ps aux | grep redis-server 查看redis-server进程信息
ps aux | grep gunicorn 查看redis-server进程信息
后台启动gunicorn
gunicorn -w 1 -D -b 127.0.0.1:5000 —threads 16 manage:app
-w 进程
-D 后台运行
-b host:port ip地址及端口
--threads int 线程数量
gunicorn -h 查看帮助, 建议使用 gunicorn -h | more # 查看过程使用 Enter 或者 Ctrl+F ^-^
manage:app 运行文件名称:Flask程序实例名
还没有评论,来说两句吧...