百度云服务器部署nginx + gunicorn + supervisor + flask

服务器配置

内存:1G
CPU:1核
系统:ubuntu

工具

Mac系统,连接云服务器使用的工具 finalshell

下载nginx

使用 sudo apt-get install nginx命令安装,安装完成在浏览器输入公网Ip地址是否安装成功和公网IP是否能够访问。

百度云服务器部署nginx + gunicorn + supervisor + flask_第1张图片
安装成功访问界面

下载supervisor

使用 sudo apt-get install nginx命令安装

下载virtualenv

使用 sudo pip install virtualenv命令安装

配置开发环境

创建虚拟环境

切换到项目到目录,创建项目的虚拟环境,使用命令 virtualenv venv
ps:venv 为虚拟环境的名字,可随意命名

激活虚拟环境:使用命令source venv/bin/activate

激活成功路径的变化

安装依赖包(逐一安装)

pip install flask
pip install gunicorn
也可以创建描述文件统一安装: vim requirements.txt 文件内容为:

文件内容

使用命令统一安装:pip install -r requirements.txt

创建测试项目test.py


from flask import Flask

app = Flask(__name__)

@app.route('/')
def index():
    return 'hello world'

if __name__ == '__main__':
    app.run()

使用gunicorn运行项目:gunicorn -b 0.0.0.0:8000 test:app
新建一个SSH远程窗口 使用命令 curl http:localhost:8000 测试项目是否运行成功

配置nginx

切换到nginx目录下,注意到两个目录
sites-enabled 生效 的nginx的配置
sites-available 可用的nginx 的配置,该文件目录下的文件要生效必须在 sites-enabled 创建软连接

image.png

在切换到sites-available 目录下创建nginx配置vim test

百度云服务器部署nginx + gunicorn + supervisor + flask_第2张图片
test内容

sites-enabled 创建软链接:使用命令ln -s test ../sites-enabled

配置supervisor

在supervisor的conf.d目录,创建配置文件

image.png
test配置

重启nginx

sudo service nginx restart

启动supervisor

supervisord -c supervisor.conf

配置restful https 访问

安装 pip install pyOpenSSL

创建CA证书

首先要有CA证书,由于这篇是示例教程,所以使用自签证书即可。生成自签证书可以参考这里:《在局域网里创建个人CA证书》。

程序开启SSL

上面代码是使用本机的证书,如果自定义证书路径,可以改成下面的代码。

百度云服务器部署nginx + gunicorn + supervisor + flask_第3张图片
image.png

修改supervisor 的text配置文件

为:

[program:test]
command = /home/workspaces/wheat/test/venv/bin/gunicorn -b localhost:8099 test:app --keyfile server/server-key.pem --certfile server/server-cert.pem

directory = /home/workspaces/wheat/test

修改 nginx 配置开启SSL验证

为:
ps : ### 表示所在的目录

server{
   listen 8081;
   server_name 0.0.0.0;
 ssl on;
 ssl_certificate /###/server-cert.pem;
 ssl_certificate_key  /###/server-key.pem;

   location /{
       proxy_pass http://localhost:8099;
       proxy_redirect off;
   }

}

你可能感兴趣的:(百度云服务器部署nginx + gunicorn + supervisor + flask)