这个架构比较简单,不做过多的说明
前端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. mac用virtualbox 装win7联网及分辨率设置

    1.关掉虚拟机,进入设置 2.选择网络->NAT方式->高级->控制芯片选择 1000MT 桌面,其他默认勾选 通过安装增强功能,可以随意改变分辨率,但是系统和远程连接后,东西都被缩 ...

  2. The type xxx cannot be resolved. It is indirectly referenced from required .class files

    项目A中引入一个jar包B,在项目A中调用项目B,出现如下错误提示:   大致意思是:这上面所需的包是间接引用的,即A项目调用B项目,B项目又引用了另外一个包C,而这个包现在不在你的A项目的引用中. ...

  3. C/c++输入输出函数

    最全输入函数 c/c++一:c=getchar();功能:读入一个字符说明:调用此函数时要求在程序的第一行有预编译命令:#include<stdio>,不过在做c++时 有#include ...

  4. LingPipe-TextClassification(文本分类)

    What is Text Classification? Text classification typically involves assigning a document to a catego ...

  5. View的个得区域函数getHitRect,getDrawingRect,getLocalVisibleRect,getGlobalVisibleRect(*)

    注意: OnCreate()函数中 调用下面函数,结果全为0,要等UI控件都加载完了才能得到绘制时的值. getHitRect 以父控件的左上为原点,计算当前view在父控件的区域,不管父控件在屏幕的 ...

  6. 新浪实时股票数据接口http://hq.sinajs.cn/list=code

    股票数据的获取目前有如下两种方法可以获取:1. http/javascript接口取数据2. web-service接口 1.http/javascript接口取数据1.1Sina股票数据接口以大秦铁 ...

  7. Android中View转换为Bitmap及getDrawingCache=null的解决方法

    1.前言 Android中经常会遇到把View转换为Bitmap的情形,比如,对整个屏幕视图进行截屏并生成图片:Coverflow中需要把一页一 页的view转换为Bitmap.以便实现复杂的图形效果 ...

  8. bzoj1221: [HNOI2001] 软件开发

    挖坑.我的那种建图方式应该也是合理的.然后连样例都过不了.果断意识到应该为神奇建图法... #include<cstdio> #include<cstring> #includ ...

  9. Material Design 设计--阴影的重要性

    <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_cont ...

  10. FFmpeg解码H264及swscale缩放详解

    本文概要: 本文介绍著名开源音视频编解码库ffmpeg如何解码h264码流,比较详细阐述了其h264码流输入过程,解码原理,解码过程.同时,大部分应用环境下,以原始码流视频大小展示并不是最佳方式,因此 ...