当前位置: 首页 > news >正文

Nginx动静分离实验步骤

服务器分配

IP功能软件
192.168.11.8共享服务器NFS服务
192.168.11.9网络入口,数据转发,静态文件Nginx服务
192.168.11.10处理动态数据PHP-FPM
192.168.11.11图片服务器Nginx服务
192.168.11.12数据库服务MySQL服务

二、配置详解

1.NFS服务器配置

IP: 192.168.11.8

# CentOS7安装NFS
yum -y install nfs-utils# Ubuntu安装NFS
apt install -y nfs-kernel-server# 创建共享目录
mkdir -p /app/blog# 修改共享配置
vim /etc/exports
# 只允许内网网段挂载,提高安全性。
/app/blog   192.168.11.0/24(rw,sync,root_squash,no_all_squash,no_subtree_check)# Ubuntu 重启服务
systemctl restart nfs-kernel-server
systemctl enable nfs-kernel-server# CentOS7 重启服务
sudo systemctl start rpcbind nfs-server
sudo systemctl enable rpcbind nfs-server# 下载wordpress文件
wget http://192.168.57.200/Software/wordpress-6.6.1-zh_CN.zip
# 解压
unzip wordpress-6.6.1-zh_CN.zip
# 发送到共享数据
cp -r wordpress/*  /app/blog
# 进入共享数据
cd /app/blog

2.Nginx服务器配置

IP: 192.168.11.9

首先Nginx与PHP服务器都要挂载NFS。实现统一部署方便管理

# CentOS7安装依赖
yum install nfs-utils# Ubuntu安装依赖依赖
apt install -y nfs-common# 使用脚本安装Nginx
wget http://192.168.57.200/Software/nginx_install.sh
bash nginx_install.sh# 创建共享目录
mkdir -p /app/blog# 将NFS的/app/blog挂载至本地的/app/blog
mount 192.168.11.8:/app/blog /app/blog

然后再配置Nginx

Nginx主要是server中的location的配置。配置location将.php结尾的交给PHP服务器。将.jpg、gif结尾的交给Image。其他配置按默认即可。

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.test.com;index index.php index.html;root /app/blog;                                         # 根目录为挂载的NFS的挂载点include /etc/nginx/default.d/*.conf;location ~* \.php$ {                                       # location匹配将php结尾的交给PHP服务器fastcgi_pass 192.168.11.10:9000;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME /app/blog$fastcgi_script_name;include fastcgi_params;}location ~* \.(jpg|gif|png|webp)$ {                                   # location匹配将图片交给Image处理proxy_pass http://192.168.11.11;  # Image服务器要开启web服务}error_page 404 /404.html;location = /40x.html {}error_page 500 502 503 504 /50x.html;location = /50x.html {}}

3.PHP服务器配置

IP: 192.168.11.10

# CentOS7安装依赖
yum install nfs-utils# Ubuntu安装依赖
apt install -y nfs-common# 创建共享目录
mkdir -p /app/blog# 将NFS的/app/blog挂载至本地的/app/blog
mount 192.168.11.8:/app/blog /app/blog

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

# CentOS7
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum -y install mod_php72w.x86_64 php72w-cli.x86_64 php72w-common.x86_64 php72w-mysqlnd php72w-fpm.x86_64
vim  /etc/php-fpm.d/www.conf# Ubuntu
sudo apt update
sudo apt install php-fpm php-mysql
vim /etc/php/8.1/fpm/pool.d/www.conf# 只写监听端口,即监听所有IP
listen = 9000
# 将这行注释,可以允许所有IP进行访问,否则只能本机访问。
; listen.allowed_clients = 127.0.0.1systemctl start php-fpm
systemctl enable php-fpm

4.Image服务器配置

IP: 192.168.11.11

# CentOS7安装依赖
yum install nfs-utils
wget http://192.168.57.200/Software/nginx_install.sh
bash nginx_install.sh# Ubuntu安装Nginx和nfs-common
sudo apt install nginx  nfs-common -y# 创建共享目录
mkdir -p /app/blog# 将NFS的/app/blog挂载至本地的/app/blog
mount 192.168.11.8:/app/blog /app/blogserver {root      /app/blog;   # 仅仅修改根目录这一行即可。Httpd同理} # 如果使用apache要注意在CentOS7下默认拒绝所有systemctl restart nginx     # 重启服务

5.MySQL服务器

IP: 192.168.11.12

# Ubuntu apt安装
apt -y install mysql-server# 或者二进制安装
wget http://192.168.57.200/Software/mysql_install.sh
bash mysql_install.sh# 创建wordpress数据库与远程账号
mysql -uroot -pCREATE DATABASE wordpress charset utf8mb4;
CREATE USER 'wordpress'@'192.168.11.%' IDENTIFIED BY 'admin1234';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress'@'192.168.11.%';
FLUSH PRIVILEGES;

6.配置wordpress

cp wp-config-sample.php wp-config.php           # 复制一个模板文件后改名作为主配置文件vim wp-config.php
/** WordPress数据库的名称 */
define('DB_NAME', 'wordpress');                      # wpdb为MySQL中创建的数据库/** MySQL数据库用户名 */
define('DB_USER', 'wordpress');                     # wpadm为MySQL中授权的用户/** MySQL数据库密码 */
define('DB_PASSWORD', 'admin1234');                # 授权用户的密码/** MySQL主机 */
define('DB_HOST', '192.168.8.24');                # MySQL主机地址

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

 ①配置完了之后去浏览器搜索http://192.168.11.11/wordpress​​​​​​

②然后就根据表格信息填写自己在第五台MySQL服务器上创建的用户创建的密码

③没有报错的话就在192.168.11.8这台虚拟机里cd /app/blog 在这个路径里创建新文件 vim wp-config.php 在这个文件里添加让添加的东西,保存退出

④下一步就根据提示填写东西

 ⑤最后出现这张图片就成功了

总结

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

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

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


文章转载自:

http://OmMhye9r.rmtbh.cn
http://xc1H38mK.rmtbh.cn
http://Jwc7EDdb.rmtbh.cn
http://OVgbShaQ.rmtbh.cn
http://NLJR6vHu.rmtbh.cn
http://yfoYiSFm.rmtbh.cn
http://k7JtqCgd.rmtbh.cn
http://wG08bhc5.rmtbh.cn
http://dSvCGflw.rmtbh.cn
http://6OPh87aC.rmtbh.cn
http://pRYESNnQ.rmtbh.cn
http://Spwi0iMg.rmtbh.cn
http://fCHiyK8t.rmtbh.cn
http://Iu0aAHRH.rmtbh.cn
http://XyvUihEI.rmtbh.cn
http://DttHmPLY.rmtbh.cn
http://jAgJYUQl.rmtbh.cn
http://Tdg6CRaH.rmtbh.cn
http://AISevZTt.rmtbh.cn
http://Yrnd2GwR.rmtbh.cn
http://ib6AHHA4.rmtbh.cn
http://HPJWfqa4.rmtbh.cn
http://j3VERONR.rmtbh.cn
http://xH3fjLC2.rmtbh.cn
http://yuU7LhG3.rmtbh.cn
http://k1juYcKY.rmtbh.cn
http://rcQ1hd1P.rmtbh.cn
http://uKfVDQcW.rmtbh.cn
http://wlF4Ea6G.rmtbh.cn
http://7WfZlt9a.rmtbh.cn
http://www.dtcms.com/a/388462.html

相关文章:

  • 硬件驱动——I.MX6ULL裸机启动(7)(ADC相关设置)
  • 重读生成概率模型1----基础概念
  • File (文件)• Open (打开)•
  • DNS 服务原理与部署实战:从基础到主从架构搭建
  • 《黑夜君临》网络测试:XSX表现优于PS5及PS5 Pro
  • HDLBits-移位寄存器
  • C++宽度优先搜索算法(BFS算法):FloodFill问题模型
  • ThreadLocal 的工作原理
  • Windows 11 下载安装 CosyVoice2,一键启动
  • 《Vuejs设计与实现》第 16 章(解析器) 下
  • JavaSE——图书系统项目
  • PHP 中 Class 的使用说明
  • Android入门到实战(九):实现书架页——RecyclerView + GridLayoutManager + 本地数据库
  • 日常开发-20250917
  • 基于SpringBoot+Vue的近郊农场共享管理系统(Echarts图形化分析)
  • AI开发实战:从数据准备到模型部署的完整经验分享
  • 【漏洞预警】大华DSS数字监控系统 user_edit.action 接口敏感信息泄露漏洞分析
  • RFID赋能光伏电池片制造智能化跃迁
  • 大数据 + 分布式架构下 SQL 查询优化:从核心技术到调优体系
  • FPGA硬件设计-DDR
  • 卫星通信天线的跟踪精度,含义、测量和计算
  • 忘记MySQL root密码,如何急救并保障备份?
  • Java 异步编程实战:Thread、线程池、CompletableFuture、@Async 用法与场景
  • 贪心算法应用:硬币找零问题详解
  • while语句中的break和continue
  • 10cm钢板矫平机:一场“掰直”钢铁的微观战争
  • Python实现计算点云投影面积
  • C++底层刨析章节二:迭代器原理与实现:STL的万能胶水
  • 学习Python中Selenium模块的基本用法(14:页面打印)
  • 便携式管道推杆器:通信与电力基础设施升级中的“隐形推手”