部署上线uwsgi+nginx+django
1. uwsgi
1.1 安装
pip3 install uwsgi
1.2 uwsgi配置文件
- vim uwsgi.ini
# uwsig使用配置文件启动
[uwsgi]
# 项目目录
chdir=/项目路径(DJANGO的)
# 指定项目的application
module=CMDB.wsgi:application
# 指定sock的文件路径
socket=/xx/django_uwsgi.sock
# 进程个数
workers=5
pidfile=/xx/uwsgi.pid
# 指定IP端口
http=0.0.0.0:199
# 指定静态文件
static-map=/static=/代码路径/项目/静态文件路径
# 启动uwsgi的用户名和用户组
uid=root
gid=root
# 启用主进程
master=true
# 自动移除unix Socket和pid文件当服务停止的时候
vacuum=true
# 序列化接受的内容,如果可能的话
thunder-lock=true
# 启用线程
enable-threads=true
# 设置自中断时间
harakiri=30
# 设置缓冲
post-buffering=4096
# 设置日志目录
daemonize=/log/django_uwsgi.log
1.3 启动uwsgi
uwsgi --ini uwsgi.ini
2. nginx
yum install -y nginx
vim /etc/nginx/nginx.conf
## 如下:
-----------
server {
listen 8080;
server_name ip;
index index.php index.html;
location / {
include uwsgi_params;
uwsgi_pass unix:/xx/django_uwsgi.sock;
uwsgi_param UWSGI_CHDIR /xx;
uwsgi_param UWSGI_SCRIPT django_wsgi;
access_log /etc/nginx/logs/access.log;
}
location /static { # 最后 location /static 关系到 代理后 静态文件的问题
alias /xx/arya/static;
}
}
nginx.conf
--------------
3. django
pip3 install django
# 之后代码下载下来,放入对应目录即可
# 启动nginx, proxy_pass unix (uwsgi的socket)
# 和 php-fpm类似 也可以通过ip port 方式
server {
listen 8080;
server_name 47.93.86.201;
index index.php index.html;
location / {
include uwsgi_params;
#uwsgi_pass 47.93.86.201:199;
uwsgi_pass unix:/mnt/www/django_uwsgi.sock;
uwsgi_param UWSGI_CHDIR /mnt/www/cmdb/CMDB;
uwsgi_param UWSGI_SCRIPT django_wsgi;
access_log /etc/nginx/logs/access.log;
}
location /static {
alias /mnt/www/cmdb/CMDB/arya/static;
}#location ~ .*\.(js|css|gif)$ {# proxy_pass http://127.0.0.1:8080/static;#}
}