Heim  >  Artikel  >  Backend-Entwicklung  >  Erklärung der dynamischen und statischen Trennungsoperation von Nginx

Erklärung der dynamischen und statischen Trennungsoperation von Nginx

小云云
小云云Original
2018-03-29 09:33:564519Durchsuche

Nginx verfügt über starke statische Verarbeitungsfähigkeiten, aber unzureichende dynamische Verarbeitungsfähigkeiten. Daher werden in Unternehmen häufig dynamische und statische Trennungstechnologien verwendet. Die dynamische und statische Trennungstechnologie verwendet tatsächlich eine Proxy-Methode und fügt einen Speicherort mit regelmäßigem Abgleich im Abschnitt server{} hinzu, um übereinstimmende Elemente anzugeben. Dynamische und statische Trennung für PHP: Statische Seiten werden zur Verarbeitung an Nginx übergeben, und dynamische Seiten werden übergeben zur Verarbeitung an das PHP-FPM-Modul oder Apache übergeben. In der Nginx-Konfiguration werden über den Standortkonfigurationsabschnitt und den regelmäßigen Abgleich unterschiedliche Verarbeitungsmethoden für statische und dynamische Seiten implementiert.


Erklärung der dynamischen und statischen Trennungsoperation von Nginx

1. Projektkurzbeschreibung

Bereitstellen von WordPress, um die dynamische Trennung der gesamten Website zu realisieren und Folgendes zu erreichen Anforderungen:

1. Der Front-End-Nginx empfängt die statische Anfrage und gibt sie direkt von NFS an den Client zurück.

2. Der Front-End-Nginx empfängt die dynamische Anfrage und leitet sie zur Verarbeitung über FastCGI an den PHP-Server weiter.

----Wenn Sie ein statisches Ergebnis erhalten, rufen Sie das Ergebnis direkt von NFS ab, geben Sie es an Nginx weiter und geben Sie es dann an den Client zurück.

----Wenn eine Datenverarbeitung erforderlich ist, stellt der PHP-Server eine Verbindung zur Datenbank her und gibt die Ergebnisse an Nginx zurück

3. Das Front-End-Nginx empfängt die Bildanforderung und sendet sie als .jpg, .png, .gif usw. Wird vom Backend-Bilderserver verarbeitet.

Erklärung der dynamischen und statischen Trennungsoperation von Nginx

2. Gesamtarchitekturdiagramm

Erklärung der dynamischen und statischen Trennungsoperation von Nginx

3. Konfigurationsdetails

1.NFS-Serverkonfiguration

vim /etc/exports
/app/blog   10.10.0.0/24(ro,sync,root_squash,no_all_squash) # 只允许内网网段挂载,提高安全性。

cd /app/blog                                                # 将wordpress文件解压
tar  -xvf  wordpress-4.8.1-zh_CN.tar.gz

2.Nginx-Serverkonfiguration

Zuallererst beide Nginx und PHP-Server zum Mounten von NFS. Erzielen Sie eine einheitliche Bereitstellung und bequeme Verwaltung

mounten Sie 10.10.0.72:/app/blog /app/blog # Mounten Sie NFS/app/blog im lokalen /app/blog

und konfigurieren Sie dann Nginx

Nginx ist hauptsächlich die Konfiguration des Standorts auf dem Server. Konfigurieren Sie den Speicherort, um die Datei mit der Endung .php an den PHP-Server zu übergeben. Geben Sie diejenigen, die auf .jpg oder gif enden, an Image weiter. Andere Konfigurationen können auf den Standardeinstellungen belassen werden.

vim /etc/nginx/nginx.conf
http {
    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  /var/log/nginx/access.log  main;
    sendfile                on;
    tcp_nopush           on;
    tcp_nodelay             on;
    keepalive_timeout   65;
    types_hash_max_size 2048;
    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;
    include /etc/nginx/conf.d/*.conf;
    server {
        listen       80 default_server;
        server_name  www.shuaiguoxia.com;
        index index.php index.html;
        root /app/blog;                                     # 根目录为挂载的NFS的挂载点
        include /etc/nginx/default.d/*.conf;
        location ~* \.php$ {                                # location匹配将php结尾的交给PHP服务器
                fastcgi_pass 10.10.0.22:9000;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME /app/blog$fastcgi_script_name;
                include fastcgi_params;
        } 
        location ~* \.(jpg|gif)$ {                          # location匹配将图片交给Image处理
                proxy_pass http://10.10.0.23:80;            # Image服务器要开启web服务
        }
        error_page 404 /404.html;
            location = /40x.html {
        }
        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }

3.PHP-Serverkonfiguration

PHP服务器的配置比较简单,主要讲PHP以FPM模式安装后进行简单的配置即可

yum install php-fpm php-mysql
vim /etc/php-fpm.d/www.conf
listen = 9000                                   # 只写监听端口,即监听所有IP
listen.allowed_clients = any                    # 允许所有IP进行访问。或者将这行注释。

4.MySQL服务器

yum install marirdb-server
/usr/local/mysql/bin/myhsql_secure_installation         #MySql初始化脚本,以下为每一项的翻译
  是否设置root密码
  输入密码
  确认密码
  是否设置匿名用户
  是否允许root远程登录
  删除test数据库
  现在是否生效
 
mysql -uroot -p 

create database wpdb;                                   # 创建wp数据库
grant all on wpdb.* to wpadm@'10.10.%' idenfied by 'centos';    # 授权用户。用户不存在系统会自动创建

5.Image服务器配置

yum install nginx                               # 安装Nginx
cd /app/image                                   # 将所有图片解压至此路径。图片的目录结构要保持原样
tar  -xvf  wordpress-4.8.1-zh_CN.tar.gz
 server {
        root      /app/image;                   # 仅仅修改根目录这一行即可。Httpd同理
        }                                       # 如果使用apache要注意在CentOS7下默认拒绝所有
nginx start                                     # 启动服务

6.配置wordpress

cp wp-config-sample.php wp-config.php           # 复制一个模板文件后改名作为主配置文件

vim wp-config.php
/** WordPress数据库的名称 */  
define('DB_NAME', 'wpdb');                      # wpdb为MySQL中创建的数据库

/** MySQL数据库用户名 */
define('DB_USER', 'wpadm');                     # wpadm为MySQL中授权的用户

/** MySQL数据库密码 */
define('DB_PASSWORD', 'centos');                # 授权用户的密码

/** MySQL主机 */
define('DB_HOST', '10.10.0.24');                # MySQL主机地址

至此配置就已经完成。达到了图片从图片服务器返回,静态nginx直接返回,动态交给PHP进行处理。

总结

1.前端Nginx要做好location匹配,将*.php与*.jpg等进行反向代理。

2.后端PHP服务器要修改配置文件,PHP自带配置文件只监听本地,且只允许本地访问

3.后端Image服务器,不论是apache还是Nginx要开启WEB服务。根目录要指向图片根目录,且根目录下的图片要与原本图片文件目录结构一致。

Verwandte Empfehlungen:

Nginx dynamische und statische Trennung klassische Fallkonfiguration

Das obige ist der detaillierte Inhalt vonErklärung der dynamischen und statischen Trennungsoperation von Nginx. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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