nginx LNMP架构配置与动静分离
0.叠甲
Linux萌新,有错轻喷,敬请斧正。
1.思想,要点以及主机分配
#1.动静结合
分离动态资源和静态资源,从而提升服务器可维护性以及性能。

牛马示意图
#2.要点
nginx端和php端的根目录需要同步,否则不能显示某些静态文件。此处笔者建议使用的是NFS挂载。
#3.主机分配
本次实验中用到三台虚拟机
192.168.126.130 nginx端
192.168.126.131 php端
192.168.126.132 mysql端
2.详细配置
#1.nginx端配置
#安装nginx略 #进入nginx配置文件 server { listen 80; server_name localhost; access_log logs/host.access.log main; location / { root /usr/local/nginx/html; index index.html index.htm index.php; #此处要指定访问index.php } location ~ \.php$ { root /usr/local/php5/apps; fastcgi_pass 192.168.126.131:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } #启动nginx systemctl start nginx
参数解析:
fastcgi_pass:这个命令是指定将http代理到哪个fastcgi服务端接口。fastcgi_pass后面是填写fastcgi服务端地址的,这个地址可以是域地址,也可以是Uninx-域套接字。
fastcgi_index: fastcgi默认的主页资源,示例:fastcgi_index index.php;这个功能和index index.html功能一样。当SCRIPT_FILENAME没有命中脚本的时候,使用的就是fastcgi_index设置的脚本。
fastcgi_param: 这个命令是设置 fastcgi 请求中的参数,具体设置的东西可以在 PHP 的 $_SERVER 中获取到。
#2.php端配置
##1.安装
yum install libxml2 yum install libxml2-devel -y yum install libpng -y yum install libpng-devel tar xf php-5.6.30.tar.gz cd php-5.6.30 ./configure --prefix=/usr/local/php5 --with-gd --with-zlib --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-config-file-path=/usr/local/php5 --enable-mbstring --enable-fpm make && make install cd /usr/local/php5/etc/ cp php-fpm.conf.default php-fpm.conf
##2.配置
useradd nginx -M -s /sbin/nologin #重要步骤 cd /usr/local/php5/etc egrep -v '^;|^ *$' php-fpm.conf.default > php-fpm.conf vim php-fpm.conf [global] [www] user = nginx group = nginx listen = 9000 pm = dynamic pm.max_children = 50 pm.start_servers = 5 pm.min_spare_servers = 5 pm.max_spare_servers = 10 #启动 /usr/local/php5/sbin/php-fpm
参数解析:
user,group:进程的发起用户和用户组,用户user是必须设置,group不是
listen:监听的ip和端口
pm = dynamic:选择进程池管理器如何控制子进程的数量。static是对于子进程的开启数路给定一个锁定的值(pm.max_children),dynamic是子进程的数目为动态的,它的数目基于下面的指令的值(以下为dynamic适用参数)。
pm.start_servers = 5:在启动时启动的子进程数量
pm.min_spare_servers: 处于空闲"idle"状态的最小子进程,如果空闲进程数量小于这个值,那么相应的子进程会被创建
pm.max_spare_servers: 最大空闲子进程数量,空闲子进程数量超过这个值,那么相应的子进程会被杀掉。
##3.NFS配置
#php作为NFS主机
#创建php文件夹,并挂载到nginx端。挂载位置是nginx端的根目录(我是/usr/local/nginx/html/)
#3.mysql端配置
##1.mysql安装略
##2.建立一个数据库
create database wordpress;
##3.创建mysql账号,并给php的端口开放权限
grant all privileges on wordpress.* to 'wordpress'@'192.168.126.131' IDENTIFIED BY 'Jsxhxhj123!';
#4.测试连接
##1.nginx端和php端
php创建测试脚本
mkdir /usr/local/php5/apps vim /usr/local/php5/apps/index.php <?php phpinfo(); ?>
之后让nginx端访问

##2.php端和mysql端
php端建立测试文件
cat /usr/local/php5/app/index.php <?php mysql_connect('192.168.10.201','wordpress','Qfedu2203.') or die('failed'); echo 'success' ; ?>
nginx端访问,如果显示“success”即为配置成功
#5.php端部署wordpress
##1.下载wordpress并解压到php存储目录
##2.访问nginx端ip地址进行应用安装
##3.安装过程中可能出现“抱歉,我不能写入wp-config.php文件”
手动在php存储目录(也就是和nginx同步的那个目录)创建一个wp-config.php,并将提示信息中的设置粘贴进去,然后加上“?>”
