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使用 **

  1. sudo service nginx start 启动
  2. sudo service nginx stop 停止
  3. sudo service nginx restart 重启
  4. 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

猜你喜欢

转载自blog.csdn.net/dandanfengyun/article/details/83151873