nginx django uwsgi配置记录

1. 配置python环境,MySQL,安装依赖

pip install django sklearn pandas rdkit-pypi mysqlclient uwsgi

2. 安装nginx

在nginx下载,编译

tar xvf nginx-1.21.3.tar.gz
cd nginx-1.21.3/
./configure # 默认安装路径/usr/local/nginx
make
make install

3. 配置nginx,启动

nginx配置文件详解,可以参考这篇文章 万字总结,体系化带你全面认识 Nginx!

/usr/local/nginx/sbin/nginx # 启动nginx
/usr/local/nginx/sbin/nginx -s stop # 停止nginx
/usr/local/nginx/sbin/nginx -s reload # 重新加载nginx配置文件,适合生产环境

4. uwsgi.ini配置文件

# uwsig使用配置文件启动
[uwsgi]
# 项目所在的根目录
chdir=/some
# 指定项目的application,区别于启动命令--wsgi-filemysite/wsgi.py
module=mysite.wsgi:application
#the local unix socket file than commnuincate to Nginx
# 指定sock的文件路径,这个sock文件会在nginx的uwsgi_pass配置,用来nginx与uwsgi通信       
# 支持ip+port模式以及socket file模式,这里没用到
#socket=%(chdir)/uwsgi_conf/uwsgi.sock
socket=127.0.0.1:9001
# 进程个数       
processes = 8
# 每个进程worker数
workers=5
procname-prefix-spaced=mywebapp                # uwsgi的进程名称前缀
py-autoreload=1                              # py文件修改,自动加载

# 指定IP端口,web访问入口
http=0.0.0.0:9000

# 指定多个静态文件:static目录和media目录,也可以不用指定该静态文件,在nginx中配置静态文件目录
# uwsgi有自己的配置语法,详细可参考官网,无需写绝对路径,可以用循环、判断等高级配置语法
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:9001

5. nginx配置文件

这篇博客介绍的不错,基于Centos+uWSGI+Nginx部署Django项目(过程非常详细)_pysense的博客-CSDN博客

server {

    listen 9090;# 监听uwsgi的端口
    server_name 192.168.100.5;# 这里写什么都无所谓
    
    access_log /var/log/nginx/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 blog_app;
    }
    
    # 如果写成/static/,nginx无法找到项目静态文件路径
    location /static {
        alias /opt/mywebapp/static;
    }
    
    # 如果写成/media/,nginx无法找到项目媒体文件路径
    location /media {
        alias /opt/mywebapp/media;
    }
}

你可能感兴趣的:(nginx django uwsgi配置记录)