Home > Backend Development > Python Tutorial > Introduction to deployment examples of Ubuntu14.04

Introduction to deployment examples of Ubuntu14.04

零下一度
Release: 2017-07-23 13:37:10
Original
1454 people have browsed it

first step.

sudo apt-get update

sudo apt-get upgrade

Update first. .

The mainstream deployment method of Django: nginx+uwsgi+django

The second step is to install nginx

sudo apt-get install nginx

Install nginx, If you need to install the latest nginx, you need to download the source code package from the official website and compile it manually.

The approximate file structure of nginx.

1. Configuration file: /etc/nginx

2. Program: /usr/sbin/nginx

3. Log: /var/log/nginx/access. log - error.log

The third step, install uwsgi

sudo apt-get install python3-dev

sudo apt-get install python3- pip

sudo pip3 install uwsgi (Before this step, you can change the pip source to improve the download speed. Create pip.conf under ~/.pip and write

[global]

trusted-host = pypi.douban.com

index-url = )

uwsgi is a web server that implements the WSGI protocol, uwsgi, http Waiting for agreement. The function of HttpUwsgiModule in Nginx is to exchange with uWSGI server.

The general process is: Client<==>nginx<==>uwsgi<==>Django. Static requests are handled by Nginx itself. Non-static requests are passed to Django through uwsgi, which is processed by Django to complete a WEB request.

Create a Django test project, django-admin startproject mysite, cd mysite, python manage.py startapp demo1.

The fourth step is to test uwsgi

Create a new test file in the mysite directory, nano test.py.

Write:

def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')])return ["Hello World"]
Copy after login

Run:

uwsgi --http :8001 --plugin python --wsgi-file test.py
Copy after login

Access is normal.

The fifth step is to test that Django

python manage.py runserver 0.0.0.0:8002
Copy after login

has normal access.

Connect Django and uwsgi.

uwsgi --http:8001 --plugin python --module mysite.wsgi
Copy after login

Access is normal.

The sixth step is to configure uwsgi

uwsgi supports starting through a variety of configuration files. The ini configuration file method is used here.

New uwsgi: nano uwsgi.ini

# mysite_uwsgi.ini file[uwsgi]

    socket = 127.0.0.1:3400# Django-related settings
    # the django project directory (full path)
    chdir           = /home/ubuntu/mysite
    # Django's wsgi filemodule          = mysite.wsgi

    # process-related settings
    # master
    master          = true# maximum number of worker processes
    processes       = 2threads = 2max-requests = 6000# ... with appropriate permissions - may be neededchmod-socket    = 664# clear environment on exit
    vacuum          = true
Copy after login

An error occurred when accessing, invalid request block <span class="hljs-built_in">size: <span class="hljs-number">21573 (<span class="hljs-built_in">max <span class="hljs-number">4096)...skip</span></span></span></span>.

The reason is that the url address exceeds 4096 characters. The reason is that we use socket to start. Just change the socket in the configuration file to http, or modify the buffer-size.

(It is recommended not to make any changes, just change it to http during testing, and change it back to socket when connecting to nginx)

daemonize = /home/ubuntu/mysite/uwsgi.log
Copy after login

Replace this code when it is officially run Add it to the uwsgi.ini file, and the access log will be output to uwsgi.log in the background

At this time, Django can already access it.

Step 7, configure nginx

Modify nginx’s default configuration file/etc/nginx/sites-enabled/default

server {
    # the port your site will be served on
    listen      80;
    # the domain name it will serve forserver_name 127.0.0.1; # substitute your machine's IP address or FQDNcharset     utf-8;

    # max upload size
    client_max_body_size 75M;   # adjust to taste

    # Django media
    location /media  {
        alias /home/ubuntu/mysite/media;  # your Django project's media files - amend as required    }

    location /static {
        alias /home/ubuntu/mysite/static; # your Django project's static files - amend as required    }

    # Finally, send all non-media requests to the Django server.
    location / {
        include     uwsgi_params; # the uwsgi_params file you installed
        uwsgi_pass 127.0.0.1:8001;#此处跟uwsgi配置文件保持一致
    }
}
Copy after login

Remember to modify the uwsgi.ini configuration during testing.

Step 8, run

Restart nginx, run uwsgi.

Done

This is it for the time being, we will continue to add knowledge about nginx, django, and uwsgi in the future .

Most of the configurations come from Baidu search, so I won’t post each source one by one. Life is too short.

The above is the detailed content of Introduction to deployment examples of Ubuntu14.04. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template