Nginx负载均衡搭建

Nginx负载均衡+tomcat+apache+PHP+MySQL主从搭建php

192.168.11.15: Nginx+tomcat负载均衡
    192.168.11.16:tomcat +apache+PHP+MySQL服务器1+mysql主
    192.168.11.17:tomcat+apache+PHP+MySQL服务器2+mysql从

关闭防火墙:html

systemctl stop firewalld 
    192.168.11.15:nginx端

    cd /usr/src/
    安装PCRE库支持
    yum install pcre-devel pcre -y 
    wget -c http://nginx.org/download/nginx-1.19.2.tar.gz
    tar -xzf nginx-1.19.2.tar.gz
    #进入解压目录,而后sed修改Nginx版本信息为JWS
    cd nginx-1.19.2 ; sed -i -e 's/1.13.9//g' -e 's/nginx\//JWS/g' -e 
    's/"NGINX"/"JWS"/g' src/core/nginx.h

    #预编译Nginx
    useradd  www;./configure --user=www --group=www --prefix=/usr/local/nginx
    --with-http_stub_status_module --with-http_ssl_module
    make && make install

    配置java环境变量,vi /etc/profile 添加以下语句
    export JAVA_HOME=/usr/java
    export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib  
    export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
    rz –y 上传 jdk包
    tar –xzf   jdk    mv  jdk  /usr/java
    source    /etc/profile     //使环境变量马上生效。 
    java     -version      //查看java版本,显示版本为1.6.0_18,证实安装成功。

    下载版本apache-tomcat-8.5.37.tar.gz
    tar  -xzf  apache-tomcat-8.5.37.tar.gz  
    mv apache-tomcat-8.5.37  /usr/local/tomcat便可。
    启动tomcat,命令为:/usr/local/tomcat/bin/startup.sh
    查看ps  -ef |grep tomcat 进程及端口是否存在

    Tomcat默认测试页面:

Nginx负载均衡搭建

192.168.11.16端主 192.168.11.17端作如下一样操做:
    配置java环境变量,vi /etc/profile 添加以下语句
    export JAVA_HOME=/usr/java
    export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib  
    export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
    上传或下载  jdk1.8.0_131.tar.gz 
    tar –xzf  jdk1.8.0_131.tar.gz   
    mv  jdk1.8.0_131.tar.gz  /usr/java
    source    /etc/profile     //使环境变量马上生效。 
    java     -version     //查看java版本,显示版本为1.6.0_18,证实安装成功

    下载版本apache-tomcat-8.5.37.tar.gz
    wget -c http://mirrors.hust.edu.cn/apache/tomcat/tomcat-8/v8.5.49/bin/apache-tomcat-8.5.49.tar.gz
    tar  -xzf  apache-tomcat-8.5.37.tar.gz  
    mv apache-tomcat-6.5.37  /usr/local/tomcat便可

    启动tomcat,命令为:/usr/local/tomcat/bin/startup.sh
    查看ps  -ef |grep tomcat 进程及端口是否存在

    测试Tomcat默认页面

Nginx负载均衡搭建

安装apache web服务java

安装apache模块
    yum install  apr apr-devel apr-util-devel gcc ncurses-devel cmake libaio bison gcc-c++ git pcre* -y               
    wget http://archive.apache.org/dist/httpd/httpd-2.4.29.tar.gz
    tar   xzf httpd-2.4.24.tar.gz
    cd httpd-2.4.29
    ./configure --prefix=/usr/local/apache/ --enable-rewrite --enable-so
    make  && make install   编译  安装
    /usr/local/apache/bin/apachectl restart  启动Apache

Nginx负载均衡搭建

建立虚拟主机配置文件httpd-vhosts.conf,该文件默认已存在,只需去掉httpd.conf配置文件中#号便可mysql

该配置文件在/usr/local/apache/conf

Nginx负载均衡搭建

配置文件/usr/local/apache/conf/extra/httpd-vhosts.conf中代码设置为以下:
    <VirtualHost *:80>
            DocumentRoot "/usr/local/apache/docs/"
            ServerName  www.jf1.com
            ServerAlias www.dummy-host.example.com
            ErrorLog "logs/dummy-host.example.com-error_log"
            CustomLog "logs/dummy-host.example.com-access_log" common
    </VirtualHost>

Nginx负载均衡搭建

配置完成后从新启动apache服务器:
    /usr/local/apache/bin/apachectlrestart 
    mkdir  -p  /usr/local/apache/htdocs /{jf1,jf2}/
    /usr/local/apache/bin/apachectl restart

    Windows客户端设置Hosts映射

安装MySQL数据库nginx

yum  install  cmake  ncurses-devel ncurses –y
    cd/usr/src/
    wget http://down1.chinaunix.net/distfiles/mysql-5.5.20.tar.gz
    cd  /mysql-5.5.20
    cmake  .  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ \
    -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
    -DMYSQL_DATADIR=/data/mysql \
    -DSYSCONFDIR=/etc \
    -DMYSQL_USER=mysql \
    -DMYSQL_TCP_PORT=3306 \
    -DWITH_XTRADB_STORAGE_ENGINE=1 \
    -DWITH_INNOBASE_STORAGE_ENGINE=1 \
    -DWITH_PARTITION_STORAGE_ENGINE=1 \
    -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
    -DWITH_MYISAM_STORAGE_ENGINE=1 \
    -DWITH_READLINE=1 \
    -DENABLED_LOCAL_INFILE=1 \
    -DWITH_EXTRA_CHARSETS=1 \
    -DDEFAULT_CHARSET=utf8 \
    -DDEFAULT_COLLATION=utf8_general_ci \
    -DEXTRA_CHARSETS=all \
    -DWITH_BIG_TABLES=1 \
    -DWITH_DEBUG=0
    make
    make install

    cd /usr/local/mysql/ 
    \cp  -f  support-files/my-large.cnf /etc/my.cnf
    \cp  -f support-files/mysql.server /etc/init.d/mysqld 
    chkconfig --add mysqld 
    chkconfig --level 35 mysqld on
    mkdir -p  /data/mysql
    useradd  mysql
    /usr/local/mysql55/scripts/mysql_install_db  --user=mysql --datadir=/data/mysql --basedir=/usr/local/mysql55/
    chown -R mysql /data/mysql/
    ln  -s  /usr/local/mysql55/bin/* /usr/bin/

    service  mysqld  restart

Nginx负载均衡搭建

PHP服务安装,PHP需与Apache、MySQL进行整合c++

yum -y install php-mcrypt libmcrypt libmcrypt-devel  autoconf  freetype gd  jpegsrc  libmcrypt libpng libpng-devel libjpeg libxml2 libxml2-devel zlib curl curl-devel  -y
    cd /usr/src 
    wget http://mirrors.sohu.com/php/php-5.6.8.tar.gz
    tar xzf  php-5.3.28.tar.gz 
    cd php-5.3.28 ;
    ./configure --prefix=/usr/local/php5 --with-config-file-path=/usr/local/php5/etc  
    --with-apxs2=/usr/local/apache2/bin/apxs  --with-mysql=/usr/local/mysql/
    make  && make  install 
    源码整合
    为了能让Apache发布PHP页面 须要将PHP安装完成后的libphp7.so模块与Apach
    e进行整合,vim httpd.conf编辑配置文件,加入以下代码:
    LoadModule         php5_module modules/libphp5.so
    AddType          application/x-httpd-php  .php
    DirectoryIndex     index.php index.html index.htm

测试Apache+PHP环境git

建立PHP测试页面,在/usr/local/apache/htdocs目录下建立index.php测试页面,
    执行以下命令自动建立: 
    Vim  /usr/local/apache/htdocs/index.php
    <?php
    phpinfo();
    ?>
    /usr/local/apache/bin/apachectl  restart 

    从新启动Apache服务,浏览器输入 Apache WEB的IP访问,如图12-4所示,即代
    表LAMP源码环境整合成功。

Nginx负载均衡搭建

MySQL主从架构配置:web

一、MYSQL主从复制是一个异步复制的过程,整个过程须要开启3个线程,Master
    开启I/O线程,SLAVE开启I/O线程和SQL线程;
    二、在Slave库执行Start slave启动主从复制,Slave以I/O线程链接到Master 而且
    会请求从Master服务器指定bin-log文件名称,Position点以后的内容;
    三、BIN-log文件称为二进制日志文件,只在Master开启,功能是记录在Master库
    作的增、删、改SQL语句,执行的各类SQL修改语句被记录到BIN-LOG日志文
    件中;
    三、当Master服务器接收到Slave服务器请求的日志内容以后,以I/O线程响应,
    在Master库中开启dump log线程,读取bin-log日志的position点以后的数据,发
    送给Slave数据库;
    四、Slave数据库接收到bin-log日志内容以后,将数据内容追加到本地Relay-log中
    继日志的末尾,同时将master库的IP、用户名、密码、bin-log文件名称、Position
    点,会写入master.info文件(告诉本身下次同步去哪里同步,而且从哪里开始);

    Slave数据库实时开启SQL线程,SQL线程实时监控Relay-log日志内容,发现日志
    内容有更新,读取日志而且解析出日志中的SQL语句,在本地数据库中去执行,最
    后的效果是Slave和Master数据保持一致

    192.168.11.16Master端配置文件中,开启bin-log日志功能,指令以下:
    vim /etc/my.cnf在[mysqld]段加入代码:
    server-id = 1
    log-bin = mysql-bin
    配置完成后重启mariadb服务
    在192.168.11.16  Master数据库服务器命令行中 建立tongbu用户及密码并设置权限,执行以下命令,查看bin-log文件及position点,

    1)授予从库链接主库权限
    grant  replication  slave  on *.* to  'tongbu'@'192.168.11.15'  identified by  '123456';
    grant  all  on  *.* to  root@'%'  identified  by  "123456";
    flush privileges;      刷新权限

Nginx负载均衡搭建

执行show master status;命令,查看bin-log文件及position点sql

Nginx负载均衡搭建

192.168.11.17 MySQL从库操做以下:数据库

Slave端使用源码安装MySQL-5-5版本软件后,在/etc/my.cnf 配置文件中开启server-id = 2 ,而后重启MYSQL服务。

Nginx负载均衡搭建
若是在安装时cp my-large.cnf /etc/my.cnf,则需修改server-id,MASTER与Slave端server-id不能同样,Slave端也无需开启bin-log功能:
Slave指定Master IP、用户名、密码、bin-log文件名(mysql-bin.000028)及position点,

stop slave;    中止

change master to master_host='192.168.50.130',master_user='tongbu',master_password='123456',ma

ster_log_file='mysql-bin.000028',master_log_pos=257;
    grant all on *.* to root@'%' identified by "123456";       受权
    flush privileges;      刷新权限
    slave start;           启动主从同步

Nginx负载均衡搭建

在slave启动slave start,并执行show slave status\G查看Mysql主从状态:
Nginx负载均衡搭建

在主库端建立jf1数据库,查看从库端是否同步

create database jfedu charset=utf8;
    show databases;

Nginx负载均衡搭建

同步成功
Nginx负载均衡搭建

192.168.11.16端JPress安装

LAMP源码整合完毕以后,开源PHP软件包,将软件包解压并发布在tomcat ROOT发布目录
    cd /usr/local/tomcat/webapps/ROOT
    unzip starter-tomcat-1.0.war

Nginx负载均衡搭建

在浏览器中 输入192.168.11.16:8080
Nginx负载均衡搭建

主数据库命令行中建立PHP链接MYSQL的用户及密码,受权192.168.11.11 LAP端;
    create database jperss charset=utf8;
    grant all on jpress.* to root@'192.168.11.16' identified by "123456";

Nginx负载均衡搭建

Nginx负载均衡搭建

Wordpress 配置 
    cd  /usr/ local/apache2/htdocs
    上传 wordpress  
    Tar –xzf wordpress -4.9.4-zh_CN.tar.gz
    mv wordpress/*  .                解压到当前目录
    浏览器访问192.168.11.16/index.php

Nginx负载均衡搭建

Nginx负载均衡搭建

出现如下报错

Nginx负载均衡搭建

vim /usr/local/apache2/htdocs/ wp-config.php
    复制代码写入

Nginx负载均衡搭建

Nginx负载均衡搭建

Nginx负载均衡搭建
Nginx负载均衡搭建

192.168.11.17端 拷贝192.168.11.16端apache/htdocs/目录到本地
    cd /usr/local/apache2/htdocs/
    scp -r 192.168.11.16:/usr/local/apache2/htdocs/*  .
    浏览器访问192.168.11.17/index.php

193.192.168.11.15端 Nginx配置

建立多个虚拟主机
    vim  /usr/local/nginx/conf
    注销server
    建立mkdir  vhost

Nginx负载均衡搭建

cd vhost 
    vim jpress.com.conf
    upstream  jpress_com {
    server   192.168.11.16:8080  weight=1  max_fails=2   fail_timeout=15s;
    server   192.168.11.17:8080  weight=1  max_fails=2   fail_timeout=15s;
                }
    server {
    listen          80;
    server_name     jpress.com;
    access_log      logs/jpress.access.log;
    location  / {
    proxy_next_upstream http_502 http_504 error timeout invalid_header;
      proxy_redirect off;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_pass  http://jpress_com;
    }
}

Nginx负载均衡搭建

vim wordpress.com.conf

    upstream  wordpress_com  {
    server 192.168.11.16:80  weight=1  max_fails=2  fail_timeout=15s;
  server 192.168.11.17:80  weight=1  max_fails=2  fail_timeout=15s;
}
    aserver {
    listen          80;
    server_name     wordpress.com;
    access_log      logs/wordpress.access.log;
    location  /  {
    proxy_next_upstream http_502 http_504 error timeout invalid_header;
      proxy_redirect off;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_pass  http://wordpress_com;

                }
}

Nginx负载均衡搭建

在本地C:\Windows\System32\drivers\etc\hosts 中绑定

193.192.168.11.15   wordpress.com   jpress.com