Główny moduł HTTP Nginx
14 July 2008
Comments
Poniżej opisana jest lista podstawowych dyrektyw konfigurujących zachowane serwera.daemon
Składnia: daemon on | offDomyślnie: on
daemon off;
Nie używaj "daemon" i "master_process" na serwerach produkcyjnych.debug_points
Składnia: debug_points [stop | abort]Domyślnie: none
debug_points stop;
Wewnątrz nginxa istnieją punkty umożliwiające zatrzymanie go i podłączenie debugera lub przerwanie działania.error_log
Składnia: error_log file [ debug | info | notice | warn | error | crit ]Domyślnie: ${prefix}/logs/error.log
Jeżeli zbudowałeś nginx z --with-debug możesz użyć:
error_log LOGFILE [ debug_core | debug_alloc | debug_mutex | debug_event | debug_http | debug_imap];
include
Składnia: include file | *Domyślnie: none
Możesz dołączać dodatkowe pliki konfiguracyjne:
include vhosts/*.conf;
lock_file
Ścieżki są względne względem ścieżki podanej przy ./configure dla --prefix=ŚCIEŻKA. Domyślnie jest to /usr/local/nginx. Zaleca się stosowanie ścieżek absolutnych.Składnia: lock_file file
Domyślnie: compile-time option
lock_file /var/log/lock_file;
Nginx używa accept mutex do serializacji wywołań accept(). Jeżeli skompilowałeś serwer za pomocą gcc, Intel C++ lub SunPro C++ na i386, amd64, sparc64 i ppc64 wtedy nginx używa instrukcji atomowych do zaimplementowania mutexa. W innych przypadkach używany jest plik blokujący (lock file).master_process
Składnia: master_process on | offDomyślnie: on
master_process off;
Nie używaj "daemon" i "master_process" na serwerach produkcyjnych. pid
Składnia: pid fileDomyślnie: compile-time option
pid /var/log/nginx.pid;
Plik pid. Można go wykorzystać dla komendy kill, np. by przeładować konfigurację: kill -HUP `cat /var/log/nginx.pid\`ssl_engine
Składnia: ssl_engine engineDomyślnie: system dependent
Możesz określić preferowany silnik openssl jeżeli są jakieś dostępne. Dostępne silniki można wypatrzeć za pomocą openssl engine -t
$ openssl engine -t (cryptodev) BSD cryptodev engine [ available ] (dynamic) Dynamic engine loading support [ unavailable ]
timer_resolution
Składnia: timer_resolution tDomyślnie: none
timer_resolution 100ms;
Ta dyrektywa umożliwia ograniczenie liczby wywołań gettimeofday(). Domyślnie gettimeofday() jest wywoływane za każdym razem gdy kevent(), epoll, /dev/poll, select(), poll() zwrócą wynik. Gdy jednak potrzebujesz dokładnego czasu w logach przy zapisywaniu $upstream_response_time lub $msec variables wtedy użyj powyższej dyrektywy.user
Składnia: user użytkownik [grupa]Domyślnie: nobody nobody
Jeżeli główny proces działa z użytkownika root to nginx wykorzysta setuid()/setgid() do przejścia na odpowiedniego UŻYTKOWNIKA/GRUPĘ. Jeżeli grupa nie będzie podana to przyjmie tą samą nazwę jak nazwa użytkownika. Domyślnie jest to nobody/nobody lub dane podane przy ./configure --user=USER and --group=GROUP
user www users;
worker_cpu_affinity
Składnia: worker_cpu_affinity cpumask [cpumask...]Domyślnie: none
Tylko dla Linuksa. Za pomocą tej dyrektywy możesz przypisać proces workera do danego CPU. Wywołuje sched_setaffinity()
worker_proceses 4; worker_cpu_affinity 0001 0010 0100 1000;
worker_proceses 2; worker_cpu_affinity 0101 1010;
worker_priority
Składnia: worker_priority [-]liczbaDomyślnie: on
Możesz ustawić priorytet dla procesów workerów (nice). Wywołuje setpriority().
worker_processes
Składnia: worker_processes liczbaDomyślnie:
worker_processes 5;
nginx może używać więcej niż jednego workera. Ma to swoje zalety: przy używaniu SMP, do zmniejszenia opóźnień gdy worker czeka na operacje I/O na dysku, by zmniejszyć ilość połączeń przypadających na proces gdy używane jest select()/poll(). "worker_processes" i "worker_connections" z sekcji "event" pozwala na wyliczenie wartości "max_clients":
max_clients = worker_processes * worker_connections
worker_rlimit_core
Składnia: worker_rlimit_core rozmiarDomyślnie:
Maksymalny rozmiar pliku głównego (core file) dla workera.
worker_rlimit_nofile
Składnia: worker_rlimit_nofile limitDomyślnie:
Określa wartość maksymalnej ilości deskryptorów pliku, które mogą być otwarte przez dany proces.
worker_rlimit_sigpending
Składnia: worker_rlimit_sigpending limitDomyślnie:
Linuks dla kernela od 2.6.8. Określa limit sygnałów jakie mogą być zakolejkowane dla ID prawdziwego użytkownika procesu.
working_directory
Składnia: working_directory ścieżkaDomyślnie: --prefix
Określa katalog dla workerów, tylko dla głównych plików (core files).
RkBlog
Comment article