本机连接opc server有部分数据不刷新_原创:NGINX/动静分离/LB/rewrite–第一部分(LAMP)(关注)...

Nginx反向代理、动静分离、负载均衡及rewrite隐藏路径详解(Nginx Apache MySQL Redis)–第一部分(LAMP)


及时关注,下期更新第二部分


Nginx反向代理、动静分离、负载均衡及rewrite隐藏路径详解

(Nginx Apache MySQL Redis)

一、实验简述

1.1 基本环境介绍

以下实验使用5台虚拟机,均为centos 6.8,发布Discuz开源论坛。

Nginx(192.168.8.134)

LAP-1(192.168.8.135)

LAP-2(192.168.8.136)

MYSQL-Master(192.168.8.137)

MYSQL-Slave(192.168.8.138)

Redis-Master(192.168.8.139)

Redis-Slave(192.168.8.140)

1.2 拓扑结构

263e3301789d11ad35f7e1c5b56384c1.png

整理网络拓扑图

二、环境搭建

2.1 源码安装LAP

2.1.1 编译安装Apache

LAP(Linux Apache PHP)使用源码安装,当然亦可YUM安装

[root@localhost ~]# yum install apr-devel apr-util-devel -y

注:安装编译Apache需要的依赖包,若没有gcc 请安装gcc gcc-c++

[root@localhost ~]# cd /usr/local/src/

[root@localhost src]# wget http://mirror.bit.edu.cn/apache/httpd/httpd-2.2.34.tar.gz

[root@localhost src]# tar zxf httpd-2.2.34.tar.gz

[root@localhost src]# cd httpd-2.2.34

[root@localhost httpd-2.2.34]# ./configure --prefix=/usr/local/apache2/ --enable-so --enable-rewrite --enable-module=so

[root@localhost httpd-2.2.34]# make -j8 && make install -j8

注:下载apache源码包进行编译安装,其中–enable-module=so参数一定要加上,不然后面不能进行模块添加

2.1.2 编译安装PHP

[root@localhost php-5.3.28]# yum -y install libxml2 libxml2-devel

注:安装PHP依赖包,不然编译会报错

[root@localhost src]# wget http://mirrors.sohu.com/php/php-5.3.28.tar.bz2

[root@localhost src]# tar jxf php-5.3.28.tar.bz2

[root@localhost src]# cd php-5.3.28

[root@localhost php-5.3.28]# ./configure --prefix=/usr/local/php5

--with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd

--with-apxs2=/usr/local/apache2/bin/apxs

[root@localhost php-5.3.28]# make -j8 && make install -j8

注:编译安装PHP

[root@localhost php-5.3.28]# cp php.ini-production /usr/local/php5/lib/php.ini

注:把安装包中的php.ini-production复制到/usr/local/php5/lib/并重命名为php.ini

2.1.3 集成Apache与PHP

[root@localhost php-5.3.28]# sed -i 's/DirectoryIndex/DirectoryIndex index.php/g' /usr/local/apache2/conf/httpd.conf

[root@localhost php-5.3.28]# sed -i '/LoadModule php5_module/aAddType application/x-httpd-php .phpAddType application/x-httpd-php-source .phps' /usr/local/apache2/conf/httpd.conf

注:默认情况下安装PHP后会默认生产LoadModule php5_module modules/libphp5.so这句话,所以需要在此局下面添加

AddType application/x-httpd-php .php

AddType application/x-httpd-php-source .phps

[root@localhost php-5.3.28]# cd /usr/local/apache2/htdocs/

[root@localhost htdocs]# echo -e "<?phpphpinfo ();?>" > index.php

[root@localhost htdocs]# cat index.php

phpinfo();

?>

[root@localhost htdocs]# ../bin/apachectl restart

注:在发布目录新加index.php 并加入以上代码,刷新浏览器,出现如下图界面,说明apache与php集成成功

14059ff3f0ad5125f3fcd3c010487e26.png

2.2 MySQL主从搭建

2.2.1 Mysql主从原理

f516fc3c357bf719ca5b308e180c01d8.png

MySQL 主从复制原理剖析

Mysql主从同步其实是一个异步复制的过程,要实现复制首先需要在master上开启bin-log日志功能,整个过程需要开启3个线程,分别是Master开启IO线程,slave开启IO线程和SQL线程。

  1. 在从服务器执行slave start,从服务器上IO线程会通过授权的用户连接上master,并请求master从指定的文件和位置之后发送bin-log日志内容。
  2. Master服务器接收到来自slave服务器的IO线程的请求后,master服务器上的IO线程根据slave服务器发送的指定bin-log日志之后的内容,然后返回给slave端的IO线程。(返回的信息中除了bin-log日志内容外,还有本次返回日志内容后在master服务器端的新的binlog文件名以及在binlog中的下一个指定更新位置。)
  3. Slave的IO线程接收到信息后,将接收到的日志内容依次添加到Slave端的relay-log文件的最末端,并将读取到的Master端的 bin-log的文件名和位置记录到master.info文件中,以便在下一次读取的时候能够清楚的告诉Master”我需要从某个bin-log的哪 个位置开始往后的日志内容,请发给我”;
  4. Slave的Sql线程检测到relay-log中新增加了内容后,会马上解析relay-log的内容成为在Master端真实执行时候的那些可执行的内容,并在自身执行。

2.2.2安装mysql

  1. 安装mysql环境,master和slave都执行

[root@localhost ~]# yum install mysql-server mysql-devel mysql-libs –y

启动mysql数据库,此时数据会自动初始化

[root@localhost ~]# service mysqld restart

master修改my.cnf文件

[root@localhost ~]# vim /etc/my.cnf

在文件[mysqld]中添加如下内容:

log-bin=mysql-bin 开启binlog功能

server-id = 137 指定服务器的id,通常id指定为ip地址的最后一位

若需要指定数据目录请修改datadir=/var/lib/mysql,创建目录后需要给mysql授权,最好是把用户和组指定给mysql,本实验不指定。

cee31cdd6072070ae20db66f50fc9e54.png

slave修改my.cnf文件

1a55ddbf43943b1b24febcdf3102bdc7.png

在master上面给slave授权

mysql> grant all on *.* to slave@"%" identified by "123456";

其中all代表所有权限

%代表除本机外所有ip的主机均可连接,若本机连接需要把%改为localhost

此处的用户名slave亦可在安装discuz时使用,当然也可以针对数据库单独创建

mysql> flush privileges;

刷新权限

重启master及slave

283a8c7635690b51e429767a8b5eabeb.png

查看mysql-bin及Position

在master上执行

mysql> show master status;

e81e5f17868c530bea0eba1ff9b6cdd2.png

记录file及position

在slave服务器指定master IP和同步的mysql-bin及pos点

mysql> change master to master_host='192.168.8.137',master_user='slave',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=106;

注意以上必须按照实际填写

d798454736cebf36f9bbb6394f3ca574.png

启动slave

mysql> slave start;

6a030a02a4204237d0d9bd7a8d3a035a.png

在slave上查看同步状态

mysql> show slave statusG

如果如下两行为yes,代表主从同步成功。

ef3de4c13d189ebbf4fdfb6ca54d2fb8.png

mysql> create database discuz;

注:创建discuz数据库

及时关注更新!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值