欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Ubuntu下flask Django项目部署

程序员文章站 2022-06-11 11:56:47
...

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