SSL证书安装
nginx是一个轻量级的web服务器,在处理静态资源和高并发有优势
uwsgi是一个基于python的高效率的协议,处理后端和动态网页有优势
所以这里采用静态网页交给nginx解析,动态网页交给uwsgi解析,并且nginx配置ssl,即可以使用出高安全,高效率的部署。
以下是我前些时候写的nginx配置
接下来我们就开始更改 装上SSL证书
前言配置
nginx配置
位于/etc/nginx/conf.d/的titoweb.conf
upstream titoweb {
server unix:///srv/titoweb/titoweb.sock;
}
# 配置服务器
server {
# 监听的端口号
listen 80;
# 域名
server_name titochan.top;
charset utf-8;
# 静态文件访问的url
location /static {
# 静态文件地址
alias /srv/titoweb/static;
}
# 最后,发送所有非静态文件请求到uwsgi服务器
location / {
uwsgi_pass titoweb;
# uwsgi_params文件地址
include /etc/nginx/uwsgi_params;
}
}
uwsgi配置
[uwsgi]
# 项目的路径
chdir = /srv/titoweb/
# Flask的uwsgi文件
wsgi-file = /srv/titoweb/main.py
# 回调的app对象
callable = app
# Python虚拟环境的路径
home = /root/.virtualenvs/titoweb_env
# 进程相关的设置
# 主进程
master = true
# 最大数量的工作进程
processes = 1
http = :80
socket = /srv/titoweb/titoweb.sock
# 设置socket的权限
chmod-socket = 666
# 退出的时候是否清理环境
vacuum = true
准备工作:端口443 和 SSL证书
两者端口我都开启
首先我们要先获得SSL证书
我是在nginx里面实装
所以我的证书形式为.pem和.key
我将其放置于
/etc/nginx/cert
更改前言的uwsgi和nginx配置
将uwsgi.ini中的
http = :80
删除 以便443端口进入
将titoweb.conf中的
upstream titoweb {
server unix:///srv/titoweb/titoweb.sock;
}
删除 我们要将其放置在将titoweb.conf include的总nginx.conf文件里
后续有相关说明
配置nginx.conf
以下放在nginx.conf的
http{
}
中!!!!在总的文件里面有这个作用域
我们先加
upstream titoweb {
server unix:///srv/titoweb/titoweb.sock;
}
配置443端口
server {
#HTTPS的默认访问端口443。
#如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。
listen 443 ssl;
#填写证书绑定的域名
server_name titochan.top;
#填写证书文件名称
ssl_certificate cert/titochan.top.pem;
#填写证书私钥文件名称
ssl_certificate_key cert/titochan.top.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
#自定义设置使用的TLS协议的类型以及加密套件(以下为配置示例,请您自行评估是否需要配置)
#TLS协议版本越高,HTTPS通信的安全性越高,但是相较于低版本TLS协议,高版本TLS协议对浏览器的兼容性较差。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
#表示优先使用服务端加密套件。默认开启
ssl_prefer_server_ciphers on;
location / {
uwsgi_pass titoweb;
# uwsgi_params文件地址
include /etc/nginx/uwsgi_params;
}
}
控制80端口转为443端口
#监控80端口,强制跳转到443端口
server {
listen 80;
server_name titochan.top;
rewrite ^(.*)$ https://titochan.top$1;
}
最后操作
用nginx -t
测试
发现没问题
开启nginx
systemctl start nginx
开启uwsgi
uwsgi --ini uwsgi.ini
上网站 SSL证书便出现了