nginx+uwsgi02---django部署

Posted bluefire-py

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx+uwsgi02---django部署相关的知识,希望对你有一定的参考价值。

1.文件结构

myweb/

├── manage.py

├── myweb/

│ ├── __init__.py

│ ├── settings.py

│ ├── urls.py

│ └── wsgi.py

└── myweb_uwsgi.ini

  在我们通过Django创建myweb项目时,在子目录myweb下已经帮我们生成的 wsgi.py文件。所以,我们只需要再创建myweb_uwsgi.ini配置文件即可,当然,uwsgi支持多种类型的配置文件,如xml,ini等。此处,使用ini类型的配置。

 

2.uwsgi.ini

# myweb_uwsgi.ini file
[uwsgi]
# Django-related settings
socket = :8000

# the base directory (full path)
chdir = /home/fnngj/pydj/myweb

# Django s wsgi file
module = myweb.wsgi

# 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

  这个配置,其实就相当于在上一小节中通过wsgi命令,后面跟一堆参数的方式,给文件化了。

  socket 指定项目执行的端口号。

  chdir 指定项目的目录。

  module myweb.wsgi ,可以这么来理解,对于myweb_uwsgi.ini文件来说,与它的平级的有一个myweb目录,这个目录下有一个wsgi.py文件。

 

 

 

3.nginx.conf

……
server {
listen 8099; 
server_name 127.0.0.1 
charset UTF-8;
access_log /var/log/nginx/myweb_access.log;
error_log /var/log/nginx/myweb_error.log;
client_max_body_size 75M;

location / { 
include uwsgi_params;
uwsgi_pass 127.0.0.1:8000;
uwsgi_read_timeout 2;
} 
location /static {
expires 30d;
autoindex on; 
add_header Cache-Control private;
alias /home/fnngj/pydj/myweb/static/;
}
}
……

     listen 指定的是nginx代理uwsgi对外的端口号。

  server_name 网上大多资料都是设置的一个网址(例,www.example.com),我这里如果设置成网址无法访问,所以,指定的到了本机默认ip。

  在进行配置的时候,我有个问题一直想不通。nginx到底是如何uwsgi产生关联。现在看来大概最主要的就是这两行配置。

  include uwsgi_params;

  uwsgi_pass 127.0.0.1:8000;

  include 必须指定为uwsgi_params;而uwsgi_pass指的本机IP的端口与myweb_uwsgi.ini配置文件中的必须一直。

以上是关于nginx+uwsgi02---django部署的主要内容,如果未能解决你的问题,请参考以下文章

Django + Uwsgi + Nginx 实现生产环境部署

使用uwsgi+nginx部署项目

Django + Uwsgi + Nginx 实现生产环境部署

Django + Uwsgi + Nginx 实现生产环境部署

nginx+uwsgi 和nginx+gunicorn区别、如何部署

Flaskflask+uwsgi+nginx环境部署