Nginx教程

快速部署Nginx+Uwsgi+Django环境

本文主要是介绍快速部署Nginx+Uwsgi+Django环境,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

环境

Centos7 + Python3

编译安装uwsgi

yum install gcc -y
cd  /usr/local/src/     # 上传源码包
tar xf uwsgi-2.0.18.tar.gz -C /usr/local/
cd  uwsgi-2.0.18
make
ln -s /usr/local/uwsgi-2.0.18/uwsgi  /usr/bin/uwsgi

使用uwsgi启动DrDoc(Django)

cd /data/soft/MrDoc/  # 切换到自己项目根目录
mkdir uwsgi_conf
cd uwsgi_conf
cat > uwsgi.ini << EOF
# uwsig使用配置文件启动
[uwsgi]
# 项目所在的根目录
chdir=/data/soft/MrDoc
# 指定项目的application,区别于启动命令--wsgi-filemysite/wsgi.py
module=MrDoc.wsgi:application
socket=127.0.0.1:10001
# 进程个数       
processes = 8
# 每个进程worker数
workers=5
procname-prefix-spaced=mywebapp                # uwsgi的进程名称前缀
py-autoreload=1                              # py文件修改,自动加载
# 指定IP端口,web访问入口
http=0.0.0.0:10000
# 指定多个静态文件:static目录和media目录,也可以不用指定该静态文件,在nginx中配置静态文件目录
for =static media
static-map=/static=%(chdir)/%(_)
endfor =
# 启动uwsgi的用户名和用户组
uid=root
gid=root
# 启用主进程
master=true
# 自动移除unix Socket和pid文件当服务停止的时候
vacuum=true
# 序列化接受的内容,如果可能的话
thunder-lock=true
# 启用线程
enable-threads=true
# 设置一个超时,用于中断那些超过服务器请求上限的额外请求
harakiri=30
# 设置缓冲
post-buffering=4096
# 设置日志目录
daemonize=%(chdir)/uwsgi_conf/uwsgi.log
# uWSGI进程号存放
pidfile=%(chdir)/uwsgi_conf/uwsgi.pid
#monitor uwsgi status  通过该端口可以监控 uwsgi 的负载情况
# 支持ip+port模式以及socket file模式
# stats=%(chdir)/uwsgi_conf/uwsgi.status 
stats = 127.0.0.1:10002
EOF
uwsgi --ini uwsgi.ini  # 启动,ls查看当前目录是否有pid文件
uwsgi --stop uwsgi.pid  # 关闭

配置nginx

nginx编译安装可参考https://bgcc.cc/Linux/11606/   也可yum安装
cd  /data/soft/nginx-1.16.1/conf   # 自己对应的nginx配置文件下
mkdir extra
vi nginx.conf  
http {
.....
include extra/*.conf;  # 在http模块下添加
}
cd extra
cat > wiki.conf << EOF
upstream wiki_app {
   # nginx通过socket在环回接口地址的10001端口与本地的uWSGI进程通信
   server 127.0.0.1:10001;
}
server {
    listen 80;
    server_name 192.168.4.210;
    access_log /data/logs/wiki_access.log;
    charset utf-8;
    gzip_types text/plain application/x-javascript text/css text/javascript application/x-httpd-php application/json text/json image/jpeg image/gif image/png application/octet-stream;
    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
    location / {
        # nginx转发动态请求到uWSGI
        include uwsgi_params;
        uwsgi_connect_timeout 20;
        uwsgi_pass wiki_app;
    }
    # 项目静态文件路径,对应自己的项目路径
    location /static {
        alias /data/soft/MrDoc/static;
    }
    # 项目媒体文件路径,对应自己的项目路径
    location /media {
        alias /data/soft/MrDoc/media;
    }
}
EOF
/data/soft/nginx-1.16.1/sbin/nginx -t
/data/soft/nginx-1.16.1/sbin/nginx -s reload

附件下载

nginx-1.16.1+uwsgi-2.0.18

这篇关于快速部署Nginx+Uwsgi+Django环境的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!