NFinx+FastCGI+Djangoはwindows上に配置及びnginx常用命令を配置します.

11045 ワード

通常のアプリケーションはlinuxシステムに配置されています.windowsには展開されません.emmm.だから興味があるのはご覧ください.
 
nginx作業原理:
静止ファイルを処理するために、ダイナミックな部分はfastcgi、scgiまたはuWSGIを経由してdjangoに渡します.
1.nginxをダウンロードして、行きますhttp://nginx.org/en/download.html ダウンロードして、私は1.17.6 stableバージョンをダウンロードしました.
2.プロファイル/conf/nginx.com nf
#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 D:/bomc_i;
            expires 30d;
            break;
        }

        location ~ ^/static/ {
            root D:/bomc_i;  #Django      ,    static   
            expires 30d;
            break;
        }

        location ~ ^/ {
            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 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

}
 
他は変更されていません.一番重要な部分はserver{}配置項目にFASTCGIの配置と静止ファイルの経路配置を追加することです.
注意:location~^/static/の位置を設定するには、必ずlocation~^/の前にあり、単純に使うことができません. location/static/ またはlocation/staticでなければ、staticフォルダの静的ファイルは全部ロードできません.
 
3.python flup(PythonのFastCGIセット)をインストールします.
pip install flup
4.nginxサーバを実行する
D:
ginx-1.17.6>start nginx
または
D:ging x-1.17.6>inx.exe
一番いいのは第一種類で、第二種類はあなたのcmdウィンドウをずっと実行中にして、Ctrl+Cも終了できません.cmdウィンドウを閉じても、プロセスマネージャを見ることができます.cmdウィンドウが閉じられていないので、プロセスは終了します.第二の方法を使用した場合、nginxプロセスを閉じる方法は、cmdを再開し、ストップコマンドを入力することです. inx.exe-s quitプロセスは終了しました.
5. FastCGIであなたのDjangoプロジェクトを実行します.
D:\bomc_i>python manage.py runfcgi method=threaded host=127.0.0.1 port=8051
6.Unknown command:‘runfcgi’エラーが発生した場合、これはdjangoバージョンのため、1.9及び1.9以上でrunfcgiコマンドをサポートしていません.もしrunfcgiを使うなら、djangoのバージョンを1.8に変更すればいいです.
7. ブラウザに入力http://localhost:8051アクセスできます
8.その他のwindowsにおけるnginx関連命令
停止:
D:
ginx-1.17.6>nginx.exe -s stop
または
D:
ginx-1.17.6>nginx.exe -s quit
ps:stopは急速にnginxを停止します.関連情報を保存していないかもしれません.quitは完全に規則的に停止し、関連情報を保存します.
新規読み込みNgix:
D:
ginx-1.17.6>nginx.exe -s reload
このコマンドは、設定情報の変更が必要な場合に使用します.
ログファイルを再開く:
D:
ginx-1.17.6>nginx.exe -s reopen
NFIxバージョンを表示します.
D:
ginx-1.17.6>nginx -v
 
参考:
https://www.cnblogs.com/kiddy/p/4530461.html
https://blog.csdn.net/weixin_33725272/articale/detail/91913165
https://blog.csdn.net/mcYang0929/article/details/90666299