(第十五周作業(yè))
1、LVS實現(xiàn)nat,dr服爷。
(1) LVS實現(xiàn)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調度器杜恰,雙網(wǎng)卡,第一張網(wǎng)卡為僅主機模式仍源,配置DIP:192.168.159.130心褐,第二張網(wǎng)卡為橋接模式,配置VIP:192.168.1.6
B機做RS1镜会,單網(wǎng)卡檬寂,網(wǎng)卡為僅主機模式终抽,配置RIP:192.168.159.129 網(wǎng)關為:92.168.159.130
C機做RS2戳表,單網(wǎng)卡,網(wǎng)卡為僅主機模式昼伴,配置RIP:192.168.159.131 網(wǎng)關為: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機創(chuàng)建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等命令訪問則是沒有問題的圃郊。能夠正常的實現(xiàn)調度价涝。
可以通過再創(chuàng)建一臺虛擬機,單網(wǎng)卡持舆,網(wǎng)卡為橋接模式色瘩。啟動后執(zhí)行(多次執(zhí)行)
#curlhttp://192.168.1.6
可以看到顯示內容有時顯示rs1伪窖,有時顯示rs2,次數(shù)基本一樣。使用以下命令查看調度的均衡性情況居兆。
#ipvsadm -L -n --rate
(2) LVS實現(xiàn)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機上執(zhí)行:
# 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機上執(zhí)行:
# 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
再創(chuàng)建一臺虛擬機覆山,啟動后執(zhí)行(多次執(zhí)行)
可以看到顯示內容有時顯示rs1,有時顯示rs2,
2泥栖、nginx反向代理簇宽,虛擬主機。
(1)基本IP的虛擬主機
創(chuàng)建一個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
#表示該接口將通過該配置文件進行設置,而不是通過網(wǎng)絡管理器進行管理
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網(wǎng)頁
#cd /usr/local/nginx
#cp -r html html-136
#cp -r html html-160
#cp -r html html-161
編輯在以下網(wǎng)頁內容中添加IP地址已示區(qū)別
#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
在宿主機的瀏覽器查看以下三個網(wǎng)頁钢颂,發(fā)現(xiàn)內容是不同的(因為我們前面編輯過使用三個目錄下的index.html不一樣)
(2)基本端口的虛擬主機
基于端口的虛擬主機和基于ip的虛擬主機配置幾乎一樣钞它,只是在修改Nginx配置文件時,只修改監(jiān)聽的端口和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
查看監(jiān)聽端口
#ss -lnt
在宿主機的瀏覽器查看以下三個網(wǎng)頁,發(fā)現(xiàn)內容是不同的(因為我們前面編輯過使用三個目錄下的index.html不一樣)
(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
在宿主機的瀏覽器查看以下三個網(wǎng)頁钱豁,發(fā)現(xiàn)內容是不同的(因為我們前面編輯過使用三個目錄下的index.html不一樣)
(4)nginx?反向代理
安裝jdk
上傳jdk-8u151-linux-x64.rpm
#rpm -ivh jdk-8u151-linux-x64.rpm
配置環(huán)境變量
vi? ~/.bash_profile
尾部增加以下兩行內容
export JAVA_HOME=/usr/java/jdk1.8.0_151/
export PATH=$JAVA_HOME/bin:$PATH
運行一下環(huán)境變量配置文件
. .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
編輯在以下網(wǎng)頁內容中使其看起來有區(qū)別
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
查看網(wǎng)頁是否顯示正常
準備好兩個tomcat環(huán)境后,編輯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
在宿主機的瀏覽器查看以下兩個網(wǎng)頁牲尺,發(fā)現(xiàn)內容是不同的(因為我們前面編輯過兩個tomcat中的index.jsp)