windows 아래 nginx + FastCGI + Django 공략

Django 의 배 치 는 여러 가지 방식 이 있 을 수 있 습 니 다. nginx + uwsgi 방식 을 사용 하 는 것 은 그 중에서 흔히 볼 수 있 는 방식 입 니 다.
이러한 방식 에서 우리 의 일반적인 방법 은 nginx 를 서버 의 최 전방 으로 하고 WEB 의 모든 요청 을 받 아들 여 통일 적 으로 관리 하 는 것 입 니 다.nginx 는 모든 정적 요청 을 스스로 처리 합 니 다.그리고 NGINX 는 모든 비 정적 요청 을 uwsgi 를 통 해 Django 에 전달 하고 Django 가 처리 하여 WEB 요청 을 완료 합 니 다.이 를 통 해 알 수 있 듯 이 uwsgi 의 역할 은 브리지 와 유사 하 다.교량 의 역할 을 하 다.(NOTE: nginx 를 사용 하지 않 고 uwsgi + django 만 사용 해도 WEB 서 비 스 를 실현 할 수 있 습 니 다. uwsgi 도 WEB 요청 을 직접 처리 할 수 있 습 니 다.) 
   우선 컴퓨터 에 Python 과 Django 가 설치 되 어 있 는 지 확인 하 십시오. 그 다음 에 두 개의 구성 요소 가 필요 합 니 다. nginx 서버.    flup (Python 의 FastCGI 구성 요소)
   nginx 다운로드 주소:http://nginx.org/en/download.html
   flup 다운로드 주소:http://www.saddi.com/software/flup/dist/flup-1.0.2.tar.gz
   리 눅 스 와 달리 nginx 는 windows 에서 하나의 서비스 로 실행 되 는 것 이 아니 라 하나의 서비스 로 실행 되 는 것 입 니 다. (어쩐지 windows 서버 에서 nginx 를 사용 하 는 사람 이 없 더 라 니) 방금 다운로드 한 두 압축 패 키 지 를 모두 C: ginx \, C: \ flup \ (디 렉 터 리 는 스스로 선택 할 수 있 습 니 다. 여 기 는 프 리 젠 테 이 션 만 할 수 있 습 니 다) 그리고 python setup. py install 명령 으로 flup 을 설치 합 니 다.이어서 nginx 를 설정 해 야 합 니 다. C: ginx \ confginx. conf 를 엽 니 다. 제 프로필 은 다음 과 같 습 니 다. 필요 에 따라 스스로 수정 할 수 있 습 니 다.
[html] view plain copy print ?
#user  nobody;  
  • worker_processes  1;  
  • #error_log  logs/error.log;  

  • #error_log  logs/error.log  notice;  
  • #error_log  logs/error.log  info;  
  • #pid        logs/nginx.pid;  

  • events {  
  •    worker_connections  1024;  

  • }  
  • http {  

  •    include       mime.types;  
  •    default_type  application/octet-stream;  
  •    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '  

  •    #                  '$status $body_bytes_sent "$http_referer" '  
  •    #                  '"$http_user_agent" "$http_x_forwarded_for"';  
  •    #access_log  logs/access.log  main;  
  •    sendfile        on;  

  •    #tcp_nopush     on;  
       #keepalive_timeout  0;  
  •    keepalive_timeout  65;  
  •    #gzip  on;  
  •    server {  

  •        listen       80;  
  •        server_name  localhost;  
  •        #charset koi8-r;  
  •        #access_log  logs/host.access.log  main;  
  •        location / {  

  •            root   html;  
  •            index  index.html index.htm;  

  •        }  
           #error_page  404              /404.html;  
           # redirect server error pages to the static page /50x.html  
  •        #  

  •        error_page   500 502 503 504  /50x.html;  
  • location = /50x.html {  

  •            root   html;  
  •        }  
  •        # proxy the PHP scripts to Apache listening on 127.0.0.1:80  

  •        #  
  •        #location ~ \.php$ {  

  •        #    proxy_pass   http://127.0.0.1;  
  •        #}  
  •        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000  

  •        #  
  •        #location ~ \.php$ {  

  •        #    root           html;  
  •        #    fastcgi_pass   127.0.0.1:9000;  

  •        #    fastcgi_index  index.php;  
  •        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;  

  •        #    include        fastcgi_params;  
  •        #}  
  •        # deny access to .htaccess files, if Apache's document root  

  •        # concurs with nginx's one  
  •        #  

  •        #location ~ /\.ht {  
  •        #    deny  all;  

  •        #}  
           # 정적 자원 
  •        location ~* ^.+\.(html|jpg|jpeg|gif|png|ico|css|js)$  

  •        {  
  •            root e:/gin/gin/;  

  •            expires 30d;  
  •            break;  

  •        }  
           location ~ ^/static/ {  
  •            root e:/gin/gin/;  

  •            expires 30d;  
  •            break;  

  •        }  
           location ~ ^/ {  
  •            # fastcgi 호스트 와 포트 지정 

  •            fastcgi_pass 127.0.0.1:8051;  
  •            fastcgi_param PATH_INFO $fastcgi_script_name;  

  •            fastcgi_param REQUEST_METHOD $request_method;  
  •            fastcgi_param QUERY_STRING $query_string;  

  •            fastcgi_param CONTENT_TYPE $content_type;  
  •            fastcgi_param CONTENT_LENGTH $content_length;  

  •            fastcgi_param SERVER_PROTOCOL $server_protocol;  
  •            fastcgi_param SERVER_PORT $server_port;  

  •            fastcgi_param SERVER_NAME $server_name;  
  •            fastcgi_pass_header Authorization;  

  •            fastcgi_intercept_errors off;  
  •        }  

  •    }  
       # another virtual host using mix of IP-, name-, and port-based configuration  
  •    #  

  •    #server {  
  •    #    listen       8000;  

  •    #    listen       somename:8080;  
  •    #    server_name  somename  alias  another.alias;  
  •    #    location / {  

  •    #        root   html;  
  •    #        index  index.html index.htm;  

  •    #    }  
  •    #}  

  •    # HTTPS server  
  •    #  

  •    #server {  
  •    #    listen       443;  

  •    #    server_name  localhost;  
       #    ssl                  on;  
  •    #    ssl_certificate      cert.pem;  

  •    #    ssl_certificate_key  cert.key;  
       #    ssl_session_timeout  5m;  
       #    ssl_protocols  SSLv2 SSLv3 TLSv1;  
  •    #    ssl_ciphers  HIGH:!aNULL:!MD5;  

  •    #    ssl_prefer_server_ciphers   on;  
       #    location / {  
  •    #        root   html;  

  •    #        index  index.html index.htm;  
  •    #    }  

  •    #}  
    }  

  • 주의해 야 할 것 은 url rewrite 가 필요 없 는 디 렉 터 리, 예 를 들 어 css 와 그림 을 저장 하 는 디 렉 터 리 는 설정 파일 에 표시 해 야 합 니 다. 그렇지 않 으 면 이 파일 에 접근 할 수 없습니다.
    1
    2
    3
    4
    5
    
            location ~ ^/static/ {
                root e:/gin/gin/;
                expires 30d;
                break;
            }

  • 마지막 단 계 는 nginx 서버 를 실행 하고 FastCGI 로 Django 프로젝트 를 실행 하 는 것 입 니 다. nginx 디 렉 터 리 에 들 어 갑 니 다.
  •     cd c:
    ginx\ start nginx
  • 그리고 브 라 우 저 에 접근 합 니 다.http://loaclhost/ nginx 의 환영 화면 을 볼 수 있 을 것 입 니 다. 마지막 으로 Django 프로젝트 의 루트 디 렉 터 리 에 들 어간 다음 명령 으로 서버 를 실행 합 니 다.
  • 1
    
        python manage.py runfcgi method=threaded host=127.0.0.1 port=8051
  • localhost 페이지 를 새로 고치 면 프로젝트 홈 페이지 를 볼 수 있 습 니 다 ~ windwos 에서 nginx 작업 명령 을 추가 합 니 다 (공식 문서 에서)
  • nginx -s stop quick exitnginx -s quit graceful quitnginx -s reload changing configuration, starting a new worker, quitting an old worker gracefullynginx -s reopen reopening log files
    전재 초기:http://blog.csdn.net/yangchao228/article/details/7583868

    좋은 웹페이지 즐겨찾기