Heim > Backend-Entwicklung > PHP-Tutorial > Richten Sie Nginx schnell ein und konfigurieren Sie seine Grundparameter

Richten Sie Nginx schnell ein und konfigurieren Sie seine Grundparameter

不言
Freigeben: 2023-04-03 06:18:01
Original
1832 Leute haben es durchsucht

Dieser Artikel stellt hauptsächlich die Konfiguration der schnellen Einrichtung von Nginx und seine grundlegenden Parameter vor. Er hat einen bestimmten Referenzwert. Jetzt können Freunde in Not darauf verweisen Grundparameter Parameter

1. Einführung in Nginx

1. Kurze Beschreibung von Nginx

Nginx ist ein Open-Source-, leistungsstarker und zuverlässiger HTTP-Middleware- und Proxy-Dienst.

2. Allgemeine HTTP-Dienste

    httpd – Apache
  • IIS – Microsoft
  • GWE – Google
  • Tomcat – Sun
  • 2. Warum Nginx wählen

1 Multiplexing epoll

Was ist IO-Multiplexing?

E/A-Operationen mehrerer Deskriptoren können gleichzeitig und nacheinander in einem Thread ausgeführt werden. Dies wird als E/A-Multiplexing bezeichnet „Multiplexen“ bezieht sich hier auf die Wiederverwendung desselben Threads.

Was ist Epoll

Die Implementierung von IO-Multiplexing: Auswählen, Abfragen, Epoll

Auswählen
Grundprinzip:

Die von der Auswahlfunktion überwachten Dateideskriptoren sind in drei Kategorien unterteilt, nämlich writefds, readfds undexclusivefds. Nach dem Aufruf blockiert die Auswahlfunktion, bis ein Deskriptor bereit ist (Daten sind lesbar, beschreibbar oder außer) oder es kommt zu einer Zeitüberschreitung (Zeitüberschreitung gibt die Wartezeit an und kann auf Null gesetzt werden, wenn sie sofort zurückkehrt) und die Funktion kehrt zurück. Wenn die Auswahlfunktion zurückkehrt, können Sie den fertigen Deskriptor finden, indem Sie fdset durchlaufen.

Auswählen Nachteile:

1. Es gibt eine Höchstgrenze für die Anzahl der Dateideskriptoren, die überwacht werden können. 2. Lineares Scannen ist ineffizient.

epoll
Grundprinzip:

epoll unterstützt horizontales Triggern und Edge-Triggering. Das größte Feature ist das Edge-Triggering, das nur die Prozess Welcher fd ist gerade fertig geworden und wird nur einmal benachrichtigt. Eine weitere Funktion besteht darin, dass epoll die Bereitschaftsbenachrichtigungsmethode „event“ verwendet, um den fd über epoll_ctl zu registrieren. Sobald der fd bereit ist, verwendet der Kernel einen rückrufähnlichen Rückrufmechanismus, um den fd zu aktivieren, und epoll_wait kann die Benachrichtigung empfangen.

Vorteile von epoll:

1. Es gibt keine Begrenzung für die maximale Anzahl gleichzeitiger Verbindungen und die Obergrenze der FDs, die geöffnet werden können, liegt weit über 1024 (1 GB Speicher). kann etwa 100.000 Ports überwachen). 2. Die Effizienz wird verbessert, es handelt sich nicht um eine Abfragemethode und die Effizienz nimmt nicht ab, wenn die Anzahl der FDs zunimmt.
3. Speicherkopie: Verwenden Sie den Dateizuordnungsspeicher mmap(), um die Nachrichtenübermittlung mit dem Kernel-Speicherplatz zu beschleunigen. Das heißt, epoll verwendet mmap, um den Kopieraufwand zu reduzieren.

2. Leichtgewichtler

Wenige Funktionsmodule

Code-Modularität

3. CPU Gute Affinität

CPU-Affinität ist eine Möglichkeit, den CPU-Kern an den Nginx-Workerprozess zu binden, jeden Workerprozess so festzulegen, dass er auf einer CPU ausgeführt wird, und den CPU-Cache-Fehler zu reduzieren, um eine bessere Leistung zu erzielen.

4. sendfile

3. Schnelle Einrichtung und Grundparameter von Nginx (CentOS7)

1. Installation mit yum [Referenz]

Erstellen/etc/yum.repos.d/nginx.repo Datei und geben Sie den folgenden Inhalt ein:

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/OS/OSRELEASE/$basearch/
gpgcheck=0
enabled=1
Nach dem Login kopieren
OS Optionale Werte sind centos und rhel.
OSRELEASE ist die Systemversion, zum Beispiel stehen 6 und 7 für die Versionen 6.x bzw. 7.x.

Ausführenyum install -y nginxNginx installieren

Ausführennginx -vNginx-Version anzeigen

[root~]# nginx -v
nginx version: nginx/1.14.0
Nach dem Login kopieren

2. Detaillierte Erklärung der Kompilierung Parameter

Kompilierungsparameter während der Nginx-Installation anzeigen

nginx -V
Nach dem Login kopieren
rrree

Detaillierte Erläuterung der Installations- und Kompilierungsparameter [Referenz]

Kompilierungsoption Funktion -- prefix=/etc/nginx Konfigurationsdateiverzeichnis --sbin-path=/usr/sbin/nginx Name und Verzeichnis der ausführbaren Datei --modules-path=/usr/lib64/nginx/modules Installationsverzeichnis des dynamischen Nginx-Moduls --conf-path=/etc/nginx/nginx.conf td> Der Name und das Verzeichnis der Hauptkonfigurationsdatei --error-log-path=/var/log/nginx/error.log Name und Verzeichnis der globalen Fehlerprotokolldatei --http-log-path=/var/log/nginx/access .log Der Name und das Verzeichnis der Hauptanforderungsprotokolldatei des HTTP-Servers --pid-path= /var/run/nginx.pid Das Verzeichnis, in dem sich nginx.pid befindet. Dies ist die Prozess-ID-Datei, in der der Hauptprozess gespeichert ist. --lock-path= /var/run/nginx.lock Verzeichnis, in dem sich nginx.lock befindet --http-client-body-temp -path=/var/cache/nginx/client_temp
编译选项 作用
--prefix=/etc/nginx 配置文件目录
--sbin-path=/usr/sbin/nginx 可执行文件名称和所在目录
--modules-path=/usr/lib64/nginx/modules nginx动态模块的安装目录
--conf-path=/etc/nginx/nginx.conf 主配置文件名称和所在目录
--error-log-path=/var/log/nginx/error.log 全局错误日志文件名称和所在目录
--http-log-path=/var/log/nginx/access.log HTTP服务器的主请求日志文件的名称和所在目录
--pid-path=/var/run/nginx.pid nginx.pid所在目录,这是储存主进程的进程ID文件
--lock-path=/var/run/nginx.lock nginx.lock所在目录
--http-client-body-temp-path=/var/cache/nginx/client_temp
--http-proxy-temp-path=/var/cache/nginx/proxy_temp
--http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp
--http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp
--http-scgi-temp-path=/var/cache/nginx/scgi_temp
执行对应模块时nginx所保留的临时文件
--user=nginx
--group=nginx
设定Nginx进程启动的用户和用户组
--with-http_random_index_module 目录中随机选择一个随机主页
--with-http_stub_status_module Nginx客户端状态
--with-http_sub_module HTTP内容替换
--with-cc-opt=<parameters> 设置额外的参数将被添加到CFLAGS变量
--with-ld-opt=<parameters> 设置附加参数,链接系统库
--http-proxy-temp-path=/var/cache/ nginx/proxy_temp

- -http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp

--http-uwsgi-temp-path =/var/cache/nginx/uwsgi_temp

--http-scgi-temp-path=/var/cache/nginx/scgi_temp Temporäre Datei, die von nginx beim Ausführen des entsprechenden Moduls beibehalten wird

--user=nginx--group=nginx code> Benutzer und Benutzergruppen für den Nginx-Prozessstart festlegen --with-http_random_index_module Wählen Sie zufällig eine zufällige Homepage im Verzeichnis aus --with-http_stub_status_module Nginx-Client-Status tr> - -with-http_sub_module HTTP-Inhaltsersetzung --with -cc-opt=<parameters> Das Festlegen zusätzlicher Parameter wird zur CFLAGS-Variable hinzugefügt --with -ld-opt=<parameters> Zusätzliche Parameter festlegen und Systembibliotheken verknüpfen 3 des Installationsverzeichnisses
默认路径 类型 作用
/etc/logrotate.d/nginx 配置文件 Nginx日志轮转,用于logrotate服务的日志切割
/etc/nginx
/etc/nginx/nginx.conf
/etc/nginx/conf.d
/etc/nginx/conf.d/default.conf
目录、配置文件 nginx主配置文件
/etc/nginx/fastcgi_params
/etc/nginx/uwsig_params
/etc/nginx/scgi_params
配置文件 cgi配置相关,fastcgi配置
/etc/nginx/koi-utf
/etc/nginx/koi-win
/etc/nginx/win-utf
配置文件 编码转换映射转化文件
/etc/nginx/mime.types 配置文件 设置http协议的Content-Type与扩展名对应关系
/usr/lib/systemd/system/nginx-debug.service
/usr/lib/systemd/system/nginx.service
/etc/sysconfig/nginx
/etc/sysconfig/nginx-debug
配置文件 用于配置出系统守护进程管理器管理方式
/usr/lib64/nginx/modules
/etc/nginx/mudules
目录 Nginx模块目录
/usr/sbin/nginx
/usr/sbin/nginx-debug
命令 Nginx服务的启动管理的终端命令
/usr/share/doc/nginx-1.14.0
/usr/share/doc/nginx-1.14.0/COPYRIGHT
/usr/share/man/man8/nginx.8.gz
文件、目录 Nginx手册和帮助文件
/var/cache/nginx 目录 Nginx缓存目录
/var/log/nginx 目录 Nginx日志目录
Nginx-Installationsort aller Dateien anzeigen
[root~]# nginx -V
nginx version: nginx/1.14.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC)
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled

configure arguments: 
--prefix=/etc/nginx 
--sbin-path=/usr/sbin/nginx 
--modules-path=/usr/lib64/nginx/modules 
--conf-path=/etc/nginx/nginx.conf 
--error-log-path=/var/log/nginx/error.log 
--http-log-path=/var/log/nginx/access.log 
--pid-path=/var/run/nginx.pid 
--lock-path=/var/run/nginx.lock 
--http-client-body-temp-path=/var/cache/nginx/client_temp 
--http-proxy-temp-path=/var/cache/nginx/proxy_temp 
--http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp 
--http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp 
--http-scgi-temp-path=/var/cache/nginx/scgi_temp 
--user=nginx 
--group=nginx 
--with-compat 
--with-file-aio 
--with-threads 
--with-http_addition_module 
--with-http_auth_request_module 
--with-http_dav_module 
--with-http_flv_module 
--with-http_gunzip_module 
--with-http_gzip_static_module 
--with-http_mp4_module 
--with-http_random_index_module 
--with-http_realip_module 
--with-http_secure_link_module 
--with-http_slice_module 
--with-http_ssl_module 
--with-http_stub_status_module 
--with-http_sub_module 
--with-http_v2_module 
--with-mail 
--with-mail_ssl_module 
--with-stream 
--with-stream_realip_module 
--with-stream_ssl_module 
--with-stream_ssl_preread_module 
--with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC' 
--with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie'
Nach dem Login kopieren
rrree/usr/sbin/nginx/usr/sbin/nginx-debug/usr/share/doc/nginx-1.14.0/usr/share/ doc/nginx-1.14.0/COPYRIGHT/usr/share/man/man8/nginx.8.gz
Standardpfad Typ Funktion
/etc/logrotate.d/nginx td> Konfigurationsdatei Nginx-Protokollrotation, wird zum Protokollschneiden des Logrotate-Dienstes verwendet
/etc/nginx /etc/nginx/nginx.conf<code>/etc/nginx/conf.d/etc/nginx/conf.d /default.conf Verzeichnis, Konfigurationsdatei nginx-Hauptkonfigurationsdatei
/etc/ nginx/fastcgi_params/etc /nginx/uwsig_params/etc/nginx/scgi_params Konfigurationsdatei td> CGI-Konfigurationsbezogen, FastCGI-Konfiguration
/etc/nginx/koi-utf/etc/nginx /koi-win/ etc/nginx/win-utf Konfigurationsdatei Kodierungskonvertierungszuordnungskonvertierungsdatei
/ etc/nginx/mime.types Konfigurationsdatei Legen Sie die entsprechende Beziehung zwischen dem Inhalt fest. Typ und Erweiterung des http-Protokolls
/usr/lib/systemd/system/nginx-debug.service/usr /lib/systemd/system/nginx.service/etc/sysconfig/nginx/etc/sysconfig/nginx-debug td> Konfigurationsdatei wird verwendet, um die Verwaltungsmethode des Ausgabe-System-Daemon-Managers zu konfigurieren
/usr/lib64/nginx/modules /etc/nginx/mudules code> Verzeichnis Nginx-Modulverzeichnis
Befehl Terminalbefehl für die Startverwaltung des Nginx-Dienstes
Dateien, Verzeichnisse Nginx-Handbuch und Hilfedateien
/var/cache/nginx Verzeichnis Nginx-Cache-Verzeichnis
/var/log/nginx Verzeichnis Nginx-Protokollverzeichnis

4. Allgemeine Nginx-Befehle

命令 解释
nginx [-c <配置文件>] 以指定的配置文件启动nginx
nginx -s quit 正常停止nginx,Nginx在退出前完成已经接受的连接请求。
nginx -s stop 快速停止nginx,不管有没有正在处理的请求。
nginx -s reload [-c <配置文件>] 重载配置文件
nginx -s reopen 重新打开日志文件
nginx -v 查看版本
nginx -V 查看安装时的编译参数
nginx -t [-c <配置文件>] 检查配置文件语法是否正确

nginx -s  reload Der Befehl lädt die geänderte Konfigurationsdatei. Nachdem der Befehl ausgegeben wurde, treten die folgenden Ereignisse auf

  1. Der Masterprozess von Nginx überprüft die Richtigkeit der Konfigurationsdatei. Wenn sie falsch ist, wird eine Fehlermeldung zurückgegeben und Nginx verwendet weiterhin die ursprüngliche Konfigurationsdatei (da der Worker dies nicht tut). betroffen)

  2. Nginx startet einen neuen Worker-Prozess und verwendet eine neue Konfigurationsdatei

  3. Nginx weist dem neuen Worker-Prozess neue Anfragen zu

  4. Nginx wartet auf den vorherigen. Nachdem alle Anfragen vom Worker-Prozess zurückgegeben wurden, schließen Sie den entsprechenden Worker-Prozess.

  5. Wiederholen Sie den obigen Vorgang, bis alle alten Worker-Prozesse zurückgegeben wurden sind geschlossen

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website !

Verwandte Empfehlungen:

Nginx-Ladeplaner + duale Tomcat-Last- und Sitzungsfreigabe + MySQL-Backend-Datenbank

Das obige ist der detaillierte Inhalt vonRichten Sie Nginx schnell ein und konfigurieren Sie seine Grundparameter. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage