nginx + uwsgi 배치 Django 의 모든 문 제 를 해결 합 니 다.

5166 단어
최근 여름 방학 에 쓴 작은 프로젝트 도 끝 난 셈 이다. 자신의 클 라 우 드 서버 에 투입 하려 고 했다. 포트 만 열 고 실행 하면 된다 고 생각 했 는데 Django 의 개발 모델 에 만 적용 되 고 단일 사용자 만 접근 할 수 있다 는 것 을 알 게 되 었 다. 그렇다면 웹 서버 를 배치 해 야 한다.나 는 nginx 를 사용 했다.
nginx?
왜 nginx 야?
우선 저 는 그것 이 작고 경량급 이 라 고 생각 합 니 다. 사용 이 간편 하고 apache 만큼 복잡 하지 않 으 며 인터넷 에서 nginx 배치 Django 를 추천 합 니 다.
설치 하 다.
리 눅 스 사용 자 는 소스 코드 설 치 를 추천 합 니 다. 명령 설치 가 타 오 바 오 2 차 개발 nginx 로 설 치 될 수 있 기 때문에 개인 적 으로 원본 을 추천 합 니 다.
uwsgi
왜 이 물건 이 더 필요 합 니까?
쉽게 말 하면 nginx 는 역방향 프 록 시 서버 에 속 하 는데 그 가 무슨 일 을 할 수 있 습 니까?하나의 포트 를 감청 할 수 있 습 니 다. 예 를 들 어 80 은 역방향 프 록 시 포트 를 설정 할 수 있 습 니 다. 예 를 들 어 8000 입 니 다. 그러면 모든 외부 사용자 가 80 포트 에 대한 방문 은 실제 적 으로 8000 포트 의 데 이 터 를 요 구 했 습 니 다. 다만 사용 자 는 8000 포트 와 실제 적 으로 교류 하 는 것 이 아니 라 80 개의 다 리 를 통 과 했 습 니 다.현재 자신 은 이렇게 하면 자신의 진실 한 포트 를 숨 길 수 있다 고 생각 하고 있 습 니 다. 여러분 은 어떤 고견 이 있 는 지 댓 글로 지적 해 주세요. 그렇다면 실제로는 단일 사용자 만 방문 할 수 있 기 때문에 여러 사용자 가 동시에 방문 할 수 있 는 도구 가 필요 하 다. 그러면 uwsgi 다.
WSGI 는 python 언어 를 정의 하 는 유 니 버 설 게 이 트 웨 이 인터페이스 로 python 웹 프레임 워 크 (django, flask, web. py 등) 와 웹 서버 (nginx, apache, lighttpd 등) 간 의 중간 층 을 담당 합 니 다.

                             chrome、firefox、ie 
      |
    web                      nginx、apache 
      |
                            CGI、FastCGI、WSGI 
      |
    Python(  、Web  )     Django、Flask、Tornado 

uWSGI 설치
uWSGI 는 C 언어 로 작 성 된 고성능 WSGI 서버 로, uWSGI 를 설치 하기 전에 Python 과 C 컴 파 일 러 (GCC) 를 설치 해 야 합 니 다.python 패키지 관리자 pip 를 사용 하여 uWSGI 를 설치 하 는 것 을 추천 합 니 다.
pip install uWSGI
uwsgi 설치 성공 여부 테스트
터미널 에 다음 명령 을 입력 하여 uwsgi 의 버 전 번 호 를 봅 니 다. 출력 이 정상 이면 uswgi 가 설치 되 었 음 을 설명 합 니 다.
$ uwsgi --version
2.0.11.1
프로필
우선 제 프로젝트 의 파일 상 태 를 보 여 드 리 겠 습 니 다.
FlyCold
├── FlyCold
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
├── manage.py
├── SchoolBuy
│   ├── admin.py
│   ├── forms.py
│   ├── __init__.py
│   ├── models.py
│   ├── urls.py
│   └── views.py
└── templates

설명 아래, 이것 은 간소 화 된 디 렉 터 리 트 리 입 니 다. 만 든 항목 의 이름 은 FlyCold 이 고, 생 성 된 FlyCold 하위 디 렉 터 리 와 SchoolBuy 응용 디 렉 터 리 (app 디 렉 터 리) 입 니 다.제 주요 코드 는 SchoolBuy 에 있 습 니 다. setting. py 는 Flycold 하위 디 렉 터 리 에 있 고 manager. py 는 FlyCold 루트 디 렉 터 리 에 있 습 니 다.setting. py 의 app 에 SchoolBuy 를 추가 해 야 합 니 다.
FlyCold 홈 디 렉 터 리 에 uwsgi 설정 파일 만 들 기:
# myweb_uwsgi.ini file
[uwsgi]

# Django-related settings

socket = :8080  #   ip:   
#       

# Django      (    )
chdir           = /home/lyt/FlyCold

# wsgi.py         
module          = FlyCold.wsgi

# process-related settings
# master
master          = true

#       
processes       = 4

# ... with appropriate permissions - may be needed
# chmod-socket    = 664
# clear environment on exit
vacuum          = true

uwsgi 로 프로젝트 를 시작 하 는 uwsgi 설정 파일: uwsgi -- ini * *. ini
설정 nginx
nginx. conf 를 찾 아 다음 내용 을 쓰 십시오.
    server {
        #           
        listen       80;
        server_name  localhost;

        charset UTF-8;
        #           
        access_log  /var/log/nginx/SchoolBuy_access.log;
        error_log   /var/log/nginx/SchoolBuy_error.log;


        client_max_body_size 75M;
        location / {
                include uwsgi_params;
                # uwsgi  
                uwsgi_pass 127.0.0.1:8080;  #               uwsgi       
                #      
                uwsgi_read_timeout 30;
        }
    }

이렇게 되면 nginx 를 다시 시작 하고 80 포트 에 접근 하면 효 과 를 볼 수 있 습 니 다.
이 글 은 두 편의 문장 에 전재 되 었 다
1.https://blog.csdn.net/baidu_35085676/article/details/77160040
2.https://blog.csdn.net/u011249248/article/details/51253212

좋은 웹페이지 즐겨찾기