使用nginx+uwsgi部署django项目

Linux系统 2018-08-28 581

前提:如果你已经使用apache部署过了并且使用了80端口,请务必先将80端口修改。因为nginx默认也为80端口,安装途中会报错。

1.安装nginx+uwsgi

安装nginx:sudo apt-get install nginx

使用:ps aux|grep nginx 可以查看启动情况

安装uwsgi需要安装python虚拟环境, 自行百度,虚拟环境安装成功后,进入虚拟环境。
安装uwsgi:pip install uwsgi

测试uwsgi,uwsgi --http :8000 --module Mxoline.wsgi(名字千万不要写错)<----在python虚拟环境下,进入项目的根目录下,(在wsgi.py的上一层文件夹)

2.配置nginx文件

1.新建一个配置文件
mkdir conf新建一个conf文件夹
vim uc_nginx.conf
在uc_nginx.conf中插入
新建uc_nginx.conf

#the upstream component nginx needs to connect to
upstream django {
    server 127.0.0.1: 8000;
}
#configuration of the server

server {
    #the port your site will be served on
    listen 80;#the domain name it will servefor
    server_name 你的ip地址;#substitute your machine 's IP address or FQDN  
    charset utf - 8;

    #max upload size
    client_max_body_size 75 M;#adjust to taste

    # Django media
    location / media {
        alias 你的目录/Mxonline/media;#指向django的media目录
    }

    location / static {
        alias 你的目录/Mxonline/static;#指向django的static目录
    }

    # Finally, send all non - media requests to the Django server.
    location /{
        uwsgi_pass django;
        include uwsgi_params;#the uwsgi_params file you installed
    }
}

将该配置文件加入到nginx的启动配置文件中
sudo ln -s 你的目录/Mxonline/conf/nginx/uc_nginx.conf /etc/nginx/conf.d/
或者拷贝文件到/etc/nginx/conf.d/下.
3.迁移django的静态文件
在django的setting文件中,添加下面一行内容:

STATIC_ROOT = os.path.join(BASE_DIR, 'collectstatic/')  

运行命令
python manage.py collectstatic

4.配置uwsgi文件
新建uwsgi.ini 配置文件, 内容如下:

# mysite_uwsgi.ini file  
[uwsgi]  
# 项目路径  
chdir = /home/update_blog  
# 虚拟环境  
home = /home/py3env  
# 项目wsgi  
module = update_blog.wsgi.application  
# 主程序  
master = True  
# 设置进程数  
processes = 4  
# 超时时间  
harakiri = 60  
# 最大请求数  
max-requests = 5000

socket = 127.0.0.1:8001  
uid = 1000  
gid = 1000  

# 对主程序进行关闭或启动  
pidfile = /home/conf/master.pid  
daemonize = /home/conf/mysite.log  

vacuum = True  

 

保存
在uwsgi.ini所在目录下执行uwsgi --ini uwsgi.ini
成功
其他命令:
sudo nginx start #运行nginx
sudo nginx -s reload #重启nginx
后台运行nohup uwsgi --ini uwsgi.ini

查看后台uwsgi运行状态 ps -ef | grep uwsgi

重启uwsgi就是关闭它占有的端口
查询端口:lsof -i :你要查的端口
例如:

COMMAND  PID USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME  
uwsgi   2208   tu    4u  IPv4 0x53492abadb5c9659      0t0  TCP *:teradataordbms (LISTEN)  
uwsgi   2209   tu    4u  IPv4 0x53492abadb5c9659      0t0  TCP *:teradataordbms (LISTEN)  

这时根据 PID 可以用下面的命令 kill 掉相关程序:
sudo kill -9 2208 2209或者pkill -f uwsgi

标签:Linux系统

文章评论

评论列表

已有0条评论