flask + nginx + uwsgi 服务器上线 ssl证书(https) 小程序

flask小程序项目 阿里上线部署

安装虚拟环境

最好在服务器上安装虚拟环境,因为服务器上面可能会有几个项目,避免了安装包比较混乱,不容易区分,这里就不写怎么安装了,给个链接:https://www.cnblogs.com/cwp-bg/p/7701231.html
可以参考着安装,

安装nginx

进入虚拟环境中

sudo apt-get install nginx

配置nginx:
1、进入到nginx的安装目录,如我的是/etc/nginx/sites-available 目录下:
拷贝目录下的default 命名hua.jiugua.xyz (这个是我的域名,你也可以设置为自己的域名或其他)

cp default hua.jiugua.xyz

打开文件写入配置:

server {
	# ssl证书使用443
	listen 443 ssl default_server;
	# listen [::]:443 ssl default_server;
	# 后面是域名
	server_name hua.jiugua.xyz;	

	# 证书.pem的存放地址
	ssl_certificate   /var/www/hua/1752675_hua.jiugua.xyz_nginx/1752675_hua.jiugua.xyz.pem;
	# 证书.key的存放地址
	ssl_certificate_key  /var/www/hua/1752675_hua.jiugua.xyz_nginx/1752675_hua.jiugua.xyz.key;
	ssl_session_timeout  5m;
	ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
	ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
	ssl_prefer_server_ciphers on;

	root /var/www/html;

	# Add index.php to the list if you are using PHP
	index index.html index.htm index.nginx-debian.html;

	server_name _;

	location / {
		# 转发端口 
		uwsgi_pass  127.0.0.1:5000;
		include uwsgi_params;
	}
}

没有配置静态资源路径,前后端分离用不到静态文件目录
2、然后进入到 /etc/nginx/sites-enabled 目录下进行拷贝:
软链接 /etc/nginx/sites-available 下的 hua.jiugua.xyz到 /etc/nginx/sites-enabled 目录下 命名不变,

# ln -s 源文件 目标文件
ln -s /etc/nginx/sites-available/hua.jiugua.xyz hua.jiugua.xyz

这样nginx就配置好了
3、重启nginx

service nginx restart

如果nginx重启出错,一般情况下就是你的配置文件写错了
90%是少写了分号’;’,还有就是花括号是否是配对的,

上传项目

建立项目目录

/var/www/hua
项目上传到此目录(上传的是项目里面的文件,没有最外面的文件夹)
上传项目可以使用WinCSP这个工具,

安装配置uwsgi

命令:

pip install uwsgi

配置:
在项目所在目录(/var/www/hua)新建文件hua.ini
名字也可以随便起,但是必须是.ini格式
打开hua.ini进行配置

[uwsgi]

# uwsgi 启动时所使用的地址与端口
# 就是程序运行是访问的端口
socket = 127.0.0.1:5000 

# 指向网站目录
chdir = /var/www/hua

# python 启动程序文件
wsgi-file = manage.py 

# python 程序内用以启动的 application 变量名
callable = app 

virtualenv = /root/.pyenv/versions/hua

# 下面的不用动,也可以不要
# 处理器数
processes = 4

# 线程数
threads = 2

#状态检测地址
# stats = 127.0.0.1:9191

特别注意callable = app
这个是app = Flask(name) 前面的app

wsgi-file = manage.py 这里如下图:
不拆分的情况下是app.py
flask + nginx + uwsgi 服务器上线 ssl证书(https) 小程序_第1张图片
启动uwsgi
命令:uwsgi xxx.ini
xxx替换成刚才.ini文件的名字

uwsgi hua.ini

如果项目在关闭xshell后就不能正常访问了,在配置uwsgi中加上下面的日志

# 目录自己定
daemonize = /var/mylog/hua.log

这样整个项目就完成了,可以试试访问,在浏览器中输入自己的域名访问,如:https://hua.jiugua.xyz
加上自己项目里的url路径,

划重点:如果出现访问不到网页的情况下,很有可能就是你的服务器443端口没有开放,所以不能进行https访问,

参考:https://m.aliyun.com/wanwang/info/1526743.html
https://www.cnblogs.com/Ray-liang/p/4173923.html

你可能感兴趣的:(Flask)