The best Django Nginx + uwsgi Installation and Configuration Tutorial In 2024, In this tutorial you can learn Installed base Development Kit,Installation uwsgi,Install Django,Install Nginx,uwsgi Configuration,Nginx configuration,
In the previous section we use python manage.py runserver to run the server. This applies only to the test environment.
Official release service, we need a stable and continuous server, such as apache, Nginx, lighttpd, etc. This will be Nginx example.
Centos installed as follows:
yum groupinstall "Development tools" yum install zlib-devel bzip2-devel pcre-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel
CentOS comes with Python 2.4.3, but we can install Python2.7.5:
cd ~ wget http://python.org/ftp/python/2.7.5/Python-2.7.5.tar.bz2 tar xvf Python-2.7.5.tar.bz2 cd Python-2.7.5 ./configure --prefix=/usr/local make && make altinstall
easy_install package https://pypi.python.org/pypi/distribute
installation steps:
cd ~ wget https://pypi.python.org/packages/source/d/distribute/distribute-0.6.49.tar.gz tar xf distribute-0.6.49.tar.gz cd distribute-0.6.49 python2.7 setup.py install easy_install --version
pip package: https://pypi.python.org/pypi/pip
Benefit is that you can install pip pip list, pip uninstall Python package management, easy_install does not have this feature, only uninstall
uwsgi: https://pypi.python.org/pypi/uWSGI
uwsgi arguments detailed: http://uwsgi-docs.readthedocs.org/en/latest/Options
pip install uwsgi uwsgi --version #查看 uwsgi 版本
Uwsgi test is normal:
New test.py file, as follows:
def application(env, start_response): start_response('200 OK', [('Content-Type','text/html')]) return "Hello World"
Then running in a terminal:
uwsgi --http :8001 --wsgi-file test.py
Enter in the browser: http: //127.0.0.1: 8001, to see if there is "Hello World" output, if there is no output, please check your installation process.
pip install django
Django test is normal, run:
django-admin.py startproject demosite cd demosite python2.7 manage.py runserver 0.0.0.0:8002
Enter in the browser: http: //127.0.0.1: 8002, check django is operating properly.
Install command as follows:
cd ~ wget http://nginx.org/download/nginx-1.5.6.tar.gz tar xf nginx-1.5.6.tar.gz cd nginx-1.5.6 ./configure --prefix=/usr/local/nginx-1.5.6 \ --with-http_stub_status_module \ --with-http_gzip_static_module make && make install
You can read Nginx installation configuration to learn more.
uwsgi supports a variety of configurations ini, xml, etc. In this paper, ini, for example, under the new uwsgi9090.ini / ect / directory, add the following configuration:
[uwsgi] socket = 127.0.0.1:9090 master = true //主进程 vhost = true //多站模式 no-site = true //多站模式时不设置入口模块和文件 workers = 2 //子进程数 reload-mercy = 10 vacuum = true //退出、重启时清理文件 max-requests = 1000 limit-as = 512 buffer-size = 30000 pidfile = /var/run/uwsgi9090.pid //pid文件,用于下面的脚本启动、停止该进程 daemonize = /website/uwsgi9090.log
Found nginx installation directory (eg: / usr / local / nginx /), open conf / nginx.conf file, modify the server configuration:
server { listen 80; server_name localhost; location / { include uwsgi_params; uwsgi_pass 127.0.0.1:9090; //必须和uwsgi中的设置一致 uwsgi_param UWSGI_SCRIPT demosite.wsgi; //入口文件,即wsgi.py相对于项目根目录的位置,“.”相当于一层目录 uwsgi_param UWSGI_CHDIR /demosite; //项目根目录 index index index.htm; client_max_body_size 35m; } }
You can read Nginx installation configuration to learn more.
After setting, running in a terminal:
uwsgi --ini /etc/uwsgi9090.ini & /usr/local/nginx/sbin/nginx
Enter in the browser: http: //127.0.0.1, you can see the django "It work" up.