ngx_http_uwsgi_module
ngx_http_uwsgi_module λͺ¨λμ ν΅ν΄ uwsgi μλ²μ μμ²μ μ λ¬ν μ μμ΅λλ€.
μμ ꡬμ±
location / {
include uwsgi_params;
uwsgi_pass localhost:9000;
}
Directives
Syntax: uwsgi_bind address [transparent] | off;
Default: β
Context: http, server, location
uwsgi μλ²λ‘ λκ°λ μ°κ²°μ΄ ν¬νΈ μ΅μ μ΄ μλ λ‘컬 IP μ£Όμμμ μμλλλ‘ ν©λλ€(1.11.2). λ§€κ°λ³μ κ°μλ λ³μ(1.3.12)κ° ν¬ν¨λ μ μμ΅λλ€. νΉμ κ° off(1.3.12)λ μ΄μ κ΅¬μ± μμ€μμ μμλ uwsgi_bind λͺ λ Ήμ ν¨κ³Όλ₯Ό μ·¨μνκ³ μ΄λ₯Ό ν΅ν΄ μμ€ν μ λ‘컬 IP μ£Όμ λ° ν¬νΈλ₯Ό μλ ν λΉν μ μμ΅λλ€.
transparent λ§€κ°λ³μ(1.11.0)λ₯Ό ν΅ν΄ uwsgi μλ²λ‘ λκ°λ μ°κ²°μ λΉλ‘컬 IP μ£Όμ, μλ₯Ό λ€μ΄ ν΄λΌμ΄μΈνΈμ μ€μ IP μ£Όμμμ μμλλλ‘ ν©λλ€.
uwsgi_bind $remote_addr transparent;
μ΄ λ§€κ°λ³μκ° μλνκΈ° μν΄μλ μΌλ°μ μΌλ‘ μνΌ μ¬μ©μ κΆνμΌλ‘ nginx μμ μ νλ‘μΈμ€λ₯Ό μ€νν΄μΌ ν©λλ€. Linuxμμ μ΄κ²μ transparent λ§€κ°λ³μκ° μ§μ λ κ²μ²λΌ νμκ° μλκ³ (1.13.8) μμ μ νλ‘μΈμ€λ λ§μ€ν° νλ‘μΈμ€μμ CAP_NET_RAW κΈ°λ₯μ μμν©λλ€. uwsgi μλ²μμ λ€νΈμν¬ νΈλν½μ κ°λ‘μ±λλ‘ μ»€λ λΌμ°ν ν μ΄λΈλ ꡬμ±ν΄μΌ ν©λλ€.
Syntax: uwsgi_buffer_size size;
Default: uwsgi_buffer_size 4k|8k;
Context: http, server, location
uwsgi μλ²μμ λ°μ μλ΅μ 첫 λΆλΆμ μ½λ λ° μ¬μ©λλ λ²νΌλ₯Ό μ€μ ν©λλ€. μ΄ λΆλΆμ μΌλ°μ μΌλ‘ μμ μλ΅ ν€λλ₯Ό ν¬ν¨ν©uwsgi μλ²μμ μμ ν μλ΅μ 첫 λ²μ§Έ λΆλΆμ μ½λ λ° μ¬μ©λλ λ²νΌμ ν¬κΈ°λ₯Ό μ€μ ν©λλ€. μ΄ λΆλΆμλ μΌλ°μ μΌλ‘ μμ μλ΅ ν€λκ° ν¬ν¨λ©λλ€. κΈ°λ³Έμ μΌλ‘ λ²νΌ ν¬κΈ°λ λ©λͺ¨λ¦¬ νμ΄μ§ 1κ°μ κ°μ΅λλ€. νλ«νΌμ λ°λΌ 4K λλ 8Kκ° λ©λλ€. νμ§λ§ ν¬κΈ°λ λ μ€μΌ μ μμ΅λλ€.
Syntax: uwsgi_buffering on | off;
Default: uwsgi_buffering on;
Context: http, server, location
uwsgi μλ²μμ μλ΅μ λ²νΌλ§μ νμ±ννκ±°λ λΉνμ±νν©λλ€.
λ²νΌλ§μ΄ νμ±νλλ©΄ nginxλ κ°λ₯ν ν 빨리 uwsgi μλ²μμ μλ΅μ μμ νμ¬ uwsgi_buffer_size λ° uwsgi_buffers λͺ λ ΉμΌλ‘ μ€μ λ λ²νΌμ μ μ₯ν©λλ€. μ 체 μλ΅μ΄ λ©λͺ¨λ¦¬μ λ§μ§ μμΌλ©΄ μΌλΆλ₯Ό λμ€ν¬μ μμ νμΌμ μ μ₯ν μ μμ΅λλ€. μμ νμΌμ μ°κΈ°λ uwsgi_max_temp_file_size λ° uwsgi_temp_file_write_size λͺ λ ΉμΌλ‘ μ μ΄λ©λλ€.
λ²νΌλ§μ΄ λΉνμ±νλλ©΄ μλ΅μ΄ μμ λμλ§μ ν΄λΌμ΄μΈνΈλ‘ λμμ μ λ¬λ©λλ€. nginxλ uwsgi μλ²μμ μ 체 μλ΅μ μ½μΌλ € νμ§ μμ΅λλ€. nginxκ° ν λ²μ μλ²μμ μμ ν μ μλ λ°μ΄ν°μ μ΅λ ν¬κΈ°λ uwsgi_buffer_size λͺ λ ΉμΌλ‘ μ€μ λ©λλ€.
λ²νΌλ§μ “X-Accel-Buffering” μλ΅ ν€λ νλμμ “μ” λλ “μλμ”λ₯Ό μ λ¬νμ¬ νμ±ννκ±°λ λΉνμ±νν μλ μμ΅λλ€. μ΄ κΈ°λ₯μ uwsgi_ignore_headers λͺ λ Ήμ μ¬μ©νμ¬ λΉνμ±νν μ μμ΅λλ€.
Syntax: uwsgi_buffers number size;
Default: uwsgi_buffers 8 4k|8k;
Context: http, server, location
λ¨μΌ μ°κ²°μ κ²½μ° uwsgi μλ²μμ μλ΅μ μ½λ λ° μ¬μ©λλ λ²νΌμ μ λ° ν¬κΈ°λ₯Ό μ€μ ν©λλ€. κΈ°λ³Έμ μΌλ‘ λ²νΌ ν¬κΈ°λ λ©λͺ¨λ¦¬ νμ΄μ§ 1κ°μ κ°μ΅λλ€. νλ«νΌμ λ°λΌ 4K λλ 8Kκ° λ©λλ€.
Syntax: uwsgi_busy_buffers_size size;
Default: uwsgi_busy_buffers_size 8k|16k;
Context: http, server, location
uwsgi μλ²μ μλ΅ λ²νΌλ§μ΄ νμ±νλλ©΄ ν΄λΌμ΄μΈνΈμ μλ΅μ μ μ‘νλ λ° μ¬μ©ν μ μλ λ²νΌμ μ΄ ν¬κΈ°κ° μ νλκ³ μλ΅μ΄ μμ§ μμ ν μ½νμ§ μμ΅λλ€. κ·Έλμ λλ¨Έμ§ λ²νΌκ° μλ΅μ μ½λ λ° μ¬μ©λ μ μκ³ νμν κ²½μ° μμ νμΌμ λν μλ΅μ λ²νΌλ§ λΆλΆμ΄ μ¬μ©λ©λλ€. κΈ°λ³Έμ μΌλ‘, ν¬κΈ°λ uwsgi_buffer_size λ° uwsgi_buffers λͺ λ ΉμΌλ‘ μ€μ λ 2κ° λ²νΌμ ν¬κΈ°λ‘ μ νλ©λλ€.
Syntax: uwsgi_cache zone | off;
Default: uwsgi_cache off;
Context: http, server, location
μΊμ±μ μ¬μ©λλ 곡μ λ©λͺ¨λ¦¬ μμμ μ μν©λλ€. λμΌν μμμ΄ μ¬λ¬ μμΉμμ μ¬μ©λ μ μμ΅λλ€. λ§€κ°λ³μ κ°μλ λ³μ(1.7.9)κ° ν¬ν¨λ μ μμ΅λλ€. off λ§€κ°λ³μλ μ΄μ κ΅¬μ± μμ€μμ μμλ μΊμ±μ λΉνμ±νν©λλ€.
Syntax: uwsgi_cache_background_update on | off;
Default: uwsgi_cache_background_update off;
Context: http, server, location
This directive appeared in version 1.11.10.
λ°±κ·ΈλΌμ΄λ νμ μμ²μ μμνμ¬ λ§λ£λ μΊμ νλͺ©μ μ λ°μ΄νΈν μ μκ³ κ·Έλμ μ€λλ μΊμλ μλ΅μ΄ ν΄λΌμ΄μΈνΈλ‘ λ°νλ©λλ€. μ€λλ μΊμλ μλ΅μ΄ μ λ°μ΄νΈλ λ ν΄λΉ μλ΅μ μ¬μ©μ νμ©ν΄μΌ ν©λλ€.
Syntax: uwsgi_cache_bypass string ...;
Default: β
Context: http, server, location
μΊμμμ μλ΅μ κ°μ Έμ€μ§ μλ 쑰건μ μ μν©λλ€. λ¬Έμμ΄ λ§€κ°λ³μμ νλ μ΄μμ κ°μ΄ λΉμ΄ μμ§ μκ³ “0”κ³Ό κ°μ§ μμΌλ©΄ μΊμμμ μλ΅μ κ°μ Έμ€μ§ μμ΅λλ€.
uwsgi_cache_bypass $cookie_nocache $arg_nocache$arg_comment;
uwsgi_cache_bypass $http_pragma $http_authorization;
uwsgi_no_cache λͺ λ Ήκ³Ό ν¨κ» μ¬μ©ν μ μμ΅λλ€.
Syntax: uwsgi_cache_key string;
Default: β
Context: http, server, location
μλ₯Ό λ€μ΄, μΊμ±μ ν€λ₯Ό μ μν©λλ€.
uwsgi_cache_key localhost:9000$request_uri;
Syntax: uwsgi_cache_lock on | off;
Default: uwsgi_cache_lock off;
Context: http, server, location
This directive appeared in version 1.1.12.
νμ±νλλ©΄ uwsgi μλ²λ‘ μμ²μ μ λ¬νμ¬ ν λ²μ νλμ μμ²λ§ uwsgi_cache_key λͺ λ Ήμ λ°λΌ μλ³λ μ μΊμ μμλ₯Ό μ±μΈ μ μμ΅λλ€. λμΌν μΊμ μμμ λ€λ₯Έ μμ²μ uwsgi_cache_lock_timeout λͺ λ ΉμΌλ‘ μ€μ λ μκ°κΉμ§ μλ΅μ΄ μ΄ μμκ° λ¦΄λ¦¬μ€λ μΊμ λλ μΊμ μ κΈμ νμλ λκΉμ§ κΈ°λ€λ¦½λλ€.
Syntax: uwsgi_cache_lock_age time;
Default: uwsgi_cache_lock_age 5s;
Context: http, server, location
This directive appeared in version 1.7.8.
μ μΊμ μμλ₯Ό μ±μ°κΈ° μν΄ uwsgi μλ²λ‘ μ λ¬λ λ§μ§λ§ μμ²μ΄ μ§μ λ μκ° λμ μλ£λμ§ μμμΌλ©΄ uwsgi μλ²λ‘ μμ²μ΄ νλ λ μ λ¬λ μ μμ΅λλ€.
Syntax: uwsgi_cache_lock_timeout time;
Default: uwsgi_cache_lock_timeout 5s;
Context: http, server, location
This directive appeared in version 1.1.12.
uwsgi_cache_lockμ λν μκ°μ νμ μ€μ ν©λλ€. μκ°μ΄ λ§λ£λλ©΄ μμ²μ΄ uwsgi μλ²λ‘ μ λ¬λμ§λ§ μλ΅μ μΊμλμ§ μμ΅λλ€.
1.7.8 μ΄μ μλ μλ΅μ μΊμν μ μμμ΅λλ€.
Syntax: uwsgi_cache_max_range_offset number;
Default: β
Context: http, server, location
This directive appeared in version 1.11.6.
λ°μ΄νΈ λ²μ μμ²μ λν΄ λ°μ΄νΈ λ¨μλ‘ μ€νμ μ μ€μ ν©λλ€. λ²μκ° μ€νμ μ λμ΄μλ©΄ λ²μ μμ²μ΄ uwsgi μλ²λ‘ μ λ¬λκ³ μλ΅μ΄ μΊμλμ§ μμ΅λλ€.
Syntax: uwsgi_cache_methods GET | HEAD | POST ...;
Default: uwsgi_cache_methods GET HEAD;
Context: http, server, location
ν΄λΌμ΄μΈνΈ μμ² λ©μλκ° μ΄ λͺ λ Ήμ λμ΄λλ©΄ μλ΅μ΄ μΊμλ©λλ€. “GET” λ° “HEAD” λ©μλλ νμ λͺ©λ‘μ μΆκ°λμ§λ§ λͺ μμ μΌλ‘ μ§μ νλ κ²μ΄ μ’μ΅λλ€. uwsgi_no_cache λͺ λ Ήλ μ°Έμ‘°νμΈμ.
Syntax: uwsgi_cache_min_uses number;
Default: uwsgi_cache_min_uses 1;
Context: http, server, location
μ΄νμ μλ΅μ΄ μΊμλλ μμ² μλ₯Ό μ€μ ν©λλ€.
Syntax: uwsgi_cache_path path [levels=levels] [use_temp_path=on|off] keys_zone=name:size [inactive=time]
[max_size=size] [min_free=size] [manager_files=number] [manager_sleep=time] [manager_threshold=time]
[loader_files=number] [loader_sleep=time] [loader_threshold=time] [purger=on|off] [purger_files=number]
[purger_sleep=time] [purger_threshold=time];
Default: β
Context: http
μΊμμ κ²½λ‘μ λ€λ₯Έ λ§€κ°λ³μλ₯Ό μ€μ ν©λλ€. μΊμ λ°μ΄ν°λ νμΌμ μ μ₯λ©λλ€. μΊμμ νμΌ μ΄λ¦μ MD5 ν¨μλ₯Ό μΊμ ν€μ μ μ©ν κ²°κ³Όμ λλ€. levels λ§€κ°λ³μκ° 1~3μ μΊμ κ³μΈ΅ ꡬ쑰 μμ€μ μ μνκ³ κ° μμ€μ κ° 1 λλ 2λ₯Ό μλ½ν©λλ€. μλ₯Ό λ€μ΄, λ€μ ꡬμ±μμ
uwsgi_cache_path /data/nginx/cache levels=1:2 keys_zone=one:10m;
μΊμμ νμΌ μ΄λ¦μ λ€μκ³Ό κ°μ΅λλ€.
/data/nginx/cache/c/29/b7f54b2df7773722d382f4809d65029c
μΊμλ μλ΅μ λ¨Όμ μμ νμΌμ κΈ°λ‘λ λ€μ νμΌ μ΄λ¦μ΄ λ³κ²½λ©λλ€. λ²μ 0.8.9λΆν° μμ νμΌκ³Ό μΊμλ λ€λ₯Έ νμΌ μμ€ν μ λ£μ μ μμ΅λλ€. νμ§λ§ μ΄ κ²½μ° λΉμ©μ΄ μ κ² λλ μ΄λ¦ λ³κ²½ μμ λμ 2κ°μ νμΌ μμ€ν μ 체μμ νμΌμ΄ 볡μ¬λ©λλ€. λ°λΌμ μ£Όμ΄μ§ μμΉμμ μΊμμ μμ νμΌ ν¬ν¨ λλ ν°λ¦¬ λͺ¨λ λμΌν νμΌ μμ€ν μ λ£λ κ²μ΄ μ’μ΅λλ€. μμ νμΌμ© λλ ν°λ¦¬λ use_temp_path λ§€κ°λ³μ(1.7.10)λ₯Ό κΈ°μ€μΌλ‘ μ€μ λ©λλ€. λ§€κ°λ³μκ° μλ΅λκ±°λ κ° onμΌλ‘ μ€μ λλ©΄ μ£Όμ΄μ§ μμΉμμ uwsgi_temp_path λͺ λ ΉμΌλ‘ μ€μ λ λλ ν°λ¦¬κ° μ¬μ©λ©λλ€. κ°μ΄ offλ‘ μ€μ λλ©΄ μμ νμΌμ΄ μΊμ λλ ν°λ¦¬μ μ§μ λ°°μΉλ©λλ€.
λν λͺ¨λ νμ± ν€ λ° λ°μ΄ν°μ λν μ 보λ 곡μ λ©λͺ¨λ¦¬ μμμ μ μ₯λ©λλ€. 곡μ λ©λͺ¨λ¦¬ μμμ μ΄λ¦ λ° ν¬κΈ°λ keys_zone λ§€κ°λ³μλ‘ κ΅¬μ±λ©λλ€. νλμ λ©κ°λ°μ΄νΈ μμμ μ½ 8μ² κ° ν€λ₯Ό μ μ₯ν μ μμ΅λλ€.
μμ μ© κ΅¬λ μ μΌλΆλ‘ 곡μ λ©λͺ¨λ¦¬ μμμ νμ₯λ μΊμ μ 보λ μ μ₯νλ―λ‘ λμΌν ν€ μμ λν΄ λ ν° μμ ν¬κΈ°λ₯Ό μ§μ ν΄μΌ ν©λλ€. μλ₯Ό λ€μ΄, νλμ λ©κ°λ°μ΄νΈ μμμ μ½ 4μ² κ° ν€λ₯Ό μ μ₯ν μ μμ΅λλ€.
inactive λ§€κ°λ³μλ‘ μ§μ λ μκ° λμ μ‘μΈμ€λμ§ μμ μΊμλ λ°μ΄ν°λ μ΅μ μ¬λΆμ κ΄κ³μμ΄ μΊμμμ μ κ±°λ©λλ€. κΈ°λ³Έμ μΌλ‘, λΉνμ±μ 10λΆμΌλ‘ μ€μ λ©λλ€.
νΉμν “μΊμ κ΄λ¦¬μ” νλ‘μΈμ€λ max_size λ§€κ°λ³μλ‘ μ€μ λ μ΅λ μΊμ ν¬κΈ°μ μΊμκ° ν¬ν¨λ νμΌ μμ€ν μ min_free(1.19.1) λ§€κ°λ³μλ‘ μ€μ λ μ΅μ μ¬μ© κ°λ₯ κ³΅κ° ν¬κΈ°λ₯Ό λͺ¨λν°λ§ν©λλ€. ν¬κΈ°κ° μ΄κ³Όλκ±°λ μΆ©λΆν μ¬μ© κ°λ₯ 곡κ°μ΄ μμΌλ©΄ κ°μ₯ μ΅κ·Όμ μ¬μ©ν λ°μ΄ν°λ₯Ό μ κ±°ν©λλ€. λ°μ΄ν°λ manager_files, manager_threshold λ° manager_sleep λ§€κ°λ³μ(1.11.5)λ‘ κ΅¬μ±λ λ°λ³΅μμ μ κ±°λ©λλ€. 1ν μ΄ν°λ μ΄μ μμλ manager_filesλ³΄λ€ μ μ μμ νλͺ©μ΄ μμ λ©λλ€(κΈ°λ³Έκ°: 100). ν λ² λ°λ³΅μ κΈ°κ°μ manager_threshold λ§€κ°λ³μλ‘ μ νλ©λλ€(κΈ°λ³Έμ μΌλ‘ 200λ°λ¦¬μ΄). λ°λ³΅ μ¬μ΄μ manager_sleep λ§€κ°λ³μλ‘ κ΅¬μ±λ μΌμ μ€μ§(κΈ°λ³Έμ μΌλ‘ 50λ°λ¦¬μ΄)κ° μ€νλ©λλ€.
μμ 1λΆ νμ νΉμν “μΊμ λ‘λ” νλ‘μΈμκ° μλν©λλ€. κ·Έλ¬λ©΄ νμΌ μμ€ν μ μ μ₯λ μ΄μ μ μΊμλ λ°μ΄ν°μ λν μ λ³΄κ° μΊμ μμμΌλ‘ λ‘λλ©λλ€. λ‘λ©λ λ°λ³΅μ μΌλ‘ μνλ©λλ€. 1ν μ΄ν°λ μ΄μ μμλ loader_filesλ³΄λ€ μ μ μμ νλͺ©μ΄ λ‘λλ©λλ€(κΈ°λ³Έκ°: 100). λν, ν λ²μ λ°λ³΅ κΈ°κ°μ loader_threshold λ§€κ°λ³μλ‘ μ νλ©λλ€(κΈ°λ³Έμ μΌλ‘ 200λ°λ¦¬μ΄). λ°λ³΅ μ¬μ΄μ loader_sleep λ§€κ°λ³μλ‘ κ΅¬μ±λ μΌμ μ€μ§(κΈ°λ³Έμ μΌλ‘ 50λ°λ¦¬μ΄)κ° μ€νλ©λλ€.
λν λ€μ λ§€κ°λ³μκ° μμ μ© κ΅¬λ μ μΌλΆλ‘ μ¬μ© κ°λ₯ν©λλ€.
purger=on|off
μμΌλμΉ΄λ ν€μ μΌμΉνλ μΊμ νλͺ©μ΄ μΊμ νΌμ (purger)(1.7.12)μ μν΄ λμ€ν¬μμ μ κ±°λ μ§λ₯Ό μ§μν©λλ€. λ§€κ°λ³μλ₯Ό on(κΈ°λ³Έκ°μ off)μΌλ‘ μ€μ νλ©΄ λͺ¨λ μΊμ νλͺ©μ ν΅ν΄ μꡬμ μΌλ‘ λ°λ³΅λκ³ μμΌλμΉ΄λ ν€μ μΌμΉνλ νλͺ©μ μμ νλ “μΊμ νΌμ ” νλ‘μΈμ€κ° μλν©λλ€.
purger_files=number
ν λ²μ λ°λ³΅ λμ μ€μΊλλ νλͺ© μλ₯Ό μ€μ ν©λλ€(1.7.12). κΈ°λ³Έμ μΌλ‘ purger_filesλ₯Ό 10μΌλ‘ μ€μ ν©λλ€.
purger_threshold=number
ν λ²μ λ°λ³΅ κΈ°κ°μ΄ μ€μ λ©λλ€(1.7.12). κΈ°λ³Έμ μΌλ‘ purger_thresholdλ 50λ°λ¦¬μ΄λ‘ μ€μ λ©λλ€.
purger_sleep=number
λ°λ³΅ μ¬μ΄μ μΌμ μ€μ§λ₯Ό μ€μ ν©λλ€(1.7.12). κΈ°λ³Έμ μΌλ‘ purger_sleepμ 50λ°λ¦¬μ΄λ‘ μ€μ λ©λλ€.
λ²μ 1.7.3, 1.7.7 λ° 1.11.10μμ μΊμ ν€λ νμμ΄ λ³κ²½λμμ΅λλ€. μ΄μ μ μΊμλ μλ΅μ μ΅μ nginx λ²μ μΌλ‘ μ κ·Έλ μ΄λ νμ μλͺ»λ κ²μΌλ‘ κ°μ£Όλ©λλ€.
Syntax: uwsgi_cache_purge string ...;
Default: β
Context: http, server, location
This directive appeared in version 1.5.7.
μμ²μ΄ μΊμ μ κ±° μμ²μΌλ‘ κ°μ£Όλλ 쑰건μ μ μν©λλ€. λ¬Έμμ΄ λ§€κ°λ³μμ νλ μ΄μμ κ°μ΄ λΉμ΄ μμ§ μκ³ “0”κ³Ό κ°μ§ μμΌλ©΄ ν΄λΉνλ μΊμ ν€κ° μλ μΊμ νλͺ©μ΄ μ κ±°λ©λλ€. μ±κ³΅μ μΈ μμ μ κ²°κ³Όλ 204(μ½ν μΈ μμ) μλ΅μ λ°ννμ¬ νμλ©λλ€.
μ κ±° μμ²μ μΊμ ν€κ° λ³ν(“*”)λ‘ λλλ κ²½μ° μμΌλ μΉ΄λ ν€μ μΌμΉνλ λͺ¨λ μΊμ νλͺ©μ΄ μΊμμμ μ κ±°λ©λλ€. κ·Έλ¬λ μ΄λ¬ν νλͺ©μ λΉνμ±μ μν΄ μμ λκ±°λ μΊμ νΌμ (1.7.12)μ μν΄ μ²λ¦¬λκ±°λ ν΄λΌμ΄μΈνΈκ° νλͺ©μ μ‘μΈμ€λ₯Ό μλν λκΉμ§ λμ€ν¬μ λ¨μ΅λλ€.
μμ ꡬμ±:
uwsgi_cache_path /data/nginx/cache keys_zone=cache_zone:10m;
map $request_method $purge_method {
PURGE 1;
default 0;
}
server {
...
location / {
uwsgi_pass backend;
uwsgi_cache cache_zone;
uwsgi_cache_key $uri;
uwsgi_cache_purge $purge_method;
}
}
μ΄ κΈ°λ₯μ μμ μ© κ΅¬λ μ μΌλΆλ‘ μ¬μ© κ°λ₯ν©λλ€.
Syntax: uwsgi_cache_revalidate on | off;
Default: uwsgi_cache_revalidate off;
Context: http, server, location
This directive appeared in version 1.5.7.
“If-Modified-Since” λ° “If-None-Match” ν€λ νλλ₯Ό ν¬ν¨νλ μ‘°κ±΄λΆ μμ²μ μ¬μ©νμ¬ λ§λ£λ μΊμ νλͺ©μ μ¬κ²μ¦μ νμ±νν©λλ€.
Syntax: uwsgi_cache_use_stale error | timeout | invalid_header | updating | http_500 | http_503 | http_403 |
http_404 | http_429 | off ...;
Default: uwsgi_cache_use_stale off;
Context: http, server, location
uwsgi μλ²μ ν΅μ νλ λμ μ€λ₯κ° λ°μν λ μ€λλ μΊμλ μλ΅μ μ¬μ©ν μ μλ κ²½μ°λ₯Ό κ²°μ ν©λλ€. λͺ λ Ήμ λ§€κ°λ³μλ uwsgi_next_upstream λͺ λ Ήμ λ§€κ°λ³μμ μΌμΉν©λλ€.
error λ§€κ°λ³μλ μμ²μ μ²λ¦¬νλ uwsgi μλ²λ₯Ό μ νν μ μλ κ²½μ° μ€λλ μΊμλ μλ΅μ μ¬μ©μ νμ©ν©λλ€.
λν, updating λ§€κ°λ³μλ νμ¬ μ λ°μ΄νΈλκ³ μλ κ²½μ° μ€λλ μΊμλ μλ΅μ μ¬μ©μ νμ©ν©λλ€. μ΄μ λ°λΌ μΊμλ λ°μ΄ν°λ₯Ό μ λ°μ΄νΈν λ uwsgi μλ²μ λν μ‘μΈμ€ μκ° μ΅μνλ μ μμ΅λλ€.
μ€λλ μΊμλ μλ΅μ μ¬μ©μ μλ΅μ΄ μ€λλ ν(1.11.10) μ§μ λ μ΄ μ λμ μλ΅ ν€λμμ μ§μ νμ±νν μλ μμ΅λλ€. μ΄ λ°©μμ λͺ λ Ή λ§€κ°λ³μ μ¬μ©λ³΄λ€ μ°μ μμκ° λ¨μ΄μ§λλ€.
- “Cache-Control” ν€λ νλμ “stale-while-revalidate” νμ₯μ νμ¬ μ λ°μ΄νΈλκ³ μλ κ²½μ° μ€λλ μΊμλ μλ΅μ μ¬μ©μ νμ©ν©λλ€.
- “Cache-Control” ν€λ νλμ “stale-if-error” νμ₯μ μ€λ₯ λ°μ μ μ€λλ μΊμλ μλ΅μ μ¬μ©μ νμ©ν©λλ€.
μλ‘μ΄ μΊμ μμλ₯Ό μ±μΈ λ uwsgi μλ²μ λν μ‘μΈμ€ μλ₯Ό μ΅μννλ €λ©΄ uwsgi_cache_lock λͺ λ Ήμ μ¬μ©ν μ μμ΅λλ€.
Syntax: uwsgi_cache_valid [code ...] time;
Default: β
Context: http, server, location
λ€λ₯Έ μλ΅ μ½λμ λν μΊμ± μκ°μ μ€μ ν©λλ€. μλ₯Ό λ€μ΄, λ€μ λͺ λ Ήμ
uwsgi_cache_valid 200 302 10m;
uwsgi_cache_valid 404 1m;
μ½λ 200 λ° 302κ° ν¬ν¨λ μλ΅μ λν΄ 10λΆμ μΊμ±μ μ€μ νκ³ μ½λ 404κ° ν¬ν¨λ μλ΅μ λν΄ 1λΆμ μΊμ±μ μ€μ ν©λλ€.
μΊμ± μκ°λ§ μ§μ λ κ²½μ°
uwsgi_cache_valid 5m;
200, 301, 302 μλ΅λ§ μΊμλ©λλ€.
λν any λ§€κ°λ³μλ λͺ¨λ μλ΅μ μΊμνκΈ° μν΄ μ§μ ν μ μμ΅λλ€.
uwsgi_cache_valid 200 302 10m;
uwsgi_cache_valid 301 1h;
uwsgi_cache_valid any 1m;
μΊμ±μ λ§€κ°λ³μλ μλ΅ ν€λμμ μ§μ μ€μ ν μλ μμ΅λλ€. μ΄ λ°©μμ λͺ λ Ήμ μ¬μ©ν μΊμ± μκ° μ€μ λ³΄λ€ μ°μ μμκ° λμ΅λλ€.
- “X-Accel-Expires” ν€λ νλλ μλ΅μ μΊμ± μκ°μ μ΄ λ¨μλ‘ μ€μ ν©λλ€. 0 κ°μ μλ΅μ λν μΊμ±μ λΉνμ±νν©λλ€. κ°μ΄ @ μ λμ¬λ‘ μμνλ κ²½μ°, Epochκ° μμλκ³ κ²½κ³Όν μ λ μκ°(μ΄)μ μ€μ νλ©΄ κ·Έ μκ°κΉμ§ μλ΅μ μΊμ±ν μ μμ΅λλ€.
- ν€λμ “X-Accel-Expires” νλκ° ν¬ν¨λμ§ μμ κ²½μ° μΊμ±μ λ§€κ°λ³μλ ν€λ νλ “Expires” λλ “Cache-Control”μμ μ€μ ν μ μμ΅λλ€.
- ν€λμ “Set-Cookie” νλκ° ν¬ν¨λλ©΄ κ·Έλ¬ν μλ΅μ μΊμλμ§ μμ΅λλ€.
- ν€λμ νΉμ κ° “*”μ ν¨κ» “Vary” νλκ° ν¬ν¨λλ κ²½μ° κ·Έλ¬ν μλ΅μ μΊμλμ§ μμ΅λλ€(1.7.7). ν€λμ λ€λ₯Έ κ°κ³Ό ν¨κ» “Vary” νλκ° ν¬ν¨λ κ²½μ° κ·Έλ¬ν μλ΅μ ν΄λΉνλ μμ² ν€λ νλλ₯Ό κ³ λ €νμ¬ μΊμλ©λλ€(1.7.7).
νλ μ΄μμ μ΄λ¬ν μλ΅ ν€λ νλμ μ²λ¦¬λ uwsgi_ignore_headers λͺ λ Ήμ μ¬μ©νμ¬ λΉνμ±νν μ μμ΅λλ€.
Syntax: uwsgi_connect_timeout time;
Default: uwsgi_connect_timeout 60s;
Context: http, server, location
uwsgi μλ²μμ μ°κ²°μ μ€μ νκΈ° μν μκ°μ νμ μ μν©λλ€. μ΄ μκ°μ νμ μΌλ°μ μΌλ‘ 75μ΄λ₯Ό μ΄κ³Όν μ μλ€λ μ μ μ λ ν΄μΌ ν©λλ€.
Syntax: uwsgi_force_ranges on | off;
Default: uwsgi_force_ranges off;
Context: http, server, location
This directive appeared in version 1.7.7.
μ΄λ¬ν μλ΅μ “Accept-Ranges” νλμ κ΄κ³μμ΄ uwsgi μλ²λ‘λΆν°μ μΊμλ μλ΅κ³Ό μΊμλμ§ μμ μλ΅ λͺ¨λμ λν΄ λ°μ΄νΈ λ²μ μ§μμ νμ±νν©λλ€.
Syntax: uwsgi_hide_header field;
Default: β
Context: http, server, location
κΈ°λ³Έμ μΌλ‘ nginxλ uwsgi μλ²μ μλ΅μμ ν΄λΌμ΄μΈνΈλ‘ ν€λ νλ “Status” λ° “X-Accel-…”μ μ λ¬νμ§ μμ΅λλ€. uwsgi_hide_header λͺ λ Ήμ μ λ¬λμ§ μλ μΆκ° νλλ₯Ό μ€μ ν©λλ€. λ°λλ‘ νλ μ λ¬μ νμ©ν΄μΌ νλ κ²½μ° uwsgi_pass_header λͺ λ Ήμ μ¬μ©ν μ μμ΅λλ€.
Syntax: uwsgi_ignore_client_abort on | off;
Default: uwsgi_ignore_client_abort off;
Context: http, server, location
ν΄λΌμ΄μΈνΈκ° μλ΅μ κΈ°λ€λ¦¬μ§ μκ³ μ°κ²°μ λ«μ λ uwsgi μλ²μμ μ°κ²°μ΄ λ«νμΌ νλμ§λ₯Ό κ²°μ ν©λλ€.
Syntax: uwsgi_ignore_headers field ...;
Default: β
Context: http, server, location
uwsgi μλ²μ νΉμ ν μλ΅ ν€λ νλ μ²λ¦¬λ₯Ό λΉνμ±νν©λλ€. λ€μ νλλ 무μν μ μμ΅λλ€. “X-Accel-Redirect”, “X-Accel-Expires”, “X-Accel-Limit-Rate”(1.1.6), “X-Accel-Buffering”(1.1.6), “X-Accel-Charset”(1.1.6), “Expires”, “Cache-Control”, “Set-Cookie”(0.8.44) λ° “Vary”(1.7.7).
λΉνμ±νλμ§ μμΌλ©΄ μ΄λ¬ν ν€λ νλλ₯Ό μ²λ¦¬ν κ²½μ° λ€μκ³Ό κ°μ ν¨κ³Όκ° μμ΅λλ€.
- “X-Accel-Expires”, “Expires”, “Cache-Control”, “Set-Cookie” λ° “Vary”λ μλ΅ μΊμ±μ λ§€κ°λ³μλ₯Ό μ€μ ν©λλ€.
- “X-Accel-Redirect”λ μ§μ λ URIμ λν λ΄λΆ 리λλ μ μ μνν©λλ€.
- “X-Accel-Limit-Rate”λ ν΄λΌμ΄μΈνΈμ λν μλ΅ μ μ‘μ μν΄ μλ μ νμ μ€μ ν©λλ€.
- “X-Accel-Buffering”μ μλ΅μ λ²νΌλ§μ νμ±ννκ±°λ λΉνμ±νν©λλ€.
- “X-Accel-Charset”μ μλ΅μ μνλ charsetμ μ€μ ν©λλ€.
Syntax: uwsgi_intercept_errors on | off;
Default: uwsgi_intercept_errors off;
Context: http, server, location
μ½λκ° 300λ³΄λ€ ν¬κ±°λ κ°μ uwsgi μλ² μλ΅μ΄ ν΄λΌμ΄μΈνΈμ μ λ¬λμ΄μΌ νλμ§ μλλ©΄ error_page λͺ λ ΉμΌλ‘ μ²λ¦¬νκΈ° μν΄ κ°λ‘μ±μ nginxλ‘ λ¦¬λλ μ ν΄μΌ νλμ§ κ²°μ ν©λλ€.
Syntax: uwsgi_limit_rate rate;
Default: uwsgi_limit_rate 0;
Context: http, server, location
This directive appeared in version 1.7.7.
uwsgi μλ²μμμ μλ΅μ μ½λ μλλ₯Ό μ νν©λλ€. μλλ μ΄λΉ λ°μ΄νΈλ‘ μ§μ λ©λλ€. 0 κ°μ μλ μ νμ λΉνμ±νν©λλ€. μ νμ μμ²λΉ μ€μ λλ―λ‘ nginxκ° uwsgi μλ²μ λν 2κ°μ μ°κ²°μ λμμ μ° κ²½μ° μ 체 μλλ μ§μ λ μλμ 2λ°°μ λλ€. μ νμ uwsgi μλ²μμμ μλ΅ λ²νΌλ§μ΄ νμ±νλ κ²½μ°μλ§ μλν©λλ€.
Syntax: uwsgi_max_temp_file_size size;
Default: uwsgi_max_temp_file_size 1024m;
Context: http, server, location
uwsgi μλ²μμμ μλ΅ λ²νΌλ§μ΄ νμ±νλκ³ μ 체 μλ΅μ΄ uwsgi_buffer_size λ° uwsgi_buffers λͺ λ ΉμΌλ‘ μ€μ λ λ²νΌμ λ§μ§ μμΌλ©΄ μλ΅μ μΌλΆκ° μμ νμΌλ‘ μ μ₯λ μ μμ΅λλ€. μ΄ λͺ λ Ήμ μμ νμΌμ μ΅λ ν¬κΈ°λ₯Ό μ€μ ν©λλ€. ν λ²μ μμ νμΌμ κΈ°λ‘λλ λ°μ΄ν°μ ν¬κΈ°λ uwsgi_temp_file_write_size λͺ λ ΉμΌλ‘ μ€μ λ©λλ€.
0 κ°μ μμ νμΌμ λν μλ΅μ λ²νΌλ§μ λΉνμ±νν©λλ€.
μ΄ μ νμ μΊμλκ±°λ λμ€ν¬μ μ μ₯λ μλ΅μλ μ μ©λμ§ μμ΅λλ€.
Syntax: uwsgi_modifier1 number;
Default: uwsgi_modifier1 0;
Context: http, server, location
uwsgi packet headerμμ modifier1 νλμ κ°μ μ€μ ν©λλ€.
Syntax: uwsgi_modifier2 number;
Default: uwsgi_modifier2 0;
Context: http, server, location
uwsgi packet headerμμ modifier2 νλμ κ°μ μ€μ ν©λλ€.
Syntax: uwsgi_next_upstream error | timeout | invalid_header | http_500 | http_503 | http_403 | http_404 |
http_429 | non_idempotent | off ...;
Default: uwsgi_next_upstream error timeout;
Context: http, server, location
μμ²μ΄ λ€μ μλ²μ μ λ¬λμ΄μΌ νλ κ²½μ°λ₯Ό μ§μ ν©λλ€.
error
μλ²μμ μ°κ²°μ μ€μ νκ³ μμ²μ μλ²μ μ λ¬νκ±°λ μλ΅ ν€λλ₯Ό μ½λ λμ μ€λ₯ λ°μ
timeout
μλ²μμ μ°κ²°μ μ€μ νκ³ μμ²μ μλ²μ μ λ¬νκ±°λ μλ΅ ν€λλ₯Ό μ½λ λμ μκ°μ ν λ°μ
invalid_header
μλ²κ° λΉμ΄ μκ±°λ μλͺ»λ μλ΅μ λ°ννμ΅λλ€.
http_500
μλ²κ° μ½λ 500μΌλ‘ μλ΅μ λ°ννμ΅λλ€.
http_503
μλ²κ° μ½λ 503μΌλ‘ μλ΅μ λ°ννμ΅λλ€.
http_403
μλ²κ° μ½λ 403μΌλ‘ μλ΅μ λ°ννμ΅λλ€.
http_404
μλ²κ° μ½λ 404λ‘ μλ΅μ λ°ννμ΅λλ€.
http_429
μλ²κ° μ½λ 429(1.11.13)λ‘ μλ΅μ λ°ννμ΅λλ€.
non_idempotent
μΌλ°μ μΌλ‘ non-idempotent λ©μλ(POST, LOCK, PATCH)λ₯Ό ν¬ν¨νλ μμ²μ μμ²μ΄ μ μ€νΈλ¦Ό μλ²(1.9.13)λ‘ μ μ‘λ κ²½μ° λ€μ μλ²μ μ λ¬λμ§ μμ΅λλ€. μ΄ μ΅μ μ νμ±ννλ©΄ κ·Έλ¬ν μμ²μ μ¬μλκ° λͺ μμ μΌλ‘ νμ©λ©λλ€.
off
λ€μ μλ²λ‘μ μμ² μ λ¬μ΄ λΉνμ±νλ©λλ€.
λ€μ μλ²λ‘μ μμ² μ λ¬μ μμ§ ν΄λΌμ΄μΈνΈμ μ무κ²λ μ μ‘λμ§ μμ κ²½μ°μλ§ κ°λ₯ν©λλ€. μ¦, μλ΅ μ μ‘ μ€μ μ€λ₯ λλ μκ°μ νμ΄ λ°μνλ κ²½μ° μ΄λ₯Ό μμ νλ κ²μ λΆκ°λ₯ν©λλ€.
λͺ λ Ήμ λν μλ²μμ ν΅μ μ μ€ν¨ν μλλ‘ κ°μ£Όλλ κ²λ μ μν©λλ€. error, timeout λ° invalid_headerλ λͺ λ Ήμ μ§μ λμ§ μλλΌλ νμ μ€ν¨ν μλλ‘ κ°μ£Όλ©λλ€. http_500, http_503 λ° http_429μ κ²½μ°λ λͺ λ Ήμ μ§μ λ κ²½μ°μλ§ μ€ν¨ν μλλ‘ κ°μ£Όλ©λλ€. http_403 λ° http_404μ κ²½μ°λ μ λ μ€ν¨ν μλλ‘ κ°μ£Όλμ§ μμ΅λλ€.
μμ²μ λ€μ μλ²λ‘ μ λ¬νλ κ²μ μλ μ λ° μκ°μ μν΄ μ νλ μ μμ΅λλ€.
Syntax: uwsgi_next_upstream_timeout time;
Default: uwsgi_next_upstream_timeout 0;
Context: http, server, location
This directive appeared in version 1.7.5.
μμ²μ λ€μ μλ²λ‘ μ λ¬ν μ μλ κΈ°κ°μ μ νν©λλ€. 0 κ°μ μ΄ μ νμ ν΄μ ν©λλ€.
Syntax: uwsgi_next_upstream_tries number;
Default: uwsgi_next_upstream_tries 0;
Context: http, server, location
This directive appeared in version 1.7.5.
μμ²μ λ€μ μλ²λ‘ μ λ¬ν μ μλ κ°λ₯ν μλ μλ₯Ό μ νν©λλ€. 0 κ°μ μ΄ μ νμ ν΄μ ν©λλ€.
Syntax: uwsgi_no_cache string ...;
Default: β
Context: http, server, location
μλ΅μ΄ μΊμμ μ μ₯λμ§ μλ 쑰건μ μ μν©λλ€. λ¬Έμμ΄ λ§€κ°λ³μμ νλ μ΄μμ κ°μ΄ λΉμ΄ μμ§ μκ³ “0”κ³Ό κ°μ§ μμΌλ©΄ μλ΅μ΄ μ μ₯λμ§ μμ΅λλ€.
uwsgi_no_cache $cookie_nocache $arg_nocache$arg_comment;
uwsgi_no_cache $http_pragma $http_authorization;
uwsgi_cache_bypass λͺ λ Ήκ³Ό ν¨κ» μ¬μ©ν μ μμ΅λλ€.
Syntax: uwsgi_param parameter value [if_not_empty];
Default: β
Context: http, server, location
uwsgi μλ²λ‘ μ λ¬ν΄μΌ νλ λ§€κ°λ³μλ₯Ό μ€μ ν©λλ€. κ°μ ν μ€νΈ, λ³μ λ° κ·Έ μ‘°ν©μ ν¬ν¨ν μ μμ΅λλ€. μ΄λ¬ν λͺ λ Ήμ νμ¬ μμ€μμ μ μλ uwsgi_param λͺ λ Ήμ΄ μλ κ²½μ°μλ§ μ΄μ κ΅¬μ± μμ€μμ μμλ©λλ€.
νμ€ CGI νκ²½ λ³μλ uwsgi ν€λλ‘ μ 곡λμ΄μΌ ν©λλ€. λ°°ν¬νμ μ 곡λ uwsgi_params νμΌμ μ°Έμ‘°νμΈμ.
location / {
include uwsgi_params;
...
}
λͺ λ Ήμ΄ if_not_empty(1.1.11)λ‘ μ§μ λ κ²½μ° κ·Έλ¬ν λ§€κ°λ³μλ ν΄λΉ κ°μ΄ λΉμ΄ μμ§ μμ κ²½μ°μλ§ μλ²λ‘ μ λ¬λ©λλ€.
uwsgi_param HTTPS $https if_not_empty;
Syntax: uwsgi_pass [protocol://]address;
Default: β
Context: location, if in location
uwsgi μλ²μ νλ‘ν μ½ λ° μ£Όμλ₯Ό μ€μ ν©λλ€. νλ‘ν μ½λ‘ “uwsgi” λλ “suwsgi”(보μ uwsgi, uwsgi over SSL)λ₯Ό μ§μ ν μ μμ΅λλ€. μ£Όμλ λλ©μΈ μ΄λ¦ λλ IP μ£Όμ λ° ν¬νΈλ‘ μ§μ νκ±°λ
uwsgi_pass localhost:9000;
uwsgi_pass uwsgi://localhost:9000;
uwsgi_pass suwsgi://[2001:db8::1]:9090;
λλ UNIX-λλ©μΈ μμΌ κ²½λ‘λ‘ μ§μ ν μ μμ΅λλ€.
uwsgi_pass unix:/tmp/uwsgi.socket;
λλ©μΈ μ΄λ¦μ΄ μ¬λ¬ μ£Όμλ‘ νμΈλλ©΄ ν΄λΉνλ λͺ¨λ μ£Όμλ λΌμ΄λ λ‘λΉ λ°©μμΌλ‘ μ¬μ©λ©λλ€. λν, μ£Όμλ μλ² κ·Έλ£ΉμΌλ‘ μ§μ ν μ μμ΅λλ€.
λ§€κ°λ³μ κ°μλ λ³μκ° ν¬ν¨λ μ μμ΅λλ€. μ΄ κ²½μ° μ£Όμκ° λλ©μΈ μ΄λ¦μΌλ‘ μ§μ λλ©΄ μ΄λ¦μ μ€λͺ λ μλ² κ·Έλ£Ή μ€μμ κ²μλκ³ μλ κ²½μ° νμΈμλ₯Ό μ¬μ©νμ¬ κ²°μ λ©λλ€.
보μ uwsgi νλ‘ν μ½μ λ²μ 1.5.8 μ΄ν μ§μλ©λλ€.
Syntax: uwsgi_pass_header field;
Default: β
Context: http, server, location
uwsgi μλ²μμ ν΄λΌμ΄μΈνΈλ‘ λ€λ₯Έ λ°©μμΌλ‘ λΉνμ±νλ ν€λ νλμ μ λ¬μ νμ©ν©λλ€.
Syntax: uwsgi_pass_request_body on | off;
Default: uwsgi_pass_request_body on;
Context: http, server, location
μλ μμ² λ³Έλ¬Έμ΄ uwsgi μλ²λ‘ μ λ¬λλμ§λ₯Ό λνλ λλ€. uwsgi_pass_request_headers λͺ λ Ήλ μ°Έμ‘°νμΈμ.
Syntax: uwsgi_pass_request_headers on | off;
Default: uwsgi_pass_request_headers on;
Context: http, server, location
μλ μμ²μ ν€λ νλκ° uwsgi μλ²λ‘ μ λ¬λλμ§ λνλ λλ€. uwsgi_pass_request_body λͺ λ Ήλ μ°Έμ‘°νμΈμ.
Syntax: uwsgi_read_timeout time;
Default: uwsgi_read_timeout 60s;
Context: http, server, location
uwsgi μλ²μμ μλ΅μ μ½κΈ° μν μκ°μ νμ μ μν©λλ€. μκ°μ νμ μ 체 μλ΅μ μ μ‘μ λν΄μκ° μλλΌ 2κ°μ μ°μμ μΈ μ½κΈ° μμ μ¬μ΄μμλ§ μ€μ λ©λλ€. uwsgi μλ²κ° μ΄ μκ° λ΄μ μ무κ²λ μ μ‘νμ§ μμΌλ©΄ μ°κ²°μ΄ λ«νλλ€.
Syntax: uwsgi_request_buffering on | off;
Default: uwsgi_request_buffering on;
Context: http, server, location
This directive appeared in version 1.7.11.
ν΄λΌμ΄μΈνΈ μμ² λ³Έλ¬Έμ λ²νΌλ§μ νμ±ννκ±°λ λΉνμ±νν©λλ€.
λ²νΌλ§μ΄ νμ±νλλ©΄ μμ²μ uwsgi μλ²μ 보λ΄κΈ° μ μ μ 체 μμ² λ³Έλ¬Έμ΄ ν΄λΌμ΄μΈνΈμμ μ½νλλ€.
λ²νΌλ§μ΄ λΉνμ±νλλ©΄ μμ² λ³Έλ¬Έμ΄ μμ λμλ§μ μ¦μ uwsgi μλ²λ‘ μ μ‘λ©λλ€. μ΄ κ²½μ° μμ²μ nginxκ° μ΄λ―Έ μμ² λ³Έλ¬Έμ μ μ‘μ μμν κ²½μ° λ€μ μλ²λ‘ μ λ¬λ μ μμ΅λλ€.
HTTP/1.1 μ²ν¬ λΆν μ μ‘ μΈμ½λ©μ΄ μλ μμ² λ³Έλ¬Έμ μ μ‘νλ λ° μ¬μ©λλ©΄ μμ² λ³Έλ¬Έμ λͺ λ Ή κ°κ³Ό κ΄κ³μμ΄ λ²νΌλ§λ©λλ€.
Syntax: uwsgi_send_timeout time;
Default: uwsgi_send_timeout 60s;
Context: http, server, location
μμ²μ uwsgi μλ²λ‘ μ μ‘νλ λ° λν μκ°μ νμ μ€μ ν©λλ€. μκ°μ νμ μ 체 μμ²μ μ μ‘μ λν΄μκ° μλλΌ 2κ°μ μ°μμ μΈ μ°κΈ° μμ μ¬μ΄μμλ§ μ€μ λ©λλ€. uwsgi μλ²κ° μ΄ μκ° λ΄μ μ무κ²λ μμ νμ§ μμΌλ©΄ μ°κ²°μ΄ λ«νλλ€.
Syntax: uwsgi_socket_keepalive on | off;
Default: uwsgi_socket_keepalive off;
Context: http, server, location
This directive appeared in version 1.15.6.
uwsgi μλ²λ‘ λκ°λ μ°κ²°μ λν “TCP keepalive” λμμ ꡬμ±ν©λλ€. κΈ°λ³Έμ μΌλ‘ μ΄μ 체μ μ μ€μ μ μμΌμ λν΄ μ ν¨ν©λλ€. λͺ λ Ήμμ “on” κ°μ μ€μ νλ©΄ ν΄λΉ μμΌμ λν΄ SO_KEEPALIVE μ΅μ μ΄ νμ±νλ©λλ€.
Syntax: uwsgi_ssl_certificate file;
Default: β
Context: http, server, location
This directive appeared in version 1.7.8.
보μ uwsgi μλ²μ λν μΈμ¦μ μ¬μ©λ PEM νμμ μΈμ¦μλ‘ νμΌμ μ§μ ν©λλ€.
λ²μ 1.21.0 μ΄ν λ³μλ₯Ό νμΌ μ΄λ¦μ μ¬μ©ν μ μμ΅λλ€.
Syntax: uwsgi_ssl_certificate_key file;
Default: β
Context: http, server, location
This directive appeared in version 1.7.8.
보μ uwsgi μλ²μ λν μΈμ¦μ μ¬μ©λ PEM νμμ λΉλ° ν€λ‘ νμΌμ μ§μ ν©λλ€.
κ° engine:name:idλ νμΌ(1.7.9) λμ μ§μ λ μ μκ³ μ΄κ²μ OpenSSL engine μ΄λ¦μμ μ§μ λ idλ‘ λΉλ° ν€λ₯Ό λ‘λν©λλ€.
λ²μ 1.21.0 μ΄ν λ³μλ₯Ό νμΌ μ΄λ¦μ μ¬μ©ν μ μμ΅λλ€.
Syntax: uwsgi_ssl_ciphers ciphers;
Default: uwsgi_ssl_ciphers DEFAULT;
Context: http, server, location
This directive appeared in version 1.5.8.
보μ uwsgi μλ²μ λν μμ²μ λν΄ νμ±νλ μνΈνλ₯Ό μ§μ ν©λλ€. μνΈνλ OpenSSL λΌμ΄λΈλ¬λ¦¬κ° μ΄ν΄νλ νμμΌλ‘ μ§μ λ©λλ€.
μ 체 λͺ©λ‘μ “openssl ciphers” λͺ λ Ήμ μ¬μ©νμ¬ νμΈν μ μμ΅λλ€.
Syntax: uwsgi_ssl_conf_command command;
Default: β
Context: http, server, location
This directive appeared in version 1.19.4.
보μ uwsgi μλ²μμ μ°κ²°μ μ€μ ν λ μμμ OpenSSL κ΅¬μ± λͺ λ Ήμ μ€μ ν©λλ€.
λͺ λ Ήμ OpenSSL 1.0.2 μ΄μμ μ¬μ©νλ κ²½μ° μ§μλ©λλ€.
μ¬λ¬ uwsgi_ssl_conf_command λͺ λ Ήμ λμΌν μμ€μμ μ§μ ν μ μμ΅λλ€. μ΄λ¬ν λͺ λ Ήμ νμ¬ μμ€μ μ μλ uwsgi_ssl_conf_command λͺ λ Ήμ΄ μλ κ²½μ°μλ§ μ΄μ κ΅¬μ± μμ€μμ μμλ©λλ€.
OpenSSLμ μ§μ ꡬμ±νλ©΄ μκΈ°μΉ λͺ»ν λμμ΄ λ°μν μ μμ΅λλ€.
Syntax: uwsgi_ssl_crl file;
Default: β
Context: http, server, location
This directive appeared in version 1.7.0.
보μ uwsgi μλ²μ μΈμ¦μλ₯Ό νμΈνλ λ° μ¬μ©λλ PEM νμμΌλ‘ ν΄μ§λ μΈμ¦μ(CRL)λ₯Ό μ¬μ©νμ¬ νμΌμ μ§μ ν©λλ€.
Syntax: uwsgi_ssl_name name;
Default: uwsgi_ssl_name host from uwsgi_pass;
Context: http, server, location
This directive appeared in version 1.7.0.
보μ uwsgi μλ²μ μΈμ¦μλ₯Ό νμΈνκ³ λ³΄μ uwsgi μλ²μμ μ°κ²°μ μ€μ ν λ SNI ν΅κ³Όνλ λ° μ¬μ©λλ μλ² μ΄λ¦μ μ¬μ μλ₯Ό νμ©ν©λλ€.
κΈ°λ³Έμ μΌλ‘ uwsgi_passμ νΈμ€νΈ λΆλΆμ΄ μ¬μ©λ©λλ€.
Syntax: uwsgi_ssl_password_file file;
Default: β
Context: http, server, location
This directive appeared in version 1.7.8.
κ° μνΈκ° λ³λμ νμ μ§μ λ λΉλ° ν€μ λν μνΈλ₯Ό μ¬μ©νμ¬ νμΌμ μ§μ ν©λλ€. μνΈλ κ²°κ³Όμ μΌλ‘ ν€λ₯Ό λ‘λν λ μλλ©λλ€.
Syntax: uwsgi_ssl_protocols [SSLv2] [SSLv3] [TLSv1] [TLSv1.1] [TLSv1.2] [TLSv1.3];
Default: uwsgi_ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
Context: http, server, location
This directive appeared in version 1.5.8.
보μ uwsgi μλ²μ λν μμ²μ μ§μ λ νλ‘ν μ½μ νμ±νν©λλ€.
Syntax: uwsgi_ssl_server_name on | off;
Default: uwsgi_ssl_server_name off;
Context: http, server, location
This directive appeared in version 1.7.0.
보μ uwsgi μλ²μμ μ°κ²°μ μ€μ ν λ μλ² μ΄λ¦μ΄ TLS Server Name Indication νμ₯(SNI, RFC 6066)μ ν΅κ³Όνλ κ²μ νμ±ννκ±°λ λΉνμ±νν©λλ€.
Syntax: uwsgi_ssl_session_reuse on | off;
Default: uwsgi_ssl_session_reuse on;
Context: http, server, location
This directive appeared in version 1.5.8.
보μ uwsgi μλ²λ‘ μμ μ μνν λ SSL μΈμ μ μ¬μ¬μ©ν μ μλμ§λ₯Ό κ²°μ ν©λλ€. λ‘κ·Έμ “SSL3_GET_FINISHED:digest check failed” μ€λ₯κ° λνλ κ²½μ° μΈμ μ¬μ¬μ©μ λΉνμ±νν΄λ³΄μΈμ.
Syntax: uwsgi_ssl_trusted_certificate file;
Default: β
Context: http, server, location
This directive appeared in version 1.7.0.
보μ uwsgi μλ²μ μΈμ¦μλ₯Ό νμΈνλ λ° μ¬μ©λλ PEM νμμΌλ‘ μ λ’°ν μ μλ CA μΈμ¦μλ₯Ό μ¬μ©νμ¬ νμΌμ μ§μ ν©λλ€.
Syntax: uwsgi_ssl_verify on | off;
Default: uwsgi_ssl_verify off;
Context: http, server, location
This directive appeared in version 1.7.0.
보μ uwsgi μλ² μΈμ¦μμ νμΈμ νμ±ννκ±°λ λΉνμ±νν©λλ€.
Syntax: uwsgi_ssl_verify_depth number;
Default: uwsgi_ssl_verify_depth 1;
Context: http, server, location
This directive appeared in version 1.7.0.
보μ uwsgi μλ² μΈμ¦μ 체μΈμ νμΈ κΉμ΄λ₯Ό μ€μ ν©λλ€.
Syntax: uwsgi_store on | off | string;
Default: uwsgi_store off;
Context: http, server, location
λμ€ν¬μ νμΌ μ μ₯μ νμ±νν©λλ€. on λ§€κ°λ³μλ λͺ λ Ή λ³μΉ λλ 루νΈμ ν΄λΉνλ κ²½λ‘λ‘ νμΌμ μ μ₯ν©λλ€. off λ§€κ°λ³μλ νμΌ μ μ₯μ λΉνμ±νν©λλ€. λν, νμΌ μ΄λ¦μ΄ λ³μλ₯Ό ν¬ν¨νλ λ¬Έμμ΄μ μ¬μ©νμ¬ λͺ μμ μΌλ‘ μ€μ λ μ μμ΅λλ€.
uwsgi_store /data/www$original_uri;
νμΌμ μμ μκ°μ μμ λ “Last-Modified” μλ΅ ν€λ νλμ λ°λΌ μ€μ λ©λλ€. μλ΅μ΄ λ¨Όμ μμ νμΌμ κΈ°λ‘λ λ€μ νμΌ μ΄λ¦μ΄ λ³κ²½λ©λλ€. λ²μ 0.8.9λΆν° μμ νμΌκ³Ό μꡬ μ μ₯μλ₯Ό λ€λ₯Έ νμΌ μμ€ν μ λ£μ μ μμ΅λλ€. νμ§λ§ μ΄ κ²½μ° λΉμ©μ΄ μ κ² λλ μ΄λ¦ λ³κ²½ μμ λμ 2κ°μ νμΌ μμ€ν μ 체μμ νμΌμ΄ 볡μ¬λ©λλ€. λ°λΌμ μ£Όμ΄μ§ μμΉμμ uwsgi_temp_path λͺ λ ΉμΌλ‘ μ€μ λλ μ μ₯λ νμΌκ³Ό μμ νμΌ ν¬ν¨ λλ ν°λ¦¬ λͺ¨λ λμΌν νμΌ μμ€ν μ λ°°μΉνλ κ²μ΄ μ’μ΅λλ€.
μ΄ λͺ λ Ήμ μ μ λ³κ²½ λΆκ° νμΌμ λ‘컬 볡μ¬λ³Έμ μμ±νλ λ° μ¬μ©λ©λλ€. μλ₯Ό λ€μ΄, λ€μκ³Ό κ°μ΅λλ€.
location /images/ {
root /data/www;
error_page 404 = /fetch$uri;
}
location /fetch/ {
internal;
uwsgi_pass backend:9000;
...
uwsgi_store on;
uwsgi_store_access user:rw group:rw all:r;
uwsgi_temp_path /data/temp;
alias /data/www/;
}
Syntax: uwsgi_store_access users:permissions ...;
Default: uwsgi_store_access user:rw;
Context: http, server, location
μλ‘ μμ±λ νμΌ λ° λλ ν°λ¦¬μ λν μ‘μΈμ€ κΆνμ μ€μ ν©λλ€. μλ₯Ό λ€μ΄, λ€μκ³Ό κ°μ΅λλ€.
uwsgi_store_access user:rw group:rw all:r;
λͺ¨λ κ·Έλ£Ή λλ λͺ¨λ μ‘μΈμ€ κΆνμ΄ μ§μ λλ©΄ μ¬μ©μ κΆνμ΄ μλ΅λ μ μμ΅λλ€.
uwsgi_store_access group:rw all:r;
Syntax: uwsgi_temp_file_write_size size;
Default: uwsgi_temp_file_write_size 8k|16k;
Context: http, server, location
uwsgi μλ²μμ μμ νμΌλ‘μ μλ΅ λ²νΌλ§μ΄ νμ±νλ κ²½μ° μμ νμΌμ ν λ²μ κΈ°λ‘λλ λ°μ΄ν°μ ν¬κΈ°λ₯Ό μ νν©λλ€. κΈ°λ³Έμ μΌλ‘ ν¬κΈ°λ uwsgi_buffer_size λ° uwsgi_buffers λͺ λ ΉμΌλ‘ μ€μ λλ 2κ° λ²νΌλ‘ μ νλ©λλ€. μμ νμΌμ μ΅λ ν¬κΈ°λ uwsgi_max_temp_file_size λͺ λ ΉμΌλ‘ μ€μ λ©λλ€.
Syntax: uwsgi_temp_path path [level1 [level2 [level3]]];
Default: uwsgi_temp_path uwsgi_temp;
Context: http, server, location
uwsgi μλ²μμ μμ λ λ°μ΄ν°μ ν¨κ» μμ νμΌμ μ μ₯νλ λλ ν°λ¦¬λ₯Ό μ μν©λλ€. μ§μ λ λλ ν°λ¦¬ μλ μ΅λ 3κ° μμ€μ νμ λλ ν°λ¦¬ κ³μΈ΅ ꡬ쑰λ₯Ό μ¬μ©ν μ μμ΅λλ€. μλ₯Ό λ€μ΄, λ€μ ꡬμ±μμ
uwsgi_temp_path /spool/nginx/uwsgi_temp 1 2;
μμ νμΌμ λ€μκ³Ό κ°μ μ μμ΅λλ€.
/spool/nginx/uwsgi_temp/7/45/00000123457
uwsgi_cache_path λͺ λ Ήμ use_temp_path λ§€κ°λ³μλ μ°Έμ‘°νμΈμ.