Nginx负载均衡搭建

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

    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

关闭防火墙:

    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服务

    安装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配置文件中#号即可

配置文件在/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数据库

    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进行整合

    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环境

    创建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主从架构配置:

    1、MysqL主从复制是一个异步复制的过程,整个过程需要开启3个线程,Master
    开启I/O线程,SLAVE开启I/O线程和sql线程;
    2、在Slave库执行Start slave启动主从复制,Slave以I/O线程连接到Master 并且
    会请求从Master服务器指定bin-log文件名称,Position点之后的内容;
    3、BIN-log文件称为二进制日志文件,只在Master开启,功能是记录在Master库
    做的增、删、改sql语句,执行的各种sql修改语句被记录到BIN-LOG日志文
    件中;
    3、当Master服务器接收到Slave服务器请求的日志内容之后,以I/O线程响应,
    在Master库中开启dump log线程,读取bin-log日志的position点之后的数据,发
    送给Slave数据库;
    4、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点

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 

相关文章

Nginx (engine x) 是一个高性能的HTTP和反向代理服务,也是一...
本地项目配置 1 复制 luffy/settings/dev.py为prop.py 修改l...
nginx不仅可以隐藏版本信息,还支持自定义web服务器信息 先看...
一 、此次漏洞分析 1 nginx HTTP/2漏洞 [nginx-announce] ng...
###进入nginx 目录cd /usr/local/nginx###递归显示 2 级目录...
在cmd命令窗口输入下面命令进行查看 tasklist /fi "ima...