Ubuntu下flask Django项目部署
Ubuntu下python框架 Django Flask 项目部署 使用nginx
一。下载安装 nginx
方法1:https://blog.csdn.net/b_evan/article/details/72858149
方法2:
1.去nginx管网
2.选择download
3.文档中找官网安装方式
4.下载认证**
wget http://nginx.org/keys/nginx_signing.key
会下载到当前目录下的nginx_signing.key文件中
5.安装
sudo apt-key add nginx_signing.key
6.配置源
切换到对应的文件,并编辑
vim /etc/apt/sources.list
加上源:
deb http://nginx.org/packages/ubuntu/ codename nginx
deb-src http://nginx.org/packages/ubuntu/ codename nginx
注意将codename替换成当前codename 16.04 对应为: xenial
保存退出
7.更新跟安装
apt-get update
apt-get install nginx
8.查看nginx服务是否开启
ps -ef | grep nginx
9.启动 sudo nginx
10.直接输入地址可以访问 即可…
**nginx使用 **
- sudo service nginx start 启动
- sudo service nginx stop 停止
- sudo service nginx restart 重启
- sudo nginx -c ‘配置文件’ #以配置文件中设置启动服务器
安装uwsgi pip install uwsgi
二。部署到服务器
Django配置与Flask配置相差不大
flask
一,在项目下新建uwsgi配置文件。格式可以是.ini。将配置写入保存
[uwsgi]
#外部访问地址,可以指定多种协议,现在用http便于调试,之后用socket
socket = 0.0.0.0:8000 # uwsgi的监听端口
#指向项目目录
chdir = /home/xlg/blog/
flask启动程序文件
wsgi-file = manage.py #flask在manage.py文件中的app名
callable = app
plugins = python
#这行一定要加上,不然请求时会出现-- unavailable modifier requested: 0 --错误提示
#处理器数
processes = 1
#线程数
threads = 2
二,新建nginx启动设置文件。后缀.conf。可命名为nginxflask.conf将配置写入保存
user root;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
#include /etc/nginx/conf.d/*.conf;
server{
listen 80; # 服务器监听端口
server_name 10.31.160.242; # 这里写你的域名或者公网IP
location / {
uwsgi_pass 127.0.0.1:5000;
# 转发端口,需要和uwsgi配置当中的监听端口一致
include /etc/nginx/uwsgi_params; # 导入uwsgi配置
#uwsgi_param UWSGI_PYTHON /home/自己创建的目录/venv;
# Python解释器所在的路径(这里为虚拟环境)
uwsgi_param UWSGI_PYTHON /home/fengyun/.local/virtualenvs/python3.5/bin;
uwsgi_param UWSGI_CHDIR /home/fengyun/Desktop/nginxProject/blog;
# 自己创建的目录 项目根目录
uwsgi_param UWSGI_SCRIPT manage:app; # 指定启动程序
#比如你测试用test.py文件,文件中app = Flask(name),那么这里就填 test:app
}
}
}
三,停止当前运行nginx sudo service nginx stop
如果不能停止。可用 ps -ef | grep nginx查看进程号 然后使用 kill 进程号杀死进程
四,使用个人配置的启动nginx 服务器
sudo nginx -c ~/Desktop/nginxconf/nginxFlask.conf
五,在项目目录下使用虚拟环境启动uwsgi
一般都会成功
Django与flask一样
nginxdjango.conf文件
user root;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
#include /etc/nginx/conf.d/*.conf;
server {
listen 80;
server_name 10.31.160.242 ;
charset utf-8;
root /var/project;
index hello.html;
location / {
include /etc/nginx/uwsgi_params;
uwsgi_pass 127.0.0.1:8010;
}
location /static{
alias /var/project/axf1805/static;
}
}
}
uwsgi.ini文件
[uwsgi]
#使用nginx连接时 使用
socket=127.0.0.1:8010
#直接作为web服务器使用
;http=127.0.0.1:8010
#配置工程目录
chdir=/var/project/axffengyun
#配置项目的wsgi目录。相对于工程目录
wsgi-file=axffengyun/wsgi.py
#配置进程,线程信息
processes=4
threads=2
enable-threads=True
master=True
pidfile=uwsgi.pid
daemonize=uwsgi.log
上一篇: LogStash 导入 oracle(mysql)数据
下一篇: Flask项目部署