uwsgi協議的變數

nginx_web發表於2012-06-08

 

 

通過這些魔術變數,我們可以動態的調整和配置uWSGI伺服器各個方面,通過web伺服器(一般是uwsgi相容的客戶端,在這裡就是我們的Nginx伺服器)將指定的變數傳遞給uWSGI伺服器來實現,

 

例如( nginx下的配置)

 

location / {

    include uwsgi_params;

    uwsgi_param UWSGI_SCHEME https;

    uwsgi_pass 127.0.0.1:3031;

}

     

UWSGI_SCHEME

    能:設定urlscheme

    如:

 

uwsgi_param UWSGI_SCHEME https;

   

UWSGI_SCRIPT

    能:載入指定的指令碼,即應用程式的名稱,並將其作為一個新的應用對映到SCRIPT_NAME(顯然,應用程式將僅在首次訪問才被載入)

    如:

 

uwsgi_param UWSGI_SCRIPT werkzeug.testapp:test_app;

uwsgi_param SCRIPT_NAME  /testapp;

   

 

UWSGI_MODULE UWSGI_CALLABLE

    能:在SCRIPT_NAME中載入一個新的應用(作為module:callable定義)

    如:

 

uwsgi_param UWSGI_MODULE werkzeug.testapp;

uwsgi_param UWSGI_CALLABLE test_app;

uwsgi_param SCRIPT_NAME  /testapp;

   

UWSGI_PYHOME

    能:應用程式的主路徑,為動態應用設定Python virtualenv環境。

    如:

 

uwsgi_param UWSGI_PYHOME /Users/roberto/uwsgi/VENV1;

   

UWSGI_CHDIR

    能:切換後的應用程式路徑,在管理請求之前chdir()到指定的目錄。

    如:

 

uwsgi_param UWSGI_CHDIR /home/shell/workspace/hg;

   

UWSGI_FILE

    能:載入指定的檔案,將該檔案作為一個新的動態應用。

 

UWSGI_TOUCH_RELOAD

    能:當指定檔案的修改時間被改變時,從最後一個請求處理完成後將會重新載入uWSGI的堆疊。

    如:

location / {

    include uwsgi_params;

    uwsgi_param UWSGI_TOUCH_RELOAD /tmp/touchme.foo;

    uwsgi_pass /tmp/uwsgi.sock;

}

 

   

UWSGI_CACHE_GET

    能:檢測uWSGI快取查詢指定的key,如果找到,那麼將按照原始的http輸出,並且返回客戶端,如果沒有找到,那麼將按照正常的訪問繼續執行。

    如:

 

location / {

   include uwsgi_params;

   uwsgi_param UWSGI_CACHE_GET $request_uri;

   uwsgi_pass 127.0.0.1:3031;

}

   

UWSGI_SETENV

    能:為新的動態應用設定一個指定的環境變數(Python下可以通過為uWSGI伺服器新增--reload-os-env選項)。這種情況就是不使用wsgi檔案或模組而動態載入django應用。

    如:

 

location / {

    include uwsgi_params;

    uwsgi_param UWSGI_SCRIPT. django.core.handlers.wsgi:WSGIHandler();

    uwsgi_param UWSGI_CHDIR /mydjangoapp_path;

    uwsgi_param UWSGI_SETENV DJANGO_SETTINGS_MODULE=myapp.settings;

}

   

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27043155/viewspace-732225/,如需轉載,請註明出處,否則將追究法律責任。

相關文章