分离式lnmp简介
lnmp和lamp一样,是一种常用的web环境,
在实际环境中,lnmp中的三个服务常常为了更好的性能而分在三台主机上安装。
本篇内只介绍nginx和php-fpm+mysql分离的情况
环境
- nginx-192.168.83.128-lynk
- php-fpm+mysql-192.168.83.129-hyrule
安装nginx、php-fpm、mysql
安装过程可参考nginx简介与配置与lamp简介与配置
整合nginx与php-fpm
lynk端
[root@lynk www]# vim /usr/local/nginx/conf/nginx.conf
#添加一个虚拟主机
location ~ .php$ {
root /www; #这里我用的/www为php网页储存目录,可以改成其他的,只要把php网页放进相应的目录里就可以了
fastcgi_pass 192.168.83.129:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
[root@lynk www]# vim /usr/local/nginx/conf/fastcgi_params
#添加一条参数
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
hyrule端
[root@hyrule www]# vim /usr/local/php7/etc/php-fpm.d/www.conf
#有则修改,无则添加
listen = 9000
重启nginx和php-fpm后,在两个主机分别新建www目录,给予其权限。
[root@lynk ~]# mkdir /www
[root@lynk ~]# chown nginx.nginx /www/
[root@lynk ~]# cd /www
[root@lynk ~]# cat > index.php <EOF
<?php
phpinfo();
?>
EOF
[root@hyrule ~]# mkdir /www
#下面这条命令之前要先在hyrule新建一个nginx用户和nginx组,而且要保证两个主机里nginx用户和组的id相同
[root@hyrule ~]# chown nginx.nginx /www -R
[root@hyrule ~]# cd /www/
[root@hyrule ~]# cat > index.php <EOF
<?php
phpinfo();
?>
EOF
从上面可以看出来,如果想要让nginx正常读取php的网页,需要在nginx端和php端同时具有相同的网页文件,这样未免过于繁琐,而且容易出现有余网页不同导致的问题,我们可以通过nfs来共享/www目录避免网页不同步的问题。
具体nfs部署与配置请详看nfs简介与配置