PHP如何搭建分布式架构,⼩型分布式LNMP平台架构搭建⼩型分布式LNMP平台架构搭建
最近想和⼏个朋友⼀起搞⼀个⼩⽹站的项⽬,作为运维⼯程师,搭环境的任务⾃然⽽然的就落到了我的肩膀上,由于我们的项⽬还处在幻想阶段,所以就不租服务器了,我们就在电脑上开个五六台虚机来先搭建⼀个开发环境好了。
为了以后和我们的线上环境⼀致(说的好像真的要上线似得),本屌决定搭建⼀个分布式的开发环境,由于本屌的笔记本性能有限,所以就使⽤5台虚机来实现了。总的架构很简单,前端⼀个nginx负责负载均衡和前端转发,后端两台服务器安装PHP作为应⽤服务器。剩两台服务器作为数据库服务器并配置主从同步。另外,本屌想在nginx服务器上搭建memcached和redis缓存,让缓存尽量靠近⽤户来提⾼访问速度(不过没这么搞过,不知道是不是有缺陷)。
接下来就是配置过程了,有⼀点是需要提⼀下的,我使⽤的linux系统是centos6.5,内核版本应该是2.3(具体记不清楚了),安装软件能⽤yum⽅式就⽤yum⽅式,别问我为什么不⽤源码⽅式(因为源码⽅式太⿇烦了,原谅我偷个懒吧)。
接下来进⼊正式的搭建过程,我会详细的记录我搭建的过程。
第⼀步,设置服务器主机名、IP地址,配置防⽕墙(我直接关了)和Selinux(我也直接关了)、⽹关、DNS。
nginx主机:
IP地址:10.60.77.200
主机名:nginx
⽹关:10.60.77.254
DNS:114.114.114.114
PHP-1主机:
IP地址:10.60.77.201
主机名:PHP-1
PHP-2主机:
IP地址:10.60.77.202
主机名:PHP-2
mysql-master主机:
IP地址:10.60.77.203
主机名:mysql-master
mysql-slave主机:
IP地址:10.60.77.204
主机名:mysql-slave
所有配置完毕后ping⼀下百度看看⽹络连通性是否正常。没有问题的话就进⼊第⼆步。
第⼆步,安装配置nginx主机
1、安装epel源
安装nginx官⽅yum源:
安装nginx:
[root@nginx ~]# yum -y install nginx
配置nginx负载均衡,将PHP请求转发给后端的PHP-1和PHP-2服务器。后端php服务器全部使⽤php-fpm监听9000端⼝。
server {
listen 80; //监听端⼝
server_name www.zhy; //⽹站域名
access_log /var/log/nginx/zhy.access.log main;
location / {
root /var/www/html; //⽹站根⽬录
index index.html index.htm index.php;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
root /var/www/html; //PHP⽂件根⽬录
fastcgi_pass all; //转发池名称,连接将转发到该池中的地址
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
}
}
upstream all {
ip_hash; //采⽤每按IP⽣成hash值,按hash分配到固定的后端服务器,解决session同步的问题server10.60.77.201:9000;
server10.60.77.202:9000;
}
fastcgi_params的内容为:
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
mysql配置与安装过程fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param HTTPS $https if_not_empty;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
//增加这⼀⾏内容
# PHP only, required if PHP was built with--enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;
⾄此,nginx配置基本完成,启动nginx并设置开机⾃启动。
第三步,部署应⽤服务器PHP-1、PHP-2
PHP-1和PHP-2是两台完全⼀样的服务器,所以两台服务器都使⽤同样的配置,两台服务器上安装php、php-fpm、php-mysql。两台服务器上同样要安装epel源,安装⽅法参照nginx部分。
安装完成epel源后,使⽤如下命令安装php、php-fpm:
[root@PHP-1 ~]#yum -y install php php-fpm php-mysql
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论