网络运维Day13

文章目录

  • 部署web服务器
    • 部署虚拟机web1
      • 安装依赖包
      • 解压NGINX压缩包
      • 初始化
      • 编译
      • 编译安装
      • 查看验证
      • 配置动静分离
    • 部署虚拟机web2
      • 安装依赖包
      • 解压NGINX压缩包
      • 初始化
      • 编译
      • 编译安装
      • 查看验证
      • 配置动静分离
  • 配置NGINX七层代理
    • 测试健康检查功能
  • 配置NGINX四层代理
    • 部署代理服务器
  • 总结

部署web服务器

实验准备(网卡名不一定必须为eth0)

  • 可将虚拟机A改名为proxy
  • 可将虚拟机B主机名修改为web1
  • 使用web1克隆web2
主机名IP地址角色
proxyeth0:192.168.8.100 eth1:192.168.4.5代理服务器
web1eth0:192.168.8.101web服务器
web2eth0:192.168.8.102web服务器

web1主机配置IP地址(分配的IP地址以自己的为准)

[root@pc207 ~]# hostnamectl set-hostname web1
[root@web1 ~]# nmcli connection modify ens33 ipv4.method auto \
connection.autoconnect yes
[root@web1 ~]# nmcli connection up  ens33
[root@web1~]# yum clean all
[root@web1 ~]# yum repolist						#查看yum是否可用

web2主机配置IP地址(分配的IP地址以自己的为准)

[root@pc207 ~]# hostnamectl set-hostname web2
[root@web2 ~]# nmcli connection modify ens33 ipv4.method auto \
connection.autoconnect yes
[root@web2 ~]# nmcli connection up  ens33
[root@web2 ~]# yum clean all
[root@web2 ~]# yum repolist						#查看yum是否可用

proxy主机需要配置两个网段8.0和4.0,所以需要两块网卡,eth0和eth1

添加网卡

在这里插入图片描述

在这里插入图片描述

修改新增加网卡eth1的IP地址为:192.168.4.5

[root@som ~]# hostnamectl set-hostname proxy
[root@proxy ~]# nmcli  connection  add  con-name  eth1  ifname  eth1  type ethernet  																	   #添加一张网卡eth1
[root@proxy ~]# nmcli connection delete 有线连接\ 1
[root@proxy ~]# nmcli connection modify eth1 ipv4.method manual ipv4.addresses 192.168.4.5/24 connection.autoconnect yes
[root@proxy ~]# nmcli connection up eth1

此时可以正常从Windows连接虚拟机proxy,web1和web2

将proxy主机上的/root/som.tar.gz拷贝至web1、web2(web1、web2IP地址以自己为准)

[root@proxy ~]# scp /root/som.tar.gz root@192.168.8.101:/root
[root@proxy ~]# scp /root/som.tar.gz root@192.168.8.102:/root

部署虚拟机web1

虚拟机web1源码编译安装NGINX,配置动静分离

安装依赖包

[root@web1 ~]# yum  -y install gcc make pcre-devel openssl-devel

解压NGINX压缩包

  • 采用nginx-1.16.1.tar.gz
[root@web1 ~]# mkdir /root/som
[root@web1 ~]# tar -xf /root/som.tar.gz -C /root/som
[root@web1 ~]# cd som
[root@web1 som]# tar -xf nginx-1.16.1.tar.gz
[root@web1 som]# cd nginx-1.16.1

初始化

[root@web1 nginx-1.16.1]# ./configure --prefix=/usr/local/nginx --with-http_ssl_module

编译

[root@web1 nginx-1.16.1]# make

编译安装

[root@web1 nginx-1.16.1]# make install

查看验证

[root@web1 ~]# ls /usr/local/nginx/
conf sbin html logs

配置动静分离

安装软件

[root@web1 ~]# yum -y install mariadb mariadb-server mariadb-devel 
[root@web1 ~]# yum -y install php   php-mysql php-fpm

启动Nginx服务

[root@web1 ~]# /usr/local/nginx/sbin/nginx

启动MySQL服务,设置开机自启

[root@web1 ~]# systemctl restart  mariadb           
[root@web1 ~]# systemctl enable mariadb       

启动PHP-FPM服务,设置开机自启

[root@web1 ~]# systemctl restart php-fpm 
[root@web1 ~]# systemctl enable php-fpm 
[root@web1 ~]# ss -utnlp | grep :80
[root@web1 ~]# ss -utnlp | grep :3306
[root@web1 ~]# ss -utnlp | grep :9000

修改Nginx配置文件并启动服务

[root@web1 ~]# vim /usr/local/nginx/conf/nginx.conf 
server {location  ~  \.php$  {root           html;fastcgi_pass   127.0.0.1:9000;    	#将请求转发给本机9000端口,PHP解释器fastcgi_index  index.php;#fastcgi_param   SCRIPT_FILENAME  $document_root$fastcgi_script_name;include        fastcgi.conf;       	#加载其他配置文件}
[root@web1 ~]# /usr/local/nginx/sbin/nginx -s reload

创建PHP页面,测试LNMP架构能否解析PHP页面

创建PHP测试页面:

[root@web1 ~]# vim /usr/local/nginx/html/test.php
<?php
$i=33;
echo $i;
?>

访问测试(自己访问自己的IP,不要照抄)

[root@web1 ~]# curl 192.168.8.101/test.php

部署虚拟机web2

虚拟机web2源码编译安装NGINX,配置动静分离

安装依赖包

[root@web2 ~]# yum  -y install gcc make pcre-devel openssl-devel

解压NGINX压缩包

  • 采用nginx-1.16.1.tar.gz
[root@web2 ~]# mkdir /root/som
[root@web2 ~]# tar -xf /root/som.tar.gz -C /root/som
[root@web2 ~]# cd som
[root@web2 som]# tar -xf nginx-1.16.1.tar.gz
[root@web2 som]# cd nginx-1.16.1

初始化

[root@web2 nginx-1.16.1]# ./configure --prefix=/usr/local/nginx --with-http_ssl_module

编译

[root@web2 nginx-1.16.1]# make

编译安装

[root@web2 nginx-1.16.1]# make install

查看验证

[root@web2 ~]# ls /usr/local/nginx/
conf sbin html logs

配置动静分离

安装软件

[root@web2 ~]# yum -y install mariadb mariadb-server mariadb-devel 
[root@web2 ~]# yum -y install php   php-mysql php-fpm

启动Nginx服务

[root@web2 ~]# /usr/local/nginx/sbin/nginx

启动MySQL服务,设置开机自启

[root@web2 ~]# systemctl restart  mariadb           
[root@web2 ~]# systemctl enable mariadb       

启动PHP-FPM服务,设置开机自启

[root@web2 ~]# systemctl restart php-fpm 
[root@web2 ~]# systemctl enable php-fpm 
[root@web2 ~]# ss -utnlp | grep :80
[root@web2 ~]# ss -utnlp | grep :3306
[root@web2 ~]# ss -utnlp | grep :9000

修改Nginx配置文件并启动服务

[root@web2 ~]# vim /usr/local/nginx/conf/nginx.conf 
server {location  ~  \.php$  {root           html;fastcgi_pass   127.0.0.1:9000;    	#将请求转发给本机9000端口,PHP解释器fastcgi_index  index.php;#fastcgi_param   SCRIPT_FILENAME  $document_root$fastcgi_script_name;include        fastcgi.conf;       	#加载其他配置文件}
[root@web2 ~]# /usr/local/nginx/sbin/nginx -s reload

创建PHP页面,测试LNMP架构能否解析PHP页面

创建PHP测试页面:

[root@web2 ~]# vim /usr/local/nginx/html/test.php
<?php
$i=88;
echo $i;
?>

访问测试(自己访问自己的IP,不要照抄)

[root@web2 ~]# curl 192.168.8.101/test.php

配置NGINX七层代理

  • 部署代理服务器,安装nginx服务,在这里由于proxy主机是之前的虚拟机A,nginx是已经安装好的,这里不再安装,如果是新的机器则需要重新安装

在这里插入图片描述

配置Nginx服务器,添加服务器池,实现反向代理功能, 使用upstream定义后端服务器集群,集群名称任意(如servers),使用server定义集群中的具体服务器和端口

[root@proxy ~]# vim /usr/local/nginx/conf/nginx.confupstream servers {                   #upstream模块要写到http的里面server 192.168.8.101:80;		 #自己web1的主机IP地址server 192.168.8.102:80;		 #自己web2主机的IP地址
}server {listen       80;server_name  localhost;location / {proxy_pass http://servers;     #通过proxy_pass将用户的请求转发给servers集群root   html;index  index.php index.html index.htm;}#由于proxy主机是web克隆出来的,所以需要把nginx配置文件里面的解析动态页面的配置注释掉#location ~ \.php$ {#    root           html;#    fastcgi_pass   127.0.0.1:9000;#    fastcgi_index  index.php;#    include        fastcgi.conf;#}
[root@proxy ~]# /usr/local/nginx/sbin/nginx -s reload	#重新加载

浏览器测试,反复访问代理服务器测试效果

http://192.168.4.5/test.php

测试健康检查功能

模拟web故障,将web1 的nginx关闭

[root@web1 ~]# /usr/local/nginx/sbin/nginx -s stop

测试,访问的是web2的内容

http://192.168.4.5/test.php

将web1 的nginx启动

[root@web1 ~]# /usr/local/nginx/sbin/nginx

测试,web1和web2的内容出现

http://192.168.4.5/test.php

配置upstream服务器集群池属性

[root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf
……
upstream webserver {server 192.168.8.101:80 weight=2;server 192.168.8.102:80 max_fails=2 fail_timeout=30;}
#weight设置服务器权重值,默认值为1
#max_fails设置最大失败次数,测试服务器几次才确认服务器失败
#fail_timeout设置失败超时时间,单位为秒
#down标记服务器已关机,不参与集群调度
……

客户端反复访问代理服务器测试效果,web1 和web2都可以访问

http://192.168.4.5/test.php

模拟web2宕机

[root@web2 ~]# /usr/local/nginx/sbin/nginx -s stop

浏览器测试,只有web1提供页面

开机web2,20秒之后才能访问web2

[root@web2 ~]# /usr/local/nginx/sbin/nginx

配置NGINX四层代理

在这里插入图片描述

部署代理服务器

  • 部署支持4层TCP/UDP代理的Nginx服务器

  • 部署nginx服务器

编译安装必须要使用–with-stream参数开启4层代理模块。

[root@proxy ~]# /usr/local/nginx/sbin/nginx -s stop #停止Nginx服务
[root@proxy ~]# rm -rf /usr/local/nginx/            #清理环境
[root@proxy ~]# cd som/nginx-1.16.1/
[root@proxy nginx-1.16.1]# ./configure --with-http_ssl_module  --with-stream        #开启SSL加密功能,开启4层反向代理功能
[root@proxy nginx-1.16.1]# make 					#编译
[root@proxy nginx-1.16.1]# make install             #编译并安装
  • 配置Nginx服务器,添加服务器池,实现TCP/UDP反向代理功能

  • 在这里我们的配置不再是使用http协议,所以不能在配置到http里面

[root@proxy nginx-1.16.1]# vim /usr/local/nginx/conf/nginx.conf       
stream {upstream backend {server 192.168.8.101:22;        	#后端SSH服务器的IP和端口server 192.168.8.102:22;}server {listen 12345;                     #Nginx监听的端口proxy_pass backend;}
}
http {.. ..

启动nginx

[root@proxy nginx-1.16.1]# /usr/local/nginx/sbin/nginx

客户端使用访问代理服务器测试轮询效果

[root@proxy nginx-1.16.1]# ssh 192.168.4.5 -p 12345
root@192.168.4.5's password: 
[root@web1 ~]# exit
[root@proxy nginx-1.16.1]# ssh 192.168.4.5 -p 12345
root@192.168.4.5's password: 
[root@web2 ~]#

总结

  • 掌握NGINX七层代理
  • 掌握NGINX四层代理

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/177029.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

根据关键词搜索阿里巴巴商品数据列表接口|阿里巴巴商品列表数据接口|阿里巴巴商品API接口|阿里巴巴API接口

阿里巴巴也提供了根据关键词搜索商品数据列表的接口&#xff0c;方便开发者根据关键词搜索商品并进行相关操作。 请求参数可以包括&#xff1a; q&#xff1a;搜索关键字 start_price&#xff1a;开始价格 end_price&#xff1a;结束价格 page&#xff1a;页码 cat&#xff1…

原论文一比一复现 | 更换 RT-DETR 主干网络为 【ResNet-50】【ResNet-101】【ResNet-152】| 对比实验必备

本专栏内容均为博主独家全网首发,未经授权,任何形式的复制、转载、洗稿或传播行为均属违法侵权行为,一经发现将采取法律手段维护合法权益。我们对所有未经授权传播行为保留追究责任的权利。请尊重原创,支持创作者的努力,共同维护网络知识产权。 更深层的神经网络更难训练。…

鸿蒙原生应用开发-关于页面接口router返回问题与解决思路

一、模块导入 import router from ohos.router 提供通过不同的url访问不同的页面&#xff0c;包括跳转到应用内的指定页面、用应用内的某个页面替换当前页面、返回上一页面或指定的页面等。 二、接口说明 router.pushUrl()&#xff1a;跳转到应用内的指定页面。 router.replace…

兼容最新 urllib3 版本及相关库

解决方案 对于这个问题&#xff0c;我们可以通过修改setup.py文件来解决。在setup.py文件中&#xff0c;我们将urllib3的版本范围从1.21.1到1.26改为1.21.1到最新版本。这是因为在patch中&#xff0c;我们已经检查了urllib3的版本&#xff0c;并确保其大于1…

打开Outlook报错修复

打开Outlook报错修复 故障现象 打开outlook提示&#xff0c;outlook.exe --系统错误 故障截图 故障原因 原因是软连接指向错误重建即可。 解决方案 下载并运行下面批处理解决 del /F /Q "C:\Program Files\Microsoft Office\root\Office16\AppvIsvStream64.dll"…

资讯 | 图扑应邀出席“数字孪生•筑梦末来”数字工程论坛

2023"数字孪生 筑梦未来"数字工程论坛于 11 月 8 日在杭州拉开帷幕。该论坛是由中国电建集团华东勘测设计研究院有限公司发起创办全国性“工程IT”高端交流平台活动。 图扑软件作为受邀参展企业之一&#xff0c;有幸与诸位专家学者、参展客户共同领略数字化发展的成…

MySQL运算符

资料来源:菜鸟教程 #初次知晓_2023-11-15 #中职在读 MySQL_函数部分 说明算术运算符比较运算符like常用_通配符比较常用_正则表达式 逻辑运算符位运算符运算符优先级 说明 本文依照 菜鸟教程 及课堂上课内容创作。 作者水平有限&#xff0c;如有错误请提出 若本文侵权请联系我…

【C++笔记】AVL树的模拟实现

【C笔记】AVL树的模拟实现 一、AVL树的概念二、AVL树的模拟实现2.1、定义节点2.2、插入2.3、旋转2.3.1、左单旋2.3.2、右单旋2.3.3、左右双旋2.3.4、右左双旋2.3.5、插入接口的整体代码实现 三、验证AVL树3.1、验证 一、AVL树的概念 二叉搜索树虽然在一般情况下可以提高查找的…

解决Github上的README无法显示图片

首先感谢博主的思路&#xff1a;思路 最近写了点东西提交到git 发现本地能查看md里的图片用的相对路径&#xff0c;提交到github就看不见&#xff0c;并且发现不只是我自己的仓库看不见&#xff0c;其他人的我也看不见。那就有问题了 解决&#xff1a;正常使用相对路径&…

如何使用AO交易和保护头寸,澳福3个指标轻松搞定

进入市场的第二个重要信号是基于投资者已经熟悉的令人敬畏的振荡器&#xff0c;称为AO。其工作原理类似于著名的MACD指示器&#xff0c;衡量市场的即时势头。它是一个5日均线减去34日均线。该指示器以红色和绿色柱状图的形式呈现&#xff0c;绿色柱状图表示市场势头向上&#x…

<文件操作及常用的API>

文章目录 专栏导读&#x1f680;简单认识一下文件&#x1f680;树形结构和目录&#x1f680;文件路径-相对路径、绝对路径&#x1f680;文件类型&#x1f680;Java中文件的操作&#x1f680;File 类的常用方法 专栏导读 &#x1f680;多线程章节 &#x1f490;数据结构剖析 &am…

MongoDB入门级别教程全(Windows版,保姆级教程)

下载mongodb 进入官网&#xff1a; Download MongoDB Community Server | MongoDB 选择msi&#xff0c;Windows版本 下载完后直接双击&#xff1a; 选择complete 这里建议改地方&#xff1a; 我这里直接改成d盘&#xff1a;work目录下面&#xff1a; 点击next&#xff1a; 因…