环境
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