社交网站部署——Nginx服务器+PHP服务器搭建+MySQL主从集群

案例概述

某公司的社交网站采用PHP语言开发,为了管理PHP程序员开发的代码,上级领导要求搭建SVN服务器进行版本控制。社交网站的第一个版本部署在LNMP平台之上,前端为Nginx服务器,通过fastcgi协议访问后端的PHP服务器。为了保证数据安全,要求搭建MySQL数据库主从集群。

社交网站项目包含用户的相册功能,允许用户上传照片,上传照片需要使用共享存储来存放。针对共享存储可用的开源方案有很多,如MFS、FastDFS 等。公司决定使用MFS分布式文件系统来实现,并将MFS挂载在PHP服务器的相关目录下。

案例实施

根据公司的需求,实施过程大致分为以下步骤。

  • 部署SVN服务器,为PHP程序员创建repo目录的访问账户,通知程序员可以导入代码。
  • 部署MySQL主从服务器,根据PHP程序员的要求创建数据库与表。
  • 部署Nginx服务器。部署PHP服务器。
  • 部署MFS,将MFS文件系统挂载在前端PHP服务器的相关目录下。
  • 通知上线部署人员可以发布上线。

部署Nginx服务器

1、Nginx服务器安装
yum -y install pcre-devel zlib-devel gcc gcc-c++ make        //安装环境包依赖包
useradd -M -s /sbin/nologin nginx         //创建管理用户

tar xzvf nginx-1.6.0.tar.gz -C /opt

cd /opt/nginx-1.6.0/

 ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module             

make && make install
2、修改Nginx配置

需要配置后端PHP程序的fastcgi访问接口

vim /usr/local/nginx/conf/nginx.conf       //配置后端PHP程序的fastcgi访问接口

location / {
            root   html/webphp;
            index  index.html index.htm;
        }

location ~ \.php$ {
        root           /var/www/html/webphp;
        fastcgi_pass   192.168.43.117:9000;         //PHP服务器 IP地址:端口
        fastcgi_index  index.php;
        include        fastcgi.conf;
}

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/    //方便管理,建立软链接

3、开启Nginx
nginx          //开启Nginx
netstat -antp | grep nginx
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      6502/nginx: master

systemctl stop firewalld.service
setenforce 0             //关闭防火墙和安全功能

#nginx -t       //检查
#nginx          //启动
#killall -1 nginx   //重启
#killall -3 nginx   //停止

部署PHP服务器

1、安装PHP,并且通过配置php-fpm进程监听9000端口来接受Nginx的请求
yum -y install gd libxml2-devel libjpeg-devel libpng-devel zlib-devel mysql-devel bzip2-devel gcc gcc-c++ make        //安装环境包,依赖包

useradd -M -s /sbin/nologin php       //创建管理用户
tar xzvf php-5.3.28.tar.gz -C /opt/
cd /opt/php-5.3.28/
cp /usr/lib64/mysql/libmysqlclient.so.18.0.0 /usr/lib/libmysqlclient.so       //PHP默认去/usr/lib搜索libmysqlclient.so

./configure --prefix=/usr/local/php --with-gd --with-zlib --with-mysql --with-mysqli --with-mysql-sock --with-config-file-path=/usr/local/php --enable-mbstring --with-jpeg-dir=/usr/lib --enable-fpm

make && make install
2、修改php-fpm.conf文件来接受Nginx请求
cd /usr/local/php/etc/
cp php-fpm.conf.default php-fpm.conf    //配置php-fpm 进程监听9000端口来接受nginx请求

vim php-fpm.conf
......
pid = run/php-fpm.pid
user = php
group = php
listen = 0.0.0.0:9000
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
3、开启服务并测试
/usr/local/php/sbin/php-fpm        //开启php-fpm进程
netstat -ntap | grep 9000
tcp        0      0 0.0.0.0:9000            0.0.0.0:*               LISTEN      104389/php-fpm: mas

systemctl stop firewalld.service
setenforce 0         //关闭防火墙和安全功能

4、创建测试页面,浏览器访问测试
mkdir -p /var/www/html/webphp
vim /var/www/html/webphp/index.php

<?php
phpinfo();
?>

浏览器输入:http://192.168.43.222/index.php 验证

MySQL主从集群

参考博文:http://blog.51cto.com/13620936/2150981

原文地址:http://blog.51cto.com/13641879/2151785

时间: 2024-12-27 00:13:37

社交网站部署——Nginx服务器+PHP服务器搭建+MySQL主从集群的相关文章

Docker搭建MySQL主从集群,基于GTID

写在前边 搭建MySQL读写分离主从集群,这里未使用binlog方式,使用的是GTID方式 源码见我的Github https://github.com/hellxz/mysql-cluster-docker.git 主从目录结构 . ├── bin │?? ├── add-slave-account-to-master.sh │?? ├── reset-slave.sh │?? ├── slave-replias-master-start.sh │?? └── stop-replicas.sh

搭建mysql主从集群的步骤

前提条件是:须要在linux上安装4个mysql数据库,都须要配置完对应的信息. 须要搭建: mysql 01: 主数据库  master mysql 02 :   从数据库  slave01 mysql 03 :   从数据库  slave02 mysql 04 :   从数据库  slave03 第一步: 在主server上的my.cnf 上编辑 二进制文件格式:log-bin=mysql-bin; 二进制的格式: binlog-format=mixed 第二步: 在从server上: 有几

Step By Step 搭建 MySql MHA 集群

关于MHA ?? MHA(Master High Availability)是一款开源的mysql高可用程序,目前在mysql高可用方面是一个相对成熟的解决方案.MHA 搭建的前提是MySQL集群中已经搭建了MySql Replication环境,有了Master/Slave节点.MHA的主要作用就是监测到Master节点故障时会提升主从复制环境中拥有最新数据的Slave节点成为新的master节点.同时,在切换master期间,MHA会通过从其他的Slave节点来获取额外的信息来避免一致性的问

基于MMM搭建MySQL Replication集群高可用架构

MMM介绍 MMM是Multi-Master Replication Manager for MySQL的缩写,它是MySQL提供的一个多主复制管理器,其核心是使用perl语言编写的一组脚本.实际上MMM是比较早期甚至有点老的一种用于构建高可用MySQL架构的方式,但因其还有一定的应用场景,所以本文将会演示一下如何搭建一个MMM架构. MMM 由两个组件组成: monitor:监控集群内数据库的状态,在出现异常时发布切换命令,一般和数据库分开部署 agent:运行在每个 MySQL 服务器上的代

MySQL集群---②Windows平台搭建MySQL CLUSTER集群

本文将通过两台电脑来简单介绍一下Windows平台如何搭建MySQL集群. MySQL集群支持多台电脑,本文搭建的MySQL集群以两台机子为例,其中一台(IP为192.168.24.33)部署管理节点.数据节点和SQL节点,另一台(IP为192.168.24.82)部署数据节点和SQL节点. 实际应用中,不要将管理节点跟数据节点部署到一台机子上,因为如果数据节点宕机会导致管理节点不可用,同时整个MySQL群集也就都不可用了.所以一个MySQL群集理想情况下至少有三台服务器,将管理节点单独放到一台

使用MySQL-Cluster搭建MySQL数据库集群

1.MySQL集群的作用: - 解决访问节点的单点故障 - 数据存储节点的单点故障 - 解决数据存储节点数据备份问题 2.集群: 使用一组服务器提供相同的服务 3.关于MySQL-Cluster: MySQL官方提供的集群版本 已集成标准版MySQL程序,可独立安装使用 采用NDB(Network DataBase)引擎 假定每个节点都有独立内存.硬盘 利用廉价硬件减少整个数据库的单点故障 4.集群中服务器的角色 - 数据节点:ndbd(单线程) ndb_mtd(多线程)   存储数据的(表里的

基于MHA搭建MySQL Replication集群高可用架构

原文地址:https://blog.51cto.com/zero01/2468767

如何搭建一个 MySQL 分布式集群

1.准备集群搭建环境 使用6台虚拟机来搭建 MySQL分布式集群 ,相应的实验环境与对应的MySQL节点之间的对应关系如下图所示: 管理节点(MGM):这类节点的作用是管理MySQLCluster内的其他节点,如提供配置数据,并停止节点,运行备份等.由于这类节点负责管理其他节点的配置,应该在启动其他节点之前启动这类节点.MGM节点是用命令"ndb_mgmd"启动的: 数据节点(NDB):这类节点用于保存Cluster的数据,数据节点的数目与副本的数目相关,是片段的倍数.例如,对于两个副

社交网站部署——SVN服务器搭建并发布上线

案例概述 某公司的社交网站采用PHP语言开发,为了管理PHP程序员开发的代码,上级领导要求搭建SVN服务器进行版本控制.社交网站的第一个版本部署在LNMP平台之上,前端为Nginx服务器,通过fastcgi协议访问后端的PHP服务器.为了保证数据安全,要求搭建MySQL数据库主从集群. 社交网站项目包含用户的相册功能,允许用户上传照片,上传照片需要使用共享存储来存放.针对共享存储可用的开源方案有很多,如MFS.FastDFS 等.公司决定使用MFS分布式文件系统来实现,并将MFS挂载在PHP服务