Ubuntu + Nginx + Flask + Gunicore环境搭建
工作前的准备python3 + virtualenv(本地)
虚拟环境好处多多
1、apt-get升级
sudo apt-get update
2、安装python3,python3命令进入命令行
sudo apt-get install python3
3、安装pip3
apt-get install python3-pip
4、创建虚拟环境,命令如下:
sudo pip3 install virtualenv #安装虚拟环境
5、安装虚拟环境扩展包,并且创建虚拟环境
sudo pip3 install virtualenvwrapper #安装虚拟环境包装器的目的是使用更加简单的命令来管理虚拟环境。
修改家目录下的配置文件.bashrc
cd ~.bashrc
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
source .bashrc # 配置命令生效
mkvirtualenv -p python3 虚拟环境名称
所有的虚拟环境,都位于/home/python/下的隐藏目录.virtualenvs下
deactivate # 退出环境
workon 虚拟环境名称
删除虚拟环境的命令如下:
rmvirtualenv 虚拟环境名称
例:
先退出:deactivate
再删除:rmvirtualenv py_django
6、Ubuntu + Nginx + Flask + Gunicore环境搭建(服务器)
现在我们手里有一个准备发布的项目,那么如何将他上传到你的服务器,并让外网访问呢?
安装:
- 安装Flask pip3 install flask
- 安装UWSGI pip3 install uwsgi
- 安装了Nginx sodu apt-get install nginx
- 安装了Gunicorn pip3 install gunicorn
目录准备:
首先在你的/var/www/目录下创建一个测试目录,比如==/var/www# mkdir test==
然后使用chmod更改此目录的权限chmod 777 /var/www/test
这里讲一下chmod的规则,因为这里是测试用例,所以为了方便,直接使用777。
你好!
Ngnix
Ubuntu下的Nginx的目录结构大致如下:
- 所有的配置文件都在/etc/nginx下,每个虚拟主机已经安排在了==/etc/nginx/sites-available==目录下
- 启动程序文件在==/usr/sbin/nginx==
- 日志文件放在了/var/log/nginx中,分别是access.log和error.log
- 在==/etc/init.d/==下创建了启动脚本nginx
- 默认的虚拟主机的目录设置在了==/usr/share/nginx/www==
启动服务:/etc/init.d/nginx start,重启服务:/etc/init.d/nginx restart
现在,我们需要进入到Nginx的配置中,改动配置文件。vim /etc/nginx/site-avalidable/default
不要去改动默认的 nginx.conf 只需要将 /etc/nginx/sites-available/default文件替换掉就可以了。
新建一个 default 文件:
server {
# 监听80端口
listen 80;
# 本机
server_name localhost;
# 默认请求的url
location / {
#请求转发到gunicorn服务器
proxy_pass http://127.0.0.1:5001;
#设置请求头,并将头信息传递给服务器端
proxy_set_header Host $host;
}
}
将default配置文件替换掉就大功告成了!
还有,更改配置还需要记得重启一下nginx:
sudo service nginx restart
Gunicorn
我传入了一个简单的用来测试的Python文件wsgi.py ,使用命令/var/www/myflask# vim wsgi.py预览。
直接运行:
gunicorn -w 4 -b 127.0.0.1:8000 wsgi:app
直接运行,默认启动的127.0.0.1::8000
gunicorn 运行文件名称:Flask程序实例名
指定进程和端口号: -w: 表示进程(worker)。 -b:表示绑定ip地址和端口号(bind)。
$gunicorn -w 4 -b 127.0.0.1:5001运行文件名称:Flask程序实例名