Ubuntu 14.04 + Django 1.7.1 + Nginx + uwsgi 배치 최 단 기록 (uwsgi 홈 페이지 튜 토리 얼 간소화)

Ubuntu 14.04 Python 2.7.6 Django 1.7.1 Virtualenv name: test Nginx uwsgi 가설 프로젝트 폴 더 는 / data / www / ts 설정 에 저 장 됩 니 다. / conf virtualenv name = test domain name = example. com
django + uwsgi 의 배치 가 너무 아파 요. 인터넷 에 있 는 튜 토리 얼 에 새로운 버 전의 호환성 문제 가 있 는 것 같 아 요.마지막 으로 uwsgi 홈 페이지 에서 찾 은 튜 토리 얼 이 드디어 뚫 렸 습 니 다. 그러나 홈 페이지 의 튜 토리 얼 은 교육 을 유도 하 는 성격 이 있 는 것 같 습 니 다. 배치 할 때 매우 복잡 해 보 입 니 다. 여기에 기록 하여 내용 을 간소화 합 니 다.
http://uwsgi-docs.readthedocs.org/en/latest/tutorials/Django_and_nginx.html
~ ~ 우선 uwsgi 가 필요 합 니 다.프로젝트 의 conf 폴 더 에 params 파일 을 넣 습 니 다.그 다음 에 가리 키 셔 야 합 니 다.홈 페이지 에서 자신 에 게 params 파일 을 쓰 는 것 은 불필요 하 다. 다른 예 에 서 는 모두 이 문장 으로 대체 된다. include uwsgiparams
ts 라 는 이름 만 들 기nginx. conf 파일 의 내용 은 다음 과 같 습 니 다.
설정 에서 sockets 를 내부 전송 으로 사용 하지 않 았 습 니 다. 테스트 가 성공 하지 못 했 기 때 문 입 니 다. 권한 문제 일 수도 있 습 니 다. 나중에 알 겠 습 니 다. location 에서 공식 적 으로 준 예 는 루트 옵션 이 없 지만 포트 를 80 으로 바 꾸 면 nginx 의 기본 첫 페이지 를 바 꿀 수 없습니다.
# ts_nginx.conf

# the upstream component nginx needs to connect to
upstream django {
    # server unix:///path/to/your/mysite/mysite.sock; # for a file socket
    server 127.0.0.1:8001; # for a web port socket (we'll use this first)
}

# configuration of the server
server {
    # the port your site will be served on
    listen 80;
    # the domain name it will serve for
    server_name .example.com; # substitute your machine's IP address or FQDN
    charset utf-8;

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

    # Django media
    location /media {
        alias /data/www/ts/media; # your Django project's media files - amend as required
    }

    location /static {
        alias /data/www/ts/static; # your Django project's static files - amend as required
    }

    # Finally, send all non-media requests to the Django server.
    location / {
        root /data/www/ts
        uwsgi_pass django;
        include uwsgi_params; # the uwsgi_params file you installed
    }
}

이 conf 파일 을 nginx 검색 디 렉 터 리 에 연결 합 니 다.
sudo ln -s /data/www/ts/conf/ts_nginx.conf /etc/nginx/sites-enabled/
sudo ln -s /data/www/ts/conf/ts_nginx.conf /etc/nginx/sites-available/

두 번 째 줄 은 제 가 넣 어야 될 것 같 아서...
선 결 조건: django 프로젝트 의 settings 에 static files 를 설정 해 야 합 니 다.
STATIC_ROOT = os.path.join(BASE_DIR, "static/")

and then run
python manage.py collectstatic

다음:
service nginx restart

보 실 수 있 을 거 예요.http://example.cn:8000/media/1.gif (정적 파일 을 미리 넣 었 습 니 다)
그 다음 blabla 절 차 는 모두 쓸데없는 말 이 었 습 니 다. (sockets 를 사용 하지 않 기 때문에) 여기까지 뛰 었 습 니 다.
Configuring uWSGI to run with a .ini file
ts_프로젝트 루트 디 렉 터 리
[uwsgi]
# Django-related settings
# the base directory (full path)
chdir = /data/www/ts
# Django's wsgi file
module = ts.wsgi
# the virtualenv (full path)
home = /root/.envs/test
# process-related settings
# master
master = true
# maximum number of worker processes
processes = 10
# the socket (use the full path to be safe
socket = 127.0.0.1:8001
# ... with appropriate permissions - may be needed
# chmod-socket = 664
# clear environment on exit
vacuum = true
# set an environment variable
env = DJANGO_SETTINGS_MODULE=conf.settings 
uwsgi --ini mysite_uwsgi.ini # the --ini option is used to specify a file

환경 변수 설정 env 는 conf 폴 더 에 init. py 가 있어 야 합 니 다. 그렇지 않 으 면 conf 는 module 로 여 겨 지지 않 습 니 다.
프로젝트 디 렉 터 리 에 있 는 같은 이름 의 app 디 렉 터 리 에 있 는 wgi. py 는 프로젝트 를 uwsgi 로 실행 할 settings 파일 을 지정 할 수 있 습 니 다. (주의!)

좋은 웹페이지 즐겨찾기