Nginx は強力な静的処理能力を備えていますが、動的処理能力が不十分であるため、企業では動的と静的な分離技術が一般的に使用されています。動的および静的分離テクノロジーでは、実際にはプロキシ メソッドが使用され、サーバー セクションに通常の一致を伴う場所を追加して、一致する項目を指定します。PHP の動的および静的分離: 静的ページは処理のために Nginx に渡され、動的ページは渡されます。 PHP-FPM モジュールまたは Apache に転送して処理します。 Nginx 構成では、場所の構成セクションと定期的なマッチングを通じて、静的ページと動的ページの異なる処理方法が実装されます。
1. プロジェクトの概要
Web サイト全体の動的と静的な分離を実現するために wordpress をデプロイし、次の要件を達成します: 1. フロントエンド Nginx が静的リクエストを受け取り、それを直接返します。 NFS からクライアントへ。 2. フロントエンド Nginx は動的リクエストを受信し、FastCGI を介して処理するために PHP サーバーに転送します。 ----静的な結果を取得した場合は、結果を NFS から直接取得して Nginx に渡し、クライアントに返します。 ----データ処理が必要な場合、PHP サーバーはデータベースに接続し、結果を Nginx に返します3 フロントエンドの Nginx は画像リクエストを受信し、処理のためにバックエンドの画像サーバーに渡します。 .jpg、.png、.gif、その他のリクエストの形式で。2. 全体的なアーキテクチャ図
3. 構成の詳細
1. NFS サーバーの構成
2. Nginx サーバーの構成
まず第一に、両方の Nginxおよび PHP サーバー NFS をマウントします。統合された展開と便利な管理を実現しますmount 10.10.0.72:/app/blog /app/blog # NFS/app/blog をローカルの /app/blog にマウントします次に Nginx を設定します Nginx は主にサーバーにあります 場所の設定。 .php で終わるファイルを PHP サーバーに渡す場所を構成します。 Image には .jpg または gif で終わるものを渡します。他の構成はデフォルトのままにすることができます。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
3.PHPサーバーの設定
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服务。根目录要指向图片根目录,且根目录下的图片要与原本图片文件目录结构一致。
関連する推奨事項:
以上がNginxの動的・静的分離動作説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。