美文网首页
nginx、 LVS

nginx、 LVS

作者: haoxi2018 | 来源:发表于2019-02-20 22:38 被阅读0次

    (第十五周作业)
    1、LVS实现nat,dr。

    (1) LVS实现nat

    准备三台虚拟机ABC

    A:

    # yum install ipvsadm -y

    B:

    # yum install httpd -y

    # service httpd restart

    # echo "this is rs1"> /var/www/html/index.html

    C:

    # yum install httpd -y

    # service httpd restart

    # echo "this is rs2"> /var/www/html/index.html

    A机做为LVS调度器,双网卡,第一张网卡为仅主机模式,配置DIP:192.168.159.130,第二张网卡为桥接模式,配置VIP:192.168.1.6

    B机做RS1,单网卡,网卡为仅主机模式,配置RIP:192.168.159.129 网关为:92.168.159.130

    C机做RS2,单网卡,网卡为仅主机模式,配置RIP:192.168.159.131 网关为:92.168.159.130

    在ABC三台机器上关闭防火墙和selinux

    关闭防火墙:service firewalld stop 关闭selinux: setenforce 0

    在ABC三台机器上进行保持时间一致

    # ntpdate -uasia.pool.ntp.org

    在A机上打开ipforward功能

    #echo 1 >/proc/sys/net/ipv4/ip_forward

    在A机创建LVS

    #ipvsadm -A -t 192.168.1.6:80 -s rr

    #ipvsadm -a -t 192.168.1.6:80 -r 192.168.159.129 -m

    #ipvsadm -a -t 192.168.1.6:80 -r 192.168.159.131 -m

    由于在windows中的浏览器中一般都会有缓存,其调度可能会失效,使用Linux中的curl等命令访问则是没有问题的。能够正常的实现调度。

    可以通过再创建一台虚拟机,单网卡,网卡为桥接模式。启动后执行(多次执行)

    #curlhttp://192.168.1.6

    可以看到显示内容有时显示rs1,有时显示rs2,次数基本一样。使用以下命令查看调度的均衡性情况。

    #ipvsadm -L -n --rate

    (2) LVS实现dr

    准备三台虚拟机ABC

    A:

    # yum install ipvsadm -y

    B:

    # yum install httpd -y

    # service httpd restart

    # echo "this is rs1"> /var/www/html/index.html

    C:

    # yum install httpd -y

    # service httpd restart

    # echo "this is rs2"> /var/www/html/index.html

    A机做为LVS调度器 ip为:192.168.100.1

    B机做RS1 ip为192.168.100.10

    C机做RS2 ip为192.168.100.11

    在ABC三台机器上关闭防火墙和selinux

    关闭防火墙:service firewalld stop 关闭selinux: setenforce 0

    在ABC三台机器上进行保持时间一致

    # ntpdate -uasia.pool.ntp.org

    在B机和C机上执行:

    # echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore

    # echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce

    # echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore

    # echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

    vim /etc/sysconfig/network-scripts/ifcfg-lo:0

    DEVICE=lo:0  

    IPADDR=192.168.100.100

    NETMASK=255.255.255.255

    BROADCAST=192.168.100.100

    ONBOOT=yes

    NAME=loopback

    # ifdown lo:0

    # ifup lo:0

    # route add -host 192.168.100.100 dev lo:0

    在A机上执行:

    # vim /etc/sysconfig/network-scripts/ifcfg-eth1:0

    DEVICE=eth1:0   

    IPADDR=192.168.100.100  

    NETMASK=255.255.255.255  

    BROADCAST=192.168.100.100  

    ONBOOT=yes

    # ifdown eth1:0  

    # ifup eth1:0

    # route add -host 192.168.100.100 dev eth1:0

    在A机上打开ipforward功能

    #echo 1 >/proc/sys/net/ipv4/ip_forward

    # ipvsadm -A -t 192.168.100.100:80 -s wlc

    # ipvsadm -a -t 192.168.100.100:80 -r 192.168.100.10 -g -w 2

    # ipvsadm -a -t 192.168.100.100:80 -r 192.168.100.11 -g -w 1

    再创建一台虚拟机,启动后执行(多次执行)

    #curlhttp://192.168.100.100

    可以看到显示内容有时显示rs1,有时显示rs2,

    2、nginx反向代理,虚拟主机。

    (1)基本IP的虚拟主机

    创建一个centos7.2虚拟机,固定IP,设置三个IP:192.168.184.136,    192.168.184.160,    192.168.184.161

    #cd /etc/sysconfig/network-scripts/

    #cp ifcfg-eno16777736 ifcfg-eno16777736.bak

    #vi ifcfg-eno16777736

    注释掉

    #BOOTPROTO=dhcp

    尾部增加

    #static

    #表示该接口将通过该配置文件进行设置,而不是通过网络管理器进行管理

    NM_CONTROLLED=no

    BOOTPROTO=static

    IPADDR=192.168.184.136

    IPADDR1=192.168.184.160

    IPADDR2=192.168.184.161

    NETMASK=255.255.255.0

    GATEWAY=192.168.184.2

    #vi  /etc/sysconfig/network

    # Created by anaconda

    NETWORKING=yes

    GATEWAY=192.168.184.2

    DNS1=119.29.29.29

    DNS2=182.254.116.116

    #service network restart

    #ip a查看IP配置情况

    安装nginx

    # yum install pcre-devel openssl-devel zlib-devel -y

    #tar -xf nginx-1.14.2.tar.gz

    #cd nginx-1.14.2

    #./configure --prefix=/usr/local/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_dav_module --with-http_stub_status_module --with-threads --with-file-aio

    #make &&   make install

    准备web网页

    #cd /usr/local/nginx

    #cp -r html html-136

    #cp -r html html-160

    #cp -r html html-161

    编辑在以下网页内容中添加IP地址已示区别

    #vi html-136/index.html

    #vi html-160/index.html

    #vi html-161/index.html

    #cd /etc/nginx/

    #cp nginx.conf nginx.conf.bak

    #vi nginx.conf

    server {

            listen       80;

            server_name  192.168.184.136;

            location / {

                root   html-136;

                index  index.html index.htm;

            }

    }

    server{

            listen  80;

            server_name  192.168.184.160;

            location / {

                    root html-160;

                    index index.html index.htm;

            }

    }

    server{

            listen 80;

            server_name 192.168.184.161;

            location / {

                    root html-161;

                    index index.html index.htm;

            }

    }

    启动nginx

    #cd /usr/local/nginx/sbin

    #./nginx

    在宿主机的浏览器查看以下三个网页,发现内容是不同的(因为我们前面编辑过使用三个目录下的index.html不一样)

    http://192.168.184.136/

    http://192.168.184.160/

    http://192.168.184.161/

    (2)基本端口的虚拟主机

    基于端口的虚拟主机和基于ip的虚拟主机配置几乎一样,只是在修改Nginx配置文件时,只修改监听的端口和root对应的目录,其他的没有变

    在前面的操作的基础上修改配置文件。

    #vi /etc/nginx/nginx.conf

    server {

            listen       80;

            server_name  192.168.184.136;

            location / {

                root   html-136;

                index  index.html index.htm;

            }

    }

    server{

            listen  81;

            server_name  192.168.184.136;

            location / {

                    root html-160;

                    index index.html index.htm;

            }

    }

    server{

            listen 82;

            server_name 192.168.184.136;

            location / {

                    root html-161;

                    index index.html index.htm;

            }

    }

    重新加载nginx配置文件

    #cd /usr/local/nginx/sbin

    #./nginx -s reload

    查看监听端口

    #ss -lnt

    在宿主机的浏览器查看以下三个网页,发现内容是不同的(因为我们前面编辑过使用三个目录下的index.html不一样)

    http://192.168.184.136:80/

    http://192.168.184.136:81/

    http://192.168.184.136:82/

    (3)基本域名的虚拟主机

    #vi /etc/nginx/nginx.conf

    server {

            listen       80;

            server_name  www.a.com;

            location / {

                root   html-136;

                index  index.html index.htm;

            }

    }

    server{

            listen  80

            server_name  www.b.com

            location / {

                    root html-160;

                    index index.html index.htm;

            }

    }

    server{

            listen 80

            server_namewww.c.com;

            location / {

                    root html-161;

                    index index.html index.htm;

            }

    }

    重新加载nginx配置文件

    #cd /usr/local/nginx/sbin

    #./nginx -s reload

    修改宿主机的hosts文件:

    C:\Windows\System32\drivers\etc\hosts

    添加以下三行内容

    192.168.184.136    www.a.com

    192.168.184.136    www.b.com

    192.168.184.136    www.c.com

    在宿主机的浏览器查看以下三个网页,发现内容是不同的(因为我们前面编辑过使用三个目录下的index.html不一样)

    http://www.a.com

    http://www.b.com

    http://www.c.com

    (4)nginx 反向代理

    安装jdk

    上传jdk-8u151-linux-x64.rpm

    #rpm -ivh jdk-8u151-linux-x64.rpm

    配置环境变量

    vi  ~/.bash_profile

    尾部增加以下两行内容

    export JAVA_HOME=/usr/java/jdk1.8.0_151/

    export PATH=$JAVA_HOME/bin:$PATH

    运行一下环境变量配置文件

    . .bash_profile

    上传apache-tomcat-7.0.75.tar.gz

    tar -zxf apache-tomcat-7.0.75.tar.gz

    mv apache-tomcat-7.0.75 tomcat1

    cp -r tomcat1 tomcat2

    编辑在以下网页内容中使其看起来有区别

    vi tomcat1/webapps/ROOT/index.jsp

    vi tomcat2/webapps/ROOT/index.jsp

    tomcat1的端口不需要修改,但是tomcat2的端口需要修改

    vi tomcat2/conf/server.xml

    找到以下三行内容并修改(注意别改到注释内容里面去,而把有效的内容漏掉修改)

    <Server port="8006" shutdown="SHUTDOWN">

    <Connector port="8081" protocol="HTTP/1.1"....>

    <Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />

    启动两个tomcat

    tomcat1/bin/startup.sh

    tomcat2/bin/startup.sh

    查看网页是否显示正常

    http://192.168.184.136:8080

    http://192.168.184.136:8081

    准备好两个tomcat环境后,编辑nginx配置文件

    vi /etc/nginx/nginx.conf

    http {

    ....

        upstream tomcat1{

            server 192.168.184.136:8080;

        }

        upstream tomcat2{

            server 192.168.184.136:8081;

        }

        server {

            listen       80;

            server_name  192.168.184.136;

            location / {

    proxy_passhttp://tomcat1;

                index  index.html index.htm;

            }

        }

        server {

            listen       80;

            server_name  192.168.184.160;

            location / {

    proxy_passhttp://tomcat2;

                index  index.html index.htm;

            }

        }

    }

    重新加载nginx配置文件

    #cd /usr/local/nginx/sbin

    #./nginx -s reload

    在宿主机的浏览器查看以下两个网页,发现内容是不同的(因为我们前面编辑过两个tomcat中的index.jsp)

    http://192.168.184.136/

    http://192.168.184.160/

    相关文章

      网友评论

          本文标题:nginx、 LVS

          本文链接:https://www.haomeiwen.com/subject/dayqyqtx.html