这个架构比较简单,不做过多的说明
前端1台Nginx:负载均衡+nfs
中间2台php:php-fpm
后端1台数据库:MySQL

安装略,参考lnmp最新源码一键安装包
192.168.112安装Tengine
192.168.1.113/192.168.1.115安装php
192.168.1.114安装MySQL

nfs配置
nfs服务端:192.168.1.112
检查nfs否已安装,这里我已经都安装了。

[root@linux2 ~]# rpm -qa | grep nfs
nfs-utils-1.0.9-66.el5
nfs-utils-lib-1.0.8-7.9.el5
[root@linux2 ~]# rpm -qa | grep portmap
portmap-4.0-65.2.2.1

如果你检查发现没有安装,可以使用一下命令进行安装;

yum -y install nfs-utils portmap
cat /etc/exports
/home/wwwroot 192.168.1.0/24(rw)

设置固定端口,方便配置iptables

cat >>/etc/sysconfig/nfs << EOF
RQUOTAD_PORT=50001
LOCKD_TCPPORT=50002
LOCKD_UDPPORT=50002
MOUNTD_PORT=50003
STATD_PORT=50004
EOF
iptables -I INPUT 5-s 192.168.1.0/24-p tcp -m state --state NEW -m tcp --dport 111-j ACCEPT
iptables -I INPUT 6-s 192.168.1.0/24-p udp --dport 111-j ACCEPT
iptables -I INPUT 7-s 192.168.1.0/24-p tcp -m state --state NEW -m tcp --dport 2049-j ACCEPT
iptables -I INPUT 8-s 192.168.1.0/24-p udp --dport 2049-j ACCEPT
iptables -I INPUT 9-s 192.168.1.0/24-p tcp -m state --state NEW -m tcp --dport 50001:50004-j ACCEPT
iptables -I INPUT 10-s 192.168.1.0/24-p udp --dport 50001:50004-j ACCEPT
service iptables save

开机自动启动nfs

chkconfig portmap on
chkconfig nfs on
service portmap start
service nfs start

现在看看启动的端口:

rpcinfo -p localhost

nfs客户端:192.168.1.113,192.168.1.115

yum -y install portmap
chkconfig portmap on
service portmap start

查看远程nfs共享信息

showmount -e 192.168.1.112

在/etc/fstab配置文件中添加如下,开机自动挂载

192.168.1.112:/home/wwwroot  /home/wwwroot      nfs     defaults        00

重新读取/etc/fstab配置文件挂载所有

mount -a

数据库:192.168.1.114
如:举例网站程序是discuz,创建数据库、赋权,让php能远程访问,如下:

# mysql -uroot -p
mysql> create database linuxeye_bbs;
mysql> grant all privileges on linuxeye_bbs.* to linuxeye_user@'192.168.1.%' identified by 'linuxeye_password';
mysql> flush privileges;

iptables配置

iptables -I INPUT 5-s 192.168.1.0/24-p tcp -m state --state NEW -m tcp --dport 3306-j ACCEPT
service iptables save

php:192.168.113
lnmp脚本用的是本机127.0.0.1,为了支持让前端Tengine访问,修改配置文件/usr/local/php/etc/php-fpm.conf

listen =192.168.1.113:9000
listen.allowed_clients =192.168.1.112
service php-fpm restart

iptables配置

iptables -I INPUT 5-s 192.168.1.112-p tcp -m state --state NEW -m tcp --dport 9000-j ACCEPT
service iptables save

php:192.168.115
同理,修改/usr/local/php/etc/php-fpm.conf

listen =192.168.1.115:9000
listen.allowed_clients =192.168.1.112
service php-fpm restart

iptables配置

iptables -I INPUT 5-s 192.168.1.112-p tcp -m state --state NEW -m tcp --dport 9000-j ACCEPT
service iptables save

Tengine:192.168.112
配置Tengine负载均衡,在主配置文件/usr/local/tengine/conf/nginx.conf中http段添加如下

        upstream cluster_discuz {
ip_hash;
server 192.168.1.112:9000;
server 192.168.1.115:9000;}

添加虚拟主机文件
运行lnmp/vhost.sh,创建虚拟主机(我这里添加的直接是ip192.168.1.112)
修改虚拟主机配置文件/usr/local/tengine/conf/vhost/192.168.1.112.conf

location ~.*\.(php|php5)?$  {
fastcgi_pass cluster_discuz;
fastcgi_index index.php;
include fastcgi.conf;}

重启nginx

service nginx restart

原文地址:http://blog.linuxeye.com/358.html

PHP网站简单架构 – 单独跑php-fpm的更多相关文章

  1. 阅读《大型网站技术架构》,并结合"重大需求征集系统"有感

    今天阅读了<大型网站技术架构:核心原理与案例分析>的第五.六.七章.这三张主要是讲述了一个系统的可用性.伸缩性和可扩展性.而根据文中所讲述的,一个系统的可用性主要是体现在这个系统的系统服务 ...

  2. JavaWeb网站技术架构

    JavaWeb网站技术架构总结   题记 工作也有几多年了,无论是身边遇到的还是耳间闻到的,多多少少也积攒了自己的一些经验和思考,当然,博主并没有太多接触高大上的分布式架构实践,相对比较零碎,随时补充 ...

  3. 【PC网站前端架构探讨系列】关于中小型PC网站前端架构方案的讨论与实践

    目   录 1.遇到的问题 2.目标 3.探讨 4.架构设想 5.流程 6.初步实现 7.存在问题 8.最后 遇到的问题 我在这个系列上篇文章 已经讲解并开始逐步应用模块化思想,不知大家还记不记得,题 ...

  4. 大型网站技术架构介绍--squid

    一.大型网站技术架构介绍 1.pv高  ip高 并发量 2.大型网站架构重点    1. 高性能:响应时间,TPS,系统性能计数器.缓存,消息队列等.     高可用性High Availabilit ...

  5. 浅谈Web网站的架构演变过程

    前言 我们以javaweb为例,来搭建一个简单的电商系统,看看这个系统可以如何一步步演变.   该系统具备的功能:   用户模块:用户注册和管理 商品模块:商品展示和管理 交易模块:创建交易和管理 阶 ...

  6. Java面试题精选,大型网站系统架构你不得不懂的10个问题

    作者:JavaGuide(公众号) 下面这些问题都是一线大厂的真实面试问题,不论是对你面试还是说拓宽知识面都很有帮助.之前发过一篇8 张图读懂大型网站技术架构 可以作为不太了解大型网站系统技术架构朋友 ...

  7. P9架构师讲解从单机至亿级流量大型网站系统架构的演进过程

    阶段一.单机构建网站 网站的初期,我们经常会在单机上跑我们所有的程序和软件.此时我们使用一个容器,如tomcat.jetty.jboos,然后直接使用JSP/servlet技术,或者使用一些开源的框架 ...

  8. 阿里P9架构师讲解从单机至亿级流量大型网站系统架构的演进过程

    阶段一.单机构建网站 网站的初期,我们经常会在单机上跑我们所有的程序和软件.此时我们使用一个容器,如tomcat.jetty.jboos,然后直接使用JSP/servlet技术,或者使用一些开源的框架 ...

  9. 基于React的PC网站前端架构分析

    代码地址如下:http://www.demodashi.com/demo/12252.html 本文适合对象 有过一定开发经验的初级前端工程师: 有过完整项目的开发经验,不论大小: 对node有所了解 ...

随机推荐

  1. 设置MySQL主从同步

    1. 配置主服务器 1.1 编辑my.cnf文件,配置主服务器ID. [mysqld] log-bin=mysql-bin server-id=1relay-log = relay-bin relay ...

  2. JAVA调用易信接口向指定好友推送消息(一)背景需求

    众所周知,中国电信内部一直使用易信群进行交流 各种工作交流都在易信群里面沟通 包括投诉处理,障碍报修,拍照上传 最重要的就是每天甚至每个时点的指标完成情况的通报 所以只能用4个字来形容 String ...

  3. POJ 3687 Labeling Balls【拓扑排序 优先队列】

    题意:给出n个人,m个轻重关系,求满足给出的轻重关系的并且满足编号小的尽量在前面的序列 因为输入的是a比b重,但是我们要找的是更轻的,所以需要逆向建图 逆向建图参看的这一篇http://blog.cs ...

  4. SVN备份及其还原 — dump/load方法

    本文中采用最简单的dump/load方法.备份:一个较大的Subsersion版本库想用最少的空间来将它备份下来,用这个命令(请将/repo替换成你的版本库路径)svnadmin dump --del ...

  5. I.MX6 Ethernet UI patch failed

    /*********************************************************************** * I.MX6 Ethernet UI patch f ...

  6. django - settings

    1.doc - https://docs.djangoproject.com/en/1.6/topics/settings/ from django.conf import settings # 加载 ...

  7. ASP.NET MVC模型部分验证

    在很多情况下,我们为了代码的复用可能会存在ViewModel共用的情形.比方说,web应用中常常会遇到的一个需求就是用户找回密码的功能.用户首先要验证通过验证邮箱(通常是用户名)来获取验证码,然后再进 ...

  8. 门户网站架构Nginx+Apache+MySQL+PHP+Memcached+Squid

    服务器的大用户量的承载方案 一.前言二.编译安装三. 安装MySQL.memcache四. 安装Apache.PHP.eAccelerator.php-memcache五. 安装Squid六.后记 一 ...

  9. 查询MySQL锁等待的语句

    select 'Blocker' role,    p.id,    p.user,    left(p.host, locate(':', p.host) - 1) host,    tx.trx_ ...

  10. RecordWriter接口解析

    RecordWriter是将Map/Reduce结果(Key-Value)输出到文件系统中. /** * <code>RecordWriter</code> writes th ...