nginx+uwsgi+django 환경 구축 방법 절차

4593 단어 nginxuwsgidjango
환경 구축
1.uwsgi,nginx,django 설치

apt install nginx
pip install uwsgi
pip install django
2.uwsgi 와 nginx 의 연결 테스트
PS:아래 의 예 는 유 닉 스 socket 링크 로 보 냅 니 다.
파일 만 들 기 foobar.py

def application(env, start_response):
  start_response('200 OK', [('Content-Type','text/html')])
  return [b"Hello World"] # python3
  #return ["Hello World"] # python2
파일 만 들 기 foobaruwsgi.ini

[uwsgi]

# Django-related settings
# the base directory (full path)
chdir      = /home/dmd/project/ENV/mysite
# Django's wsgi file
module     = foobar

# process-related settings
# master
master     = true
# maximum number of worker processes
processes    = 10
# the socket (use the full path to be safe
socket     = /home/dmd/project/ENV/mysite/foobar.sock
# ... with appropriate permissions - may be needed
# chmod-socket  = 664
# clear environment on exit
#        true,      socket,     nginx     ,    false
vacuum     = false

파일 만 들 기 foobarnginx.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 unix:///home/dmd/project/ENV/mysite/foobar.sock; #  unix socket
    # uwsgi_pass 127.0.0.1:8000 #  TCP socket
    uwsgi_read_timeout 2;
  }
 }

이 파일 을/etc/nginx/sites-enabled 에 연결 하면 nginx 에서 볼 수 있 습 니 다.

sudo ln -s ~/path/to/your/mysite/mysite_nginx.conf /etc/nginx/sites-enabled/
시작 nginx

sudo service nginx start
시작

uwsgi --ini foobar_uwsgi.ini
127.0.0.1:8099 를 방문 하면'Hello World'가 나타 나 면 다음 연결 스 택 이 성공 적 이라는 것 을 설명 합 니 다.the web client <-> the web server <-> the socket <-> uWSGI <-> Python3.전체 연결 스 택 만 들 기the web client <-> the web server <-> the socket <-> uwsgi <-> Djangodjango 프로젝트 만 들 기

django-admin startproject mysite
프로젝트 의 루트 디 렉 터 리 에 mysite 만 들 기uwsgi.ini

# myweb_uwsgi.ini file
[uwsgi]

# Django-related settings

socket = mysite.sock

# the base directory (full path)
chdir      = /home/dmd/project/ENV/mysite

# Django s wsgi file
module     = mysite.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     = false

프로젝트 루트 디 렉 터 리 에 mysite 만 들 기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 unix:///home/dmd/project/ENV/mysite/mysite.sock; #  unix socket
    # uwsgi_pass 127.0.0.1:8000 #  TCP socket
    uwsgi_read_timeout 2;
  }
  location /static {
    expires 30d;
    autoindex on;
    add_header Cache-Control private;
    alias /home/dmd/project/ENV/mysite/static/;
   }
 }

링크sudo ln -s ~/path/to/your/mysite/mysite_nginx.conf /etc/nginx/sites-enabled/운행 하 다.

#   uwsgi
uwsgi --ini mysite_uwsgi.ini
#   niginx
sudo service nginx start
테스트127.0.0.1:8099 를 방문 하여 django 페이지 를 보면 성공 을 설명 합 니 다.
전체 디 렉 터 리 트 리

mysite/
├── db.sqlite3
├── manage.py
├── mysite
│  ├── __init__.py
│  ├── __pycache__
│  │  ├── __init__.cpython-36.pyc
│  │  ├── settings.cpython-36.pyc
│  │  ├── urls.cpython-36.pyc
│  │  └── wsgi.cpython-36.pyc
│  ├── settings.py
│  ├── urls.py
│  └── wsgi.py
├── mysite.sock
├── mysite_nginx.conf
├── mysite_uwsgi.ini
└── uwsgi_params
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기