Nginx+flask+Gunicorn基于Centos7的部署

环境

1.python37
2.nginx
3.gunicorn
4.其他

内容

1.flask main.py 
2.nginx.conf

测试

1. 内部测试
2. 浏览器测试

配置环境

1.安装nginx

yum-y install  nginx

2.安装python3
使用wget方式下载3.7版本

wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz

安装python3之前要准备其他环境,修改环境

vi /usr/bin/yum
vi /usr/libexec/urlgrabber-ext-down

将第一行 #!/usr/bin/python 改成 #!/usr/bin/python2.7

安装其他库

yum -y install libffi-devel
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqilte-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel

回到python3.7的压缩包目录下,解压

tar -xvJf Python-3.7.0.tar.xz

创建目录

mkdir /usr/local/python3
cd Python-3.7.0
./configure --prefix=/usr/local/python3
		make && make install

创建软连接

ln -s /usr/local/python3/bin/python3 /usr/local/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/local/bin/pip3
alias python=python3

3.gunicorn安装

pip3 install gunicorn==20.0.4
whereis gunicorn
cd /usr/local/python3/bin/
./gunicorn -h
ln -s /usr/local/python3/bin/gunicorn /usr/bin/gunicorn
cd ~
gunicorn -h

4.flask安装

pip3 install flask

执行文件

1.flask代码

# main.py
from flask from Flask 
app = Flask(__name__)

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

def main():
 app.run(debug=True)

if __name__ == '__main__':
 main()

将文件main.py拷贝到指定目录。如/home/flask/下
这里可以用MobXterm工具。

内部测试
cd /home/flask/
gunicorn -w 3 main:app

利用MobXterm,执行

curl 127.0.0.1:8000

成功返回hello world!

2.配置nginx
使用nginx将gunicorn启动的ip服务代理出去

vi /etc/nginx/nginx.conf

将以下加入到nginx.conf中,注意调整好位置,与原本server同级别。

server {
        listen       8001 default_server;
        listen       [::]:8001 default_server;
        server_name  1111.1111.1111.1111;
        include   /etc/nginx/defauld.d/*.conf;
        location / {
             proxy_pass http://127.0.0.1:8000; # 这里是指向 gunicorn host 的服务地址
             proxy_set_header Host $host;
             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
}

其中1111.1111.1111.1111是虚拟机的ip

hostname -I 
#如果不清楚ip,可以执行以该命令查看

替换ip之后,检查nginx.conf是否正确,然后刷新nginx.conf

nginx -t 
#nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
#nginx: configuration file /etc/nginx/nginx.conf test is successful
#得到以上两行则说明修改成功
nginx -c /etc/nginx/nginx.conf
#刷新配置文件
nginx -s reload
#重启

3.外部测试
确保你的gunicorn启动了
如果已经停止则重新启动
在本机浏览器输入http://1111.1111.1111:8001/
注意:1111.1111.1111.1111仍需要改为虚拟机的ip
成功则会在浏览器中显示hello world

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值