Dieser Artikel stellt hauptsächlich ein Beispiel vor, wie nginx eine dynamische und statische Trennung erreichen kann, was einen gewissen Lernwert hat. Die Details sind wie folgt Umfeld:
Deaktivieren Sie die Firewall auf den drei Hosts [root@server1 ~]# systemctl stoppe Firewall [root@server1 ~]# systemctl Firewall deaktivieren [root@server1 ~]# vim /etc/selinux/config SELINUX=deaktiviert Stellen Sie nginx auf Server1 bereit[root@server1 opt]# cat nginx.sh #!/bin/bash wenn [ $UID -ne 0 ];dann echo "Bitte Administratorkonto verwenden" Ausfahrt fi app_a=nginx-1.20.1.tar.gz dir_a=/usr/local dir_b=/var/log dir_c=nginx-1.20.1 wenn [ ! -d $dir_b/nginx ];dann mkdir -p $dir_b/nginx fi chown -R nginx.nginx $dir_b/nginx yum -y installiere pcre-devel openssl openssl-devel gd-devel gcc gcc-c++ make yum -y groups mark install 'Entwicklungstools' ID nginx &>/dev/null wenn [ $? -ne 0 ];dann Benutzeradd -r -M -s /sbin/nologin nginx fi tar xf bag/$app_a -C $dir_a cd $dir_a/$dir_c wenn [ ! -d $dir_a/nginx ];dann ./konfigurieren \ --prefix=$dir_a/nginx \ --Benutzer=nginx \ --group=nginx \ --mit-debug \ --mit-http_ssl_module \ --mit-http_realip_module \ --mit-http_image_filter_module \ --mit-http_gunzip_module \ --mit-http_gzip_static_module \ --mit-http_stub_status_module \ --http-log-path=$dir_b/nginx/access.log \ --error-log-path=$dir_b/nginx/error.log && make && make install fi CD .. wenn [ ! -f /etc/profile.d/nginx.sh ];dann echo "export PATH=$dir_a/nginx/sbin:\$PATH" > /etc/profile.d/nginx.sh fi Katze > /usr/lib/systemd/system/nginx.service << EOF [Einheit] Beschreibung=Nginx-Server-Daemon Will=sshd-keygen.target [Service] Typ=Forking ExecStart=$dir_a/nginx/sbin/nginx ExecStop=$dir_a/nginx/sbin/nginx -s stoppen ExecReload=/bin/kill -HUP $MAINPID [Installieren] WantedBy=Mehrbenutzer.Ziel Ende der Laufzeit systemctl daemon-reload systemctl aktivieren --now nginx Anschlüsse anzeigen [root@server1 ~]# ss -antl Status Recv-Q Send-Q Lokale Adresse:Port Peer-Adresse:Port LISTEN 0 128 0.0.0.0:22 0.0.0.0:* LISTEN 0 128 0.0.0.0:80 0.0.0.0:* HÖREN 0 128 [::]:22 [::]:* Seite besuchen Bereitstellen von lnmp auf dem ServerBereitstellen von nginx [root@server2 lnmp]# cat install.sh #!/bin/bash wenn [ $UID -ne 0 ];dann echo "Bitte Administratorkonto verwenden" Ausfahrt fi app_a=nginx-1.20.1.tar.gz dir_a=/usr/local dir_b=/var/log dir_c=nginx-1.20.1 wenn [ ! -d $dir_b/nginx ];dann mkdir -p $dir_b/nginx fi chown -R nginx.nginx $dir_b/nginx yum -y installiere pcre-devel openssl openssl-devel gd-devel gcc gcc-c++ make yum -y groups mark install 'Entwicklungstools' ID nginx &>/dev/null wenn [ $? -ne 0 ];dann Benutzeradd -r -M -s /sbin/nologin nginx fi tar xf bag/$app_a -C $dir_a cd $dir_a/$dir_c wenn [ ! -d $dir_a/nginx ];dann ./konfigurieren \ --prefix=$dir_a/nginx \ --Benutzer=nginx \ --group=nginx \ --mit-debug \ --mit-http_ssl_module \ --mit-http_realip_module \ --mit-http_image_filter_module \ --mit-http_gunzip_module \ --mit-http_gzip_static_module \ --mit-http_stub_status_module \ --http-log-path=$dir_b/nginx/access.log \ --error-log-path=$dir_b/nginx/error.log && make && make install fi CD .. wenn [ ! -f /etc/profile.d/nginx.sh ];dann echo "export PATH=$dir_a/nginx/sbin:\$PATH" > /etc/profile.d/nginx.sh fi Katze > /usr/lib/systemd/system/nginx.service << EOF [Einheit] Beschreibung=Nginx-Server-Daemon Will=sshd-keygen.target [Service] Typ=Forking ExecStart=$dir_a/nginx/sbin/nginx ExecStop=$dir_a/nginx/sbin/nginx -s stoppen ExecReload=/bin/kill -HUP $MAINPID [Installieren] WantedBy=Mehrbenutzer.Ziel Ende der Laufzeit systemctl daemon-reload systemctl aktivieren --now nginx MySQL bereitstellen [root@server2 lnmp]# cat mysql.sh #!/bin/bash wenn [ $UID -ne 0 ];dann echo "Wurzel?" Ausfahrt fi dir_a=/usr/local dir_b=/opt/data app_a=mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz app_b=mysql-5.7.34-linux-glibc2.12-x86_64 id mysql &>/dev/null wenn [ $? -ne 0 ];dann useradd -r -M -s /sbin/nologin mysql fi yum -y installiere ncurses-compat-libs ncurses-devel openssl-devel openssl cmake mariadb-devel wenn [ ! -d $dir_a/$app_b ];dann tar xf bag/$app_a -C $dir_a fi wenn [ ! -d $dir_a/mysql ];dann ln -sv $dir_a/$app_b $dir_a/mysql fi chown -R mysql:mysql $dir_a/mysql* echo "export PATH=$dir_a/mysql/bin:\$PATH" > /etc/profile.d/mysql.sh Quelle /etc/profile.d/mysql.sh wenn [ ! -d /$dir_b ];dann mkdir -p /$dir_b chown -R mysql.mysql /$dir_b fi Inhalt=$(ls $dir_b | wc -l) wenn [ $content -eq 0 ];dann mysqld --initialize-insecure --user mysql --datadir $dir_b fi Katze > /etc/my.cnf <<EOF [mysqld] basedir = $dir_a/mysql Datenverzeichnis = $dir_b Socket = /tmp/mysql.sock Port = 3306 pid-Datei = $dir_b/mysql.pid Benutzer = MySQL Namensauflösung überspringen Ende der Laufzeit sed -ri "s#^(basedir=).*#\1$dir_a/mysql#g" $dir_a/mysql/support-files/mysql.server sed -ri "s#^(datadir=).*#\1$dir_b#g" $dir_a/mysql/support-files/mysql.server Katze > /usr/lib/systemd/system/mysqld.service <<EOF [Einheit] Beschreibung=MySQL-Server-Daemon Nach=Netzwerk.Ziel [Service] Typ=Forking ExecStart=$dir_a/mysql/support-files/mysql.server start ExecStop=$dir_a/mysql/support-files/mysql.server stoppen ExecReload=/bin/kill -HUP $MAINPID [Installieren] WantedBy=Mehrbenutzer.Ziel Ende der Laufzeit systemctl daemon-reload systemctl aktivieren --now mysqld PHP bereitstellen https://www.php.net/distributions/php-8.0.10.tar.xz Entpacken [root@server2 ~]# tar -xf php-8.0.10.tar.gz -C /usr/local/ Installieren von Abhängigkeitspaketen [root@server2 ~]# wget http://mirrors.aliyun.com/repo/epel-7.repo [root@server1 ~]# yum -y installiere libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libicu-devel libjpeg libjpeg-devel libpng libpng-devel openldap-devel pcre-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel mhash mhash-devel php-mysqlnd libsqlite3x-devel libzip-devel [root@server2 ~]# yum -y install http://mirror.centos.org/centos/8-stream/PowerTools/x86_64/os/Packages/oniguruma-devel-6.8.2-2.el8.x86_64.rpm Kompilieren und installieren [root@server2 ~]# cd /usr/local/php-8.0.10/ [root@server2 php-8.0.10]# ./configure --prefix=/usr/local/php8 --with-config-file-path=/etc --enable-fpm --disable-debug --disable-rpath --enable-shared --enable-soap --with-openssl --enable-bcmath --with-iconv --with-bz2 --enable-calendar --with-curl --enable-exif --enable-ftp --enable-gd --with-jpeg --with-zlib-dir --with-freetype --with-gettext --enable-mbstring --enable-pdo --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-readline --enable-shmop --enable-simplexml --enable-sockets --with-zip --enable-mysqlnd-compression-support --with-pear --enable-pcntl --enable-posix ...... ...... ...... config.status: ext/phar/phar.phar.1 wird erstellt config.status: main/php_config.h erstellen config.status: Standardbefehle ausführen +--------------------------------------------------------------------+ | Lizenz: | | Diese Software unterliegt der PHP-Lizenz, verfügbar hier | | Verteilung in der Datei LICENSE. Durch die Fortsetzung dieser Installation | | Durch die Nutzung dieses Prozesses sind Sie an die Bedingungen dieser Lizenzvereinbarung gebunden. | | Wenn Sie mit den Bedingungen dieser Lizenz nicht einverstanden sind, müssen Sie abbrechen | | den Installationsvorgang an dieser Stelle. | +--------------------------------------------------------------------+ Vielen Dank für die Verwendung von PHP. [root@server2 php-8.0.10]# machen ....... ....... ....... invertedregexiterator.inc pharcommand.inc phar.inc Bau abgeschlossen. Vergessen Sie nicht, „make test“ auszuführen. [root@server2 php-8.0.10]# make install ...... ...... /root/php-8.0.10/build/shtool install -c ext/phar/phar.phar /usr/local/php8/bin/phar.phar ln -s -f phar.phar /usr/local/php8/bin/phar PDO-Header installieren: /usr/local/php8/include/php/ext/pdo/ Konfigurieren Sie php-fpm [root@server2 php-8.0.10]# cp /etc/php.ini /opt/ [root@server2 php-8.0.10]# cp php.ini-Produktion /etc/php.ini cp: '/etc/php.ini' überschreiben? y [root@server2 php-8.0.10]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm [root@server2 php-8.0.10]# chmod +x /etc/init.d/php-fpm [root@server2 php-8.0.10]# cd .. [root@server2 lokal]# cd php8/ [root@server2 php8]# cd etc/ [root@server2 usw.]# cp php-fpm.conf.default php-fpm.conf [root@server2 usw.]# cp php-fpm.d/www.conf.default php-fpm.d/www.conf [root@server2 usw.]# cd php-fpm.d [root@server2 php-fpm.d]# ls www.conf www.conf.default Konfigurieren von Umgebungsvariablen [root@server2 ~]# echo 'export PATH=/usr/local/php8/bin:$PATH' > /etc/profile.d/php.sh [root@server2 ~]# cat /etc/profile.d/php.sh export PATH=/usr/local/php8/bin:$PATH [root@server2 ~]# Quelle /etc/profile.d/php.sh [root@server2 ~]# welches php /usr/local/php8/bin/php Schreiben von Servicedateien [root@server2 ~]# cat /usr/lib/systemd/system/php-fpm.service [Einheit] Beschreibung=php-fpm-Server-Daemon Nach=Netzwerk.Ziel [Service] Typ=Forking ExecStart=/etc/init.d/php-fpm starten ExecStop=/etc/init.d/php-fpm stoppen ExecReload=/bin/kill -HUP $MAINPID [Installieren] [root@server2 ]# systemctl daemon-reload Starten Sie PHP [root@server2 ~]# systemctl start php-fpm [root@server2 ~]# ss -antl Status Recv-Q Send-Q Lokale Adresse:Port Peer-Adresse:Port LISTEN 0 128 127.0.0.1:9000 0.0.0.0:* LISTEN 0 128 0.0.0.0:80 0.0.0.0:* LISTEN 0 128 0.0.0.0:22 0.0.0.0:* HÖREN 0 80 *:3306 *:* HÖREN 0 128 [::]:22 [::]:* Konfigurieren Sie virtuelle Hosts in nginx.conf [root@server2 ~]# cd /usr/local/nginx/html/ [root@server2 html]# ls 50x.html index.html [root@server2 html]# vim index.php [root@server2 html]# cat index.php <?php phpinfo(); ?> [root@server2 conf]# pwd /usr/local/nginx/conf [root@server2 conf]# vim nginx.conf ........ http { mime.types einschließen; Standardtyp Anwendung/Oktett-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 Protokolle/access.log Haupt; sendfile an; ...... Standort / { Stamm-HTML; index.php index.html index.htm; } ..... Standort ~ \.php$ { Stamm-HTML; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $Dokumentstammsatz$fastcgi_script_name; fastcgi_params einschließen; } [root@server2 conf]# nginx -s neu laden Zugang Stellen Sie httpd auf Knoten3 bereit[root@node3 ~]# yum -y installiere httpd Start-up [root@node3 ~]# systemctl start httpd [root@node3 ~]# ss -antl Status Recv-Q Send-Q Lokale Adresse:Port Peer-Adresse:Port HÖREN 0 128 *:22 *:* LISTEN 0 100 127.0.0.1:25 *:* HÖREN 0 128 :::80 :::* HÖREN 0 128 :::22 :::* HÖREN 0 100 ::1:25 :::* Zugang Implementieren einer separaten BereitstellungKonfigurieren Sie nginx.conf auf Server1 [root@server1 ~]# cat /usr/local/nginx/conf/nginx.conf #Benutzer niemand; Arbeiterprozesse 1; #error_log Protokolle/Fehler.log; #error_log Protokolle/error.log Hinweis; #error_log Protokolle/error.log-Info; #pid-Protokolle/nginx.pid; Ereignisse { Arbeiterverbindungen 1024; } http { mime.types einschließen; Standardtyp Anwendung/Oktett-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 Protokolle/access.log Haupt; sendfile an; #tcp_nopush ein; #keepalive_timeout 0; KeepAlive-Timeout 65; #gzip ein; Upstream cm { #statische Ressourcenadresse Server 192.168.244.142; } Upstream nm { #dynamische Ressourcenadresse Server 192.168.244.133; } Server { hören Sie 80; Servername localhost; #Zeichensatz koi8-r; #access_log Protokolle/Host.access.log Haupt; Standort / { proxy_pass http://cm; #auf statisch zeigen} #Fehlerseite 404 /404.html; # Server-Fehlerseiten auf die statische Seite /50x.html umleiten # Fehlerseite 500 502 503 504 /50x.html; Standort = /50x.html { Stamm-HTML; } # Proxy für die PHP-Skripte an Apache, das auf 127.0.0.1:80 lauscht # Standort ~ \.php$ { #auf dynamischen Proxy-Pass http://nm zeigen; } [root@server1 ~]# nginx -s neu laden Besuchen Sie 192.168.244.131 Beim Zugriff auf 192.168.244.131/index.php Dies ist das Ende dieses Artikels über das Beispiel, wie dynamische und statische Trennung in nginx erreicht werden kann. Weitere relevante Inhalte zur dynamischen und statischen Trennung in nginx finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder durchsuchen Sie die verwandten Artikel weiter unten. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Die endgültige Lösung für Chromes Mindestschriftgrößenbeschränkung von 12px
>>: js realisiert eine schrittweise zunehmende digitale Animation
1. Ubuntu Server 18.04.5 LTS-Systeminstallation U...
Heute stellen wir mehrere Möglichkeiten vor, mit ...
Der vorherige Artikel war eine einfache Überprüfu...
1. Erklärung zur Datendesensibilisierung Bei den ...
Ich persönlich denke, dass die dekomprimierte Ver...
Dieser Artikel zeichnet das Installations- und Ko...
Keepalive wird häufig zum Caching in Vue-Projekte...
Das Anordnungslayout zum Ausrichten der beiden En...
HTML hat versucht, sich von der Präsentation weg ...
Bei der Installation von FileZilla Server auf dem...
Nehmen wir ein Benutzerverwaltungssystem an, bei ...
@Font-face grundlegende Einführung: @font-face ist...
1 Überprüfen Sie, ob der Kernel ein Tun-Modul hat...
Inhaltsverzeichnis $.ajax von jQuery Der Beginn d...
Ich bin heute auf ein seltsames Netzwerkproblem g...