django+uwsgi+nginx部署

一、安装uwsgi
uwsgi是一个应用服务器,非静态文件的网络请求就必须通过他完成,他也可以充当静态文件服务器,但不是它的强项。

注意:uwsgi必须安装在系统级别的Python环境中,不要安装到虚拟环境中。
uwsgi是使用python编写的,执行下面命令安装。
conda install -c conda-forge uwsgi
conda install -c conda-forge libiconv

##下面先不执行
conda install -c https://conda.binstar.org/travis uwsgi

二、编写uwsgi配置文件
假设项目路径是:/home/yao/djtest11
在项目的路径下面,创建一个文件叫做uwsgi.ini的文件,然后填写以下代码:
[uwsgi]

chdir = /var/www/project

Django的wsgi文件

wsgi-file = project/wsgi.py
#如果django项目运行在某个虚拟环境下,指定 Python虚拟环境的路径
home = /root/anaconda3/envs/py36

进程相关的设置

主进程

Master = true

最大数量的工作进程

processes = 10

socket文件路径,绝对路径

socket = /var/www/project/project.sock

设置socket的权限

chmod-socket = 666

退出的时候是否清理环境

vacuum = true

然后使用命令看下是否还能启动这个项目。
uwsgi uwsgi.ini

Ctrl + C退出运行

重要:采用下面命令,让uwsgi在后台运行
uwsgi --ini uwsgi.ini --daemonize uwsgi.log

三、安装nginx
nginx是一个web服务器。用来加载静态文件和接收http请求的。
sudo apt install nginx

  1. nginx常用命令:
    • 启动nginx: nginx
    • 关闭nginx: nginx -s stop
  • 重启nginx: nginx -s reload
    四、编写nginx配置文件
    在/etc/nginx/conf.d目录下,新建一个文件,叫做project.conf,然后将以下代码粘贴进去。

upstream project {
server unix:///var/www/project/project.sock;
}

配置服务器

server {
# 监听的端口号
listen 80;
# 域名,根据情况修改
server_name 域名;
charset utf-8;

# 最大的文件上传尺寸
client_max_body_size 75M;

# 静态文件访问的url
location /static {
    # 静态文件地址
    alias /var/www/project/static;
}

# 最后,发送所有非静态文件请求到django服务器
location / {
    uwsgi_pass  project;
    # uwsgi_params文件地址
    include     /etc/nginx/uwsgi_params;
}

}
如果uwsgi是运行在root用户下,也需要修改nginx运行在root用户下
vi /etc/nginx/nginx.conf
###user nginx;
user root;

重启nginx:
service nginx restart

五、测试
http://域名

六、注意事项:
生产环境,要将django的DEBUG改为false
DEBUG = false

你可能感兴趣的:(服务器部署)