Nginx+uwsgi部署Django项目

用户请求处理流程

对于用户来讲只要访问Nginx监听的端口就可以拿到网站返回结果

用户请求 --> Nginx接受请求--> uwsgi处理 --> 进入项目后根据视图匹配处理返回数据

Django设置相关

必须关闭settings的debug模式。
默认开启的debug静态文件会被django处理,关闭之后静态文件会被Nginx处理

nginx.conf配置

在http中增加下列server配置

    server {
        listen       80;        # nginx  监听的外部端口,影响用户访问
        server_name  www.atey.ink;   # 设置域名

        #charset koi8-r;

        #access_log  logs/host.access.log  main;
        # 这里是用户访问网站的根路径设置,设置连接本地uwsgi
        location / {
                 include uwsgi_params;        
             uwsgi_pass 127.0.0.1:8000;      # 这里写uwsgi 监听的地址和端口
             uwsgi_read_timeout 2;
        }
        # 这里配置静态目录的路径,指向django中的静态目录
        location /static/ {
            alias /opt/GldslyWeb/static/;
     }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

uwsgi.ini配置

如果启动uwsgi出现不知道的错误,尝试删除下面例子的汉字

随便建立任意后缀为ini的文件,任意位置都行,随便放哪,建议放项目根目录下,方便以后能看见

# Django-related settings
[uwsgi]

socket = :8000    #  监听本地8000端口,可以设置具体的ip,注意一定是socket协议,不是http

# the base directory (full path)
chdir           = /opt/GldslyWeb        # 指向项目根目录位置

# Django s wsgi file
module          = GldslyWeb.wsgi    # 项目文件名.wsgi     wsgi指的就是项目中的wsgi.py

# process-related settings
# master
master          = true

# maximum number of worker processes
processes       = 4

# ... with appropriate permissions - may be needed
# chmod-socket    = 664
# clear environment on exit
vacuum          = true

启动命令

nginx直接启动就好了没什么好说的,如果是独立的配置文件,可以使用参数指定配置文件位置

# 编译版本启动
 nginx -s start

uwsgi后台启动,uwsgi需要使用pip安装

nohup /opt/python3/bin/uwsgi --ini uwsgi.ini &

你可能感兴趣的:(Nginx+uwsgi部署Django项目)