0.准备
在此之前需要安装python,已经添加了flask库,具体操作此处不做解释。
1.安装uwsgi
1.1安装依赖
yum install -y gcc zlib* sqlite-devel libXcomposite libXcursor libXi libXtst libXScrnSaver libXrandr atk at-spi2-atk gtk3 openssl-devel
1.2安装uwsgi
pip install uwsgi
1.3测试
- 创建测试文件
# -*- coding: utf-8 -*-
from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/hello', methods=['GET'])
def hello():
result = {
"res":"hell,world!"
}
return jsonify(result)
if __name__ == "__main__":
app.run()
- 添加uwsgi.ini配置文件
[uwsgi]
#uwsgi启动时所使用的地址和端口
http=0.0.0.0:5000
#指向网站目录
chdir=/data
#python启动程序文件
wsgi-file=main.py
#python程序内用以启动的application变量名
callable=app
#处理器数
processes=4
#线程数
threads=2
#状态检测地址
stats=127.0.0.1:9191
#保存启动之后主进程的pid
pidfile=uwsgi.pid
#设置uwsgi后台运行,uwsgi.log保存日志信息 自动生成
daemonize=uwsgi.log
- 运行
处于/data
目录下,有uwsgi.ini
和main.py
两个文件
uwsgi uwsgi.ini
- 访问
浏览器访问服务器ip地址xxx.xxx.xxx.xxx:5000
2.安装nginx
2.1 下载
wget http://nginx.org/download/nginx-1.19.0.tar.gz
2.2 解压并编译安装
解压文件,进入目录下,为了使用HTTPS,需要导入SSL模块
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
make
make install
--prefix
指定安装路径
==p.s.==可以为nginx创建一个软链接
ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx
2.3测试
- 查看SSL是否安装成功
nginx -V
看configure argumens
是否有相应的模块
- 修改配置
需要修改一下uwsgi.ini
# http=0.0.0.0:5000
socket=127.0.0.1:5000
给nginx.conf
添加配置
默认情况下这段内容是被注释掉的,去掉注释即可,重要的是注释位置
server {
listen 443 ssl;
server_name localhost;
# 证书位置
ssl_certificate /data/ssl/your.pem;
ssl_certificate_key /data/ssl/your.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
# 关键
include uwsgi_params;
# 需要和uwsgi.ini中的socket相同
uwsgi_pass 127.0.0.1:5000;
}
}
- 运行测试
查看文件是否有问题
nginx -t
如果没有问题就启动并测试
nginx
3. 问题
如果访问失败,可能是一下几个问题(可能还有别的可能)
- 云服务器没有开放端口
- 开启了防火墙服务,但是没有开放端口
firewall-cmd --list-ports
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload