当前位置: 首页 > article >正文

WEB集群6-10天

第六天 nginx编译安装

全新的进行编译安装

[root@web-1 ~]# mkdir  /nginx
[root@web-1 ~]# cd /nginx/
[root@web-1 nginx]# ls
[root@web-1 nginx]#curl -O https://nginx.org/download/nginx-1.26.1.tar.gz

解压源码包

[root@web-1 nginx]#tar  xf  nginx-1.26.1.tar.gz 
[root@web-1 nginx-1.26.1]# ls
auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  Makefile  man  objs  README  src

configure 是一个nginx官方提供的一个进行编译配置的脚本,主要目的是收集用户的指定配置,收集参数。
例如: 用户可以指定安装位置,启用哪些模块(功能),不启用哪些模块(功能)
可以定制nginx这个软件

[root@web-2 nginx-1.26.1]# ./configure  --prefix=/usr/local/nginx-1  --user=limingzhe  --group=limingzhe   --with-http_ssl_module  --with-http_v2_module  --with-threads   --with-stream   --with-http_stub_status_module

cat install_nginx.sh

#!/bin/bash


#创建存放nginx源码的目录
mkdir  -p  /nginx

#进入目录,开始下载nginx源码包
cd  /nginx
curl -O https://nginx.org/download/nginx-1.26.1.tar.gz

#解压源码包
tar  xf  nginx-1.26.1.tar.gz 
cd  nginx-1.26.1

#解决依赖的软件包
yum install  gcc   pcre-devel  openssl-devel -y

#配置工作
./configure  --prefix=/usr/local/nginx-1  --user=limingzhe  --group=limingzhe   --with-http_ssl_module  --with-http_v2_module  --with-threads   --with-stream   --with-http_stub_status_module

#启动2个进程去编译
make  -j  2

#安装编译,将前面编译好的二进制文件和配置文件复制到/usr/local/nginx-1目录下
make  install

cd /usr/local/nginx-1/
conf  存放配置文件的目录
html  存放网站网页的目录
logs  存放日志的
sbin 存放二进制文件  super user  binary

新建用户

[root@web-2 sbin]# useradd  limingzhe -s /sbin/nologin 

改良的脚本

#!/bin/bash


#创建存放nginx源码的目录
mkdir  -p  /nginx

#进入目录,开始下载nginx源码包
cd  /nginx
curl -O https://nginx.org/download/nginx-1.26.1.tar.gz

#解压源码包
tar  xf  nginx-1.26.1.tar.gz 
cd  nginx-1.26.1

#解决依赖的软件包
yum install  gcc   pcre-devel  openssl-devel -y

#配置工作
./configure  --prefix=/usr/local/nginx-1  --user=limingzhe  --group=limingzhe   --with-http_ssl_module  --with-http_v2_module  --with-threads   --with-stream   --with-http_stub_status_module

#启动2个进程去编译
make  -j  2

#安装编译,将前面编译好的二进制文件和配置文件复制到/usr/local/nginx-1目录下
make  install

#新建用户limingzhe
useradd  limingzhe  -s  /sbin/nologin

#修改PATH环境变量,增加nginx的安装目录,方便找到安装的nginx
echo 'PATH=/usr/local/nginx-1/sbin/:$PATH'  >>/etc/profile
source  /etc/profile

#启动nginx
/usr/local/nginx-1/sbin/nginx

#firewalld and selinux

#stop firewall和设置下次开机不启动firewalld
service firewalld stop
systemctl disable firewalld

#临时停止selinux和永久停止selinux
setenforce 0
sed  -i '/^SELINUX=/ s/enforcing/disabled/' /etc/sysconfig/selinux 

修改PATH变量

临时修改PATH变量
PATH=/usr/local/nginx-1/sbin:$PATH
永久修改PATH变量
echo  'PATH=/usr/local/nginx-1/sbin:$PATH'    >>/etc/profile
在当前终端里执行脚本/etc/profile 加载PATH环境变量
source   /etc/profile

[root@web-2 ~]# nginx  -s stop  停止nginx服务

在web1上验证脚本是否可以执行

[root@web-1 nginx]# bash install_nginx.sh
[root@web-1 nginx]# source /etc/profile

[root@web-1 nginx]# ps aux|grep nginx
root 5195 0.0 0.2 149800 5460 pts/0 S+ 11:52 0:00 vim install_nginx.sh
root 8366 0.0 0.0 46240 1172 ? Ss 11:55 0:00 nginx: master process /usr/local/nginx-1/sbin/nginx

思考:编译安装的好处?

1.	可以获得指定的版本
2.	可以定制功能 --》巨大的优势了 --》可以根据自己公司的业务特点定制功能
阿里云、腾讯基于nginx进行了二次开发,搞出了自己的nginx服务器,阿里搞出来 tnginx(taobao nginx)


yum  install  nginx
		配置配置/etc/nginx
		可执行的nginx二进制程序 /usr/sbin/nginx
		网站目录: /usr/share/nginx/html

编译安装的nginx
		配置文件:  /usr/local/nginx-1/conf
		可执行的nginx二进制程序  /usr/local/nginx-1/sbin
		网站目录:  /usr/local/nginx-1/html

启动nginx
nginx
停止ningx
nginx  -s  stop
重启
nginx  -s  reload          --->signal  

如何知道自己的cpu的信息?

1.使用top  --》1   知道cpu有多少个核心
	2.cat  /proc/cpuinfo
	3.lscpu

PATH变量问题

PATH变量是一个环境变量,定义了linux查找命令的时候,去哪些文件夹里查找命令
[root@web-2 conf]# env |grep PATH
PATH=/usr/local/nginx-1/sbin/:/node_exporter/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@web-2 conf]# 
我们输入的命令在执行的时候,先到PATH变量定义的路径下查找是否有对应的命令,如果有就执行,没有就不执行,查找的时候从左往右查找

因为我们是编译安装的nginx,默认安装的位置不在PATH变量定义的文件夹里,所以我们需要去修改PATH变量,让linux系统能找到执行程序nginx这个二进制文件

yum安装的软件,默认会把执行的文件存放到PATH变量的目录下,一般在/usr/bin 或者/usr/sbin
临时修改PATH变量
PATH=/usr/local/nginx-1/sbin:$PATH
永久修改PATH变量
echo  'PATH=/usr/local/nginx-1/sbin:$PATH'    >>/etc/profile
在当前终端里执行脚本/etc/profile 加载PATH环境变量
source   /etc/profile

nginx开机启动的问题

	1./etc/rc.local文件,linux在启动的最后阶段会执行这个脚本里的命令
	/usr/local/nginx-1/sbin/nginx
	[root@web-2 nginx-1]# vim /etc/rc.local 
	#开启自动启动编译安装的nginx

	/usr/local/nginx-1/sbin/nginx

[root@web-2 nginx-1]# chmod  +x /etc/rc.d/rc.local 
2.创建一个 nginx.service文件,让systemctl进行管理
nginx.conf配置文件
[root@web-2 ~]# cd /usr/lib/systemd/system
[root@web-2 system]# vim nginx.service
[Unit]
Description=nginx - high performance web server

[Service]
Type=forking
PIDFile=/usr/local/nginx-1/logs/nginx.pid
ExecStart=/usr/local/nginx-1/sbin/nginx -c /usr/local/nginx-1/conf/nginx.conf
ExecReload=/bin/sh -c "/bin/kill -s HUP $(/bin/cat $PIDFile)"
ExecStop=/bin/sh -c "/bin/kill -s TERM $(/bin/cat $PIDFile)"

[Install]
WantedBy=multi-user.target

[root@web-2 system]# systemctl daemon-reload
[root@web-2 system]# systemctl stop nginx
[root@web-2 system]# ps aux|grep nginx

注释掉第1种启动nginx的方式

[root@web-2 system]# vim /etc/rc.local 

开启自动启动编译安装的nginx

在编译安装的nginx里部署一个自己的网站 www.scweb.com

[root@web-2 conf]# cd /usr/local/nginx-1/conf
[root@web-2 conf]# vim nginx.conf

[root@web-2 conf]# cat nginx.conf

#user  nobody;
worker_processes  2;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  2048;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;
    #一个server 就是一个网站
    #一个server就是一个虚拟主机(网站)
    server {
	#网站监听的端口
        listen       80;
        #网站对应的域名
        server_name  www.scweb.com;

        #charset koi8-r;
	#定义访问日志的路径和名字、记录的内容
        access_log  logs/scweb.access.log  main;
        #定义错误日志:访问网站出错的时候,服务器会记录下来
        error_log  logs/scweb.error.log
	#定义路由  / 网站根目录
        location / {
	    #定义网站存放网页的文件夹--》网站内容根目录 --》在/usr/local/nginx-1/html
            root   html;  
            index  index.html index.htm  shouye.html;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }


    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}


    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

}

nginx -t 测试nginx.conf配置文件是否有语法错误

使用浏览器去访问

[root@web-2 html]# curl  192.168.205.135

第七天 nginx

基于域名的虚拟主机

一台nginx的服务器上部署2个网站

www.feng.com
www.wen.com

http 是超文本传输协议(Hypertext Transfer Protocol,HTTP)--》就是传输网页上的文本、图片、视频、音频等内容
cd /usr/local/nginx-1/conf
vim nginx.conf
 server {
        listen       80;
        server_name  www.feng.com;
        access_log   logs/feng.com.access.log;
        error_log    logs/feng.com.error.log;
        location / {
            root   html/feng;
            index  index.html index.htm;
        }
    }

    server {
        listen       80;
        server_name  www.wen.com;
        access_log   logs/wen.com.access.log;
        error_log    logs/wen.com.error.log;
        location / {
            root   html/wen;
            index  index.html index.htm;
        }
    }

去创建网站首页

 cd   ..
 [root@web-2 nginx-1]# ls
client_body_temp  conf  fastcgi_temp  html  logs  proxy_temp  sbin  scgi_temp  uwsgi_temp
[root@web-2 nginx-1]# cd  html/

mkdir wen feng 新建wen和feng文件夹

[root@web-2 html]# ls
50x.html  feng  index.html  wen
[root@web-2 html]# cd feng
[root@web-2 feng]# ls

vim index.html 新建首页文件

[root@web-2 feng]# cat index.html 
welcome to feng's website
[root@web-2 feng]# cd ..
[root@web-2 html]# cd wen
[root@web-2 wen]# vim index.html新建首页文件
[root@web-2 wen]# cat index.html 
welcome to wen's website

重启nginx服务

[root@web-2 wen]# nginx  -s  reload

测试访问

[root@web-2 wen]# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.205.135  www.scweb.com
192.168.205.135  www.feng.com
192.168.205.135  www.wen.com

[root@web-2 wen]# curl www.feng.com
welcome to feng's website
[root@web-2 wen]# curl www.wen.com
welcome to wen's website
[root@web-2 wen]# curl www.scweb.com
<!DOCTYPE html>
<html>
<head>
<title>Welcome to scweb</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to scweb!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>


windows里需要修改hosts文件

在这里插入图片描述

192.168.205.135   www.scweb.com
192.168.205.135   www.feng.com
192.168.205.135   www.wen.com

隐藏nginx的版本

在这里插入图片描述

提供下载功能

在这里插入图片描述

修改autoindex的值为on

在这里插入图片描述

nginx  -s   reload

在这里插入图片描述

开启状态统计功能

cd /usr/local/nginx-1/conf/
vim nginx.conf

在这里插入图片描述

nginx -t
nginx  -s  reload

访问
在这里插入图片描述

http协议

HTTP协议(Hypertext Transfer Protocol,超文本传输协议)是一种用于从万维网服务器传输超文本到本地浏览器的传送协议。它是互联网上应用最为广泛的一种网络协议,也是构成互联网应用的基础。以下是关于HTTP协议的详细介绍:
一、基本介绍
定义:HTTP协议是一种应用层协议,基于TCP/IP通信协议来传送数据。HTTP协议规定了客户端和服务器之间数据传输的格式和类型,确保双方能够正确地发送和接收数据。
作用:HTTP协议主要用于在Web浏览器和Web服务器之间传输数据,是Web上进行任何数据交换的基础。它支持客户端从服务器请求资源(如HTML文档、图片、视频等),并接收服务器返回的响应。
二、主要特点
请求/响应模型:HTTP协议采用请求/响应模型,客户端向服务器发送一个请求,服务器以一个响应来回应客户端的请求。
无状态性:HTTP协议是一种无状态的协议,即服务器不会保留与客户端的任何连接状态信息,每个请求都被视为一个独立的事务。
灵活性:HTTP协议支持多种请求方法(如GET、POST、PUT、DELETE等),允许客户端对服务器上的资源进行不同的操作。
可扩展性:HTTP协议通过头部字段来携带各种元数据,如Content-Type、Content-Length等,支持协议的扩展和自定义。
三、版本演进
HTTP协议自1991年发布以来,已经历了多个版本的演进,主要包括HTTP 1.0、HTTP 1.1、HTTP 2.0和正在推进中的HTTP 3.0。每个版本都在不断优化和改进,以提高数据传输效率、连接利用率和安全性。
HTTP 1.0:最初的版本,支持持久连接(但非默认),但存在队头阻塞问题。
HTTP 1.1:引入了持久连接(默认)、管道化、分块传输编码、头部压缩等特性,提高了数据传输效率和连接利用率。
HTTP 2.0:使用二进制格式进行数据传输,支持多路复用、服务器推送、流控制和优先级等特性,进一步提高了性能。
HTTP 3.0(正在推进中):计划放弃TCP,使用UDP作为传输层协议,并通过QUIC协议实现可靠传输。这将带来更低的延迟、更快的连接建立速度和增强的安全性。
四、安全性
HTTP协议本身并不提供加密和身份验证机制,因此数据在传输过程中容易被截取和解析。为了增强安全性,通常使用HTTPS(HTTP Secure)协议来传输数据。HTTPS在HTTP的基础上增加了一层加密层(如SSL/TLS),对数据进行加密和解密处理,确保数据传输的安全性。
五、应用场景
HTTP协议广泛应用于Web开发中,是构建Web应用的基础。无论是访问网页、下载文件、提交表单还是进行在线支付等操作,都离不开HTTP协议的支持。同时,随着Web技术的不断发展,HTTP协议也在不断演进和扩展,以适应新的应用需求和技术趋势。
六、总结
HTTP协议是互联网上应用最为广泛的一种网络协议之一,它定义了客户端和服务器之间数据传输的格式和类型。通过不断优化和改进版本演进以及引入新的特性(如HTTPS加密传输、QUIC协议等),HTTP协议将继续为Web应用的发展提供坚实的支持。

URL和URI的联系

URL  统一资源定位符 (Uniform Resource Locator)
	http://www.feng.com/sc/sha.html
uri  统一资源标识符  Uniform Resource Identifier )

统一资源标识符(Uniform Resource Identifier,URI)是一个用于标识某一互联网资源名称的字符串。

URL 是URI
Web上可用的每种资源 -HTML文档、图像、视频片段、程序等 - 由一个通用资源标识符(Uniform Resource Identifier, 简称URI)进行定位。

java ---》spring
python --》flask
go   ---》gin  框架 ---》http协议
chrome  --》http协议

python  ---》requests  --》http协议 --》访问网站



web网站  

ssh

tcp/ip 5层模型
OSI 7层模型

7 应用层: http  ssh  dns
6 表示层
5 会话层
4 传输层: tcp  udp
3 网络层: ip  icmp  arp  ospf
2 数据链路层
1 物理层

应表会传往树屋
tcp  传输控制协议  : 面向连接、传输可靠(不容易丢失数据)
     源端口  60162: 目的端口 80


		先要建立连接,然后传输数据

		3次握手


http 1.0    --》短连接  : 多次访问的时候,就需要频繁的建立连接 --》
http 1.1  -->长连接:  保存一段时间的连接,避免频繁的建立连接,消耗资源--》提高了效率  
	keepalive_timeout  65;
http  2.0
http  3.0

在这里插入图片描述

pv
你知道session和cookie吗?

请求报文
响应报文
正反向代理

yum  install python3 -y
pip3  install  requests  在python3里安装requests库


请求报文
	User-Agent:
	host

响应报文
		server
		code status  
			200 表示服务器成功返回数据给客户机
			304 表示=服务器告诉客户机,网站内容没有修改,客户机浏览器缓存里的数据,和我现在服务器里的数据一模一样,直接使用缓存里的数据

			404  表示客户机去访问的网页不存在
			403  表示客户机没有权限去访问服务器里的网页或者文件
			50*  表示nginx内部出现问题(web服务器内部出现问题)
			
正反向代理

get和post方法都是客户机向服务器发起请求,需要服务器给客户端数据
	get 方法是在URL里传递参数,明文,可以携带的参数有限制,不能很多
	post 方法 ,是body部分传递参数 ---》提交表单给服务器

第八天

负载均衡

准备的环境:

	web1:192.168.205.132
	web2:192.168.205.135
	web3:192.168.205.136
	LB-1:192.168.205.137
web1 和 web2  web3  都需要编译安装nginx  1.26.1

作用

	解决大并发情况下,将流量分散到多台后端服务器上,从而解决web达不到,访问不了的问题
	启动冗余的作用

负载均衡器(LB)也要编译nginx 1.26.1

1. 确认3台后端web服务器是正常提供web服务的

2、修改网站首页内容,增加标识web1、web2、web3的文字

3、配置负载均衡功能

[root@lb-1 conf]# vim nginx.conf
[root@lb-1 conf]# cat nginx.conf
worker_processes  2;
events {
    worker_connections  2048;
}
http {
    #定义一个负载均衡器  名字叫scweb ,会将流量分发到下面的3台服务器里
    upstream scweb {
        server 192.168.205.132;
        server 192.168.205.135;
        server 192.168.205.136;
    }
   #定义一个虚拟主机,对外提供web服务
    server {
        listen 80;
        #定义一个访问网页根目录,定义一个路由,转发到scweb负载均衡配置上去处理
        location / {
            proxy_pass http://scweb;
        }
    }
}

nginx  -t
nginx  -s  reload

4、 调用算法(负载均衡算法)

1.	round-robin  轮询(轮叫) rr  非常公平
(1)	加权轮询  weight
2.	least-connected 最小连接数  
3.	ip-hash  ip_hash算法  让客户机总是访问相同的web服务器,因为客户机的ip地址没有发生变化,适合session信息保存在服务器的场景。 --》 会话持久性

5、健康检测

1.	主动检测
2.	被动检测

6、nfs

nfs: 解决访问3台web服务器看到一样的内容–》数据一致性问题

高可用: 2台负载均衡器

7、数据流过程

第九天

让后端的服务器知道前端的客户机的ip地址

步骤1:在负载均衡器上修改http请求报文头部字段,添加一个X-Real-IP字段

[root@lb-1 conf]# cat nginx.conf
worker_processes  2;
events {
    worker_connections  2048;
}


http {
    #定义一个负载均衡器  名字叫scweb ,会将流量分发到下面的3台服务器里
    upstream scweb {
        #ip_hash;
        #least_conn;
        server 192.168.205.132 weight=10;
        server 192.168.205.135;
        server 192.168.205.136;
    }
   #定义一个虚拟主机,对外提供web服务
    server {
        listen 80;
	#定义一个访问网页根目录,定义一个路由,转发到scweb负载均衡配置上去处理
        location / {
            proxy_pass http://scweb;
            #代理服务器在转发http请求报文的时候,在http请求报文的头部里增加一个字段 名字叫X-Real-IP,它的值来自客户机的ip地址
            proxy_set_header   X-Real-IP        $remote_addr;
        }
    }
}

nginx  -s reload
nginx  -s reload

步骤2:在后端real server上使用这个x_real_ip这个字段

[root@web-1 ~]# cd /usr/local/nginx-1/conf/
[root@web-1 conf]# vim nginx.conf

http {
    include       mime.types;
    default_type  application/octet-stream;
    log_format  main  '$remote_addr - $http_x_real_ip -  $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

 server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }
[root@web-1 conf]# nginx -s reload

在这里插入图片描述

转发功能,转发到go server上,中台功能

一台服务器里运行了2个web服务器
1.	nginx  静态页面  --》80
2.	go  动态页面  --》8080

当用户访问nginx的80端口的时候,转发请求到go语言写的网站的8080端口上

启动go server
[root@web-1 system]# cd /web/
[root@web-1 web]# ls
go+html+mysql+redis.zip  go.mod  go.sum  info.sql  nohup.out  Readme.md  server  server.go  static  templates
[root@web-1 web]# nohup  ./server  &
[1] 1618
[root@web-1 web]# nohup: 忽略输入并把输出追加到"nohup.out"

在nginx服务器上配置转发功能

在这里插入图片描述

[root@web-1 conf]# nginx -t
nginx: the configuration file /usr/local/nginx-1/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx-1/conf/nginx.conf test is successful
[root@web-1 conf]# nginx -s reload
[root@web-1 conf]# 

在这里插入图片描述

也可以转发到www.jd.com 或者www.taobao.com

在这里插入图片描述
在这里插入图片描述

中台路由转发功能

在这里插入图片描述
在这里插入图片描述

需要到web2服务器上的网页根目录下新建sc文件夹,同时sc文件夹里新建index.html文件

500错误
open  to many files  -->因为linux内核限制一个进程默认情况下只能打开1024个

在nginx里的主配置文件里设置了一个worker进程可以起2048个连接(2048个线程)

worker_processes  8;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  2048;
}

通过给内核传递参数,这是一个进程可以打开100000个文件

临时修改
[root@web-2 sc]# ulimit -n 100000
[root@web-2 sc]# ulimit -n 1000000
永久修改ulimit参数
1. 修改/etc/security/limits.conf
*                soft    nofile        100000
*                hard    nofile        100000
[root@web-2 sc]# reboot

502 bad gateway 负载均衡器后面的backend server全部挂了,负载均衡器还是好的

在这里插入图片描述
在这里插入图片描述

高可用

高可用-->HA  High Availability  --》有备份
keepalived

准备一台服务器,直接使用LB1服务器克隆
因为LB1服务器上已经安装了nginx,只要安装keepalived软件

在这里插入图片描述

LB1:192.168.205.137
LB2:192.168.205.138

keepalived

介绍

keepalive是一个用c语言编写的路由软件,这个项目的主要目标是为Linux系统和基于Linux的基础设施提供简单而健壮的负载平衡和高可用性设施。
keepalived是一个路由软件,有2个功能:
1.	loadbalancing 负载均衡 ---》内核里的ipvs软件---》内置到内核里了,不需要安装
2.	高可用  high-availability   ---》VRRP协议    high-availability is achieved by VRRP protocol.
(1)	VRRP协议:虚拟路由冗余协议

安装keepalived软件

[root@lb-1 ~]# yum  install  keepalived -y
[root@lb-2 ~]# yum  install  keepalived -y
[root@lb-1 ~]# cd  /etc/keepalived/
[root@lb-1 keepalived]# ls
keepalived.conf
[root@lb-1 keepalived]# 

Keepalived.conf配置文件的解析

[root@centos-LB-1 keepalived]# vim keepalived.conf 
   #vrrp_strict  注释掉,遵守最严格的vrrp协议
#这是实现高可用的配置
vrrp_instance VI_1 {       启动一个vrrp的实例 VI_1 实例名,可以自定义,一个实例背后就是一个keepalived相关的进程
    state MASTER        --》角色是master   backup
    interface ens33      --》在哪个接口上监听vrrp协议,同时绑定vip到那个接口
    virtual_router_id 105 --》虚拟路由id(帮派) 0~255范围
    priority 120    ---》优先级  0~255
    advert_int 1  --》advert interval 宣告消息 时间间隔 1秒
    authentication {   认证
        auth_type PASS   认证的类型是密码认证
        auth_pass 11112222   具体的密码,可以自己修改
    }
    virtual_ipaddress {   --》vip的配置,vip可以是多个ip,也可以是一个vip
        192.168.200.16 
        192.168.200.17
        192.168.200.18
    }
}


[root@lb-2 keepalived]# cat keepalived.conf 
! Configuration File for keepalived

global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
   vrrp_skip_check_adv_addr
   #vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    virtual_router_id 88
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.205.188
    }
}

[root@lb-2 keepalived]# 

[root@lb-1 keepalived]# cat keepalived.conf 
! Configuration File for keepalived

global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
   vrrp_skip_check_adv_addr
   #vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 88
    priority 120
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.205.188
    }
}

启动keepalived服务

[root@lb-1 keepalived]# systemctl start keepalived
[root@lb-1 keepalived]# systemctl enable keepalived
Created symlink from /etc/systemd/system/multi-user.target.wants/keepalived.service to /usr/lib/systemd/system/keepalived.service.
[root@lb-1 keepalived]# 
[root@lb-2 keepalived]# systemctl start keepalived
[root@lb-2 keepalived]# systemctl enable keepalived
Created symlink from /etc/systemd/system/multi-user.target.wants/keepalived.service to /usr/lib/systemd/system/keepalived.service.

查看vip在哪台服务器上

[root@lb-1 keepalived]# ip add
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:1a:1b:5d brd ff:ff:ff:ff:ff:ff
    inet 192.168.205.137/24 brd 192.168.205.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet 192.168.205.188/32 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe1a:1b5d/64 scope link 
       valid_lft forever preferred_lft forever

确保nginx负载均衡功能是正常运行的

[root@lb-1 conf]# ps aux|grep nginx
[root@lb-2 keepalived]# ps aux|grep nginx

查看负载均衡的配置

[root@lb-2 keepalived]# [root@lb-1 conf]# vim nginx.conf


http {
    #定义一个负载均衡器  名字叫scweb ,会将流量分发到下面的3台服务器里
    upstream scweb {
        #ip_hash;
        #least_conn;
        #server 192.168.205.132:8080 weight=10;
        #server 192.168.205.132:80 weight=10;
        server 192.168.205.135;
        server 192.168.205.136;
    }

验证2台负载均衡器都是好的

在这里插入图片描述
在这里插入图片描述

对外我们只公布有vip地址的负载均衡器,本项目里发布LB-1

[root@lb-1 conf]# ip add
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:1a:1b:5d brd ff:ff:ff:ff:ff:ff
    inet 192.168.205.137/24 brd 192.168.205.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet 192.168.205.188/32 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe1a:1b5d/64 scope link 
       valid_lft forever preferred_lft forever
[root@lb-1 conf]# 

正如您所做的,使用ip add或ip addr show命令来查看网络接口上分配的所有IP地址。如果Keepalived正常工作并且该节点是当前的MASTER,则VIP(例如192.168.205.188)应该显示在其中的一个网络接口上。
根据您提供的信息,似乎192.168.205.188已经被配置到了ens33接口上,这意味着Keepalived可能已经在控制这个VIP。为了进一步确认,可以尝试检查Keepalived的日志文件(通常位于/var/log/messages或通过journalctl -u keepalived查看),以确保没有错误发生,并且Keepalived正在按照预期工作。

对外公布vip 192.168.205.188地址访问

在这里插入图片描述
在这里插入图片描述

验证vip漂移

 systemctl stop keepalived  模拟LB1服务器down机
[root@lb-1 conf]# ip add
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:1a:1b:5d brd ff:ff:ff:ff:ff:ff
    inet 192.168.205.137/24 brd 192.168.205.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe1a:1b5d/64 scope link 
       valid_lft forever preferred_lft forever

LB2上就有vip了
[root@lb-2 conf]# ip add
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:e7:94:6b brd ff:ff:ff:ff:ff:ff
    inet 192.168.205.138/24 brd 192.168.205.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet 192.168.205.188/32 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fee7:946b/64 scope link 
       valid_lft forever preferred_lft forever
[root@lb-2 conf]# 

选举过程

在这里插入图片描述
在这里插入图片描述

双vip架构

在这里插入图片描述

[root@lb-1 keepalived]# cat keepalived.conf 
! Configuration File for keepalived

global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
   vrrp_skip_check_adv_addr
   #vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 88
    priority 120
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.205.188
    }
}
vrrp_instance VI_2 {
    state BACKUP
    interface ens33
    virtual_router_id 99
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.205.199
    }
}

[root@lb-2 keepalived]# cat keepalived.conf 
! Configuration File for keepalived

global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
   vrrp_skip_check_adv_addr
   #vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    virtual_router_id 88
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.205.188
    }
}

vrrp_instance VI_2 {
    state MASTER
    interface ens33
    virtual_router_id 99
    priority 120
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.205.199
    }
}

[root@lb-2 keepalived]# systemctl restart keepalived
[root@lb-2 keepalived]# ip add
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:e7:94:6b brd ff:ff:ff:ff:ff:ff
    inet 192.168.205.138/24 brd 192.168.205.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet 192.168.205.199/32 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fee7:946b/64 scope link 
       valid_lft forever preferred_lft forever

[root@lb-1 keepalived]# systemctl restart keepalived
[root@lb-1 keepalived]# ip add
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:1a:1b:5d brd ff:ff:ff:ff:ff:ff
    inet 192.168.205.137/24 brd 192.168.205.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet 192.168.205.188/32 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe1a:1b5d/64 scope link 
       valid_lft forever preferred_lft forever
[root@lb-1 keepalived]# 

脑裂

脑裂: 就是2台或者多台LB上都有vip地址
原因:
	脑裂现象:
	1.vrid(虚拟路由id)不一样
	2.网络通信有问题:中间有防火墙阻止了网络之间的选举的过程,vrrp报文的通信
	3.认证密码不一样也会出现脑裂

脑裂有没有危害?是否对业务有危害或者对业务有什么影响?
答案:
	没有危害,能正常访问,反而还有负载均衡的作用
	脑裂恢复的时候,还是有影响的,会短暂的中断,影响业务的


nfs的问题

第十天 DNS服务器

1、介绍

DNS 是域名解析系统  domain  name  system
		用来将域名解析到ip,也可以将ip解析到域名
		正向解析:域名解析到ip   --》多
		反向解析:ip解析到域名

因为网络通信过程中使用的ip地址,但是ip地址不好记忆,名字好记,因此开发出来一套系统,给人使用,将域名解析到对应的ip地址。

2、dns服务器的搭建,选择在ansible+Prometheus+nfs服务器(综合服务器)

3、安装软件bind —》加州大学伯克利分校 Berkeley Internet Name Daemon --》BSD ulinx

[root@ansible-prome bin]# yum install bind  bind-utils -y

启动named服务

[root@nfs-ansible-prom prom]# service named restart
Redirecting to /bin/systemctl restart named.service

设置named服务开机启动

[root@nfs-ansible-prom prom]# systemctl enable named
Created symlink from /etc/systemd/system/multi-user.target.wants/named.service to /usr/lib/systemd/system/named.service.
[root@nfs-ansible-prom prom]# 

查看进程

[root@nfs-ansible-prom prom]# ps aux|grep named
named     14125  0.1  1.4 242032 57676 ?        Ssl  16:34   0:00 /usr/sbin/named -u named -c /etc/named.conf
root      14151  0.0  0.0 112824   976 pts/0    S+   16:35   0:00 grep --color=auto named

查看开放udp 53号端口

[root@nfs-ansible-prom prom]# netstat -anplut|grep named
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      14125/named         
tcp        0      0 127.0.0.1:953           0.0.0.0:*               LISTEN      14125/named         
tcp6       0      0 ::1:53                  :::*                    LISTEN      14125/named         
tcp6       0      0 ::1:953                 :::*                    LISTEN      14125/named         
udp        0      0 127.0.0.1:53            0.0.0.0:*                           14125/named         
udp6       0      0 ::1:53                  :::*                                14125/named         
[root@nfs-ansible-prom prom]# 

域名解析的时候,采用udp方式访问dns服务器的–》udp 速度快,效率高

测试 dns服务能否使用,默认情况下,dns服务器只给自己做解析,不给其他的服务器做解析。

[root@ansible-prome bin]# vim /etc/resolv.conf 
#nameserver 114.114.114.114
#nameserver 222.246.129.80
nameserver 127.0.0.1
[root@ansible-prome bin]# nslookup  www.baidu.com
Server:		127.0.0.1
Address:	127.0.0.1#53

Non-authoritative answer:
www.baidu.com	canonical name = www.a.shifen.com.
Name:	www.a.shifen.com
Address: 183.2.172.42
Name:	www.a.shifen.com
Address: 183.2.172.185
Name:	www.a.shifen.com
Address: 240e:ff:e020:9ae:0:ff:b014:8e8b
Name:	www.a.shifen.com
Address: 240e:ff:e020:966:0:ff:b042:f296

[root@ansible-prome bin]# nslookup  www.jd.com
Server:		127.0.0.1
Address:	127.0.0.1#53

Non-authoritative answer:
www.jd.com	canonical name = www.jd.com.gslb.qianxun.com.
www.jd.com.gslb.qianxun.com	canonical name = www.jd.com.s.galileo.jcloud-cdn.com.
www.jd.com.s.galileo.jcloud-cdn.com	canonical name = wwwv6.jcloudimg.com.
Name:	wwwv6.jcloudimg.com
Address: 175.6.186.3
Name:	wwwv6.jcloudimg.com
Address: 240e:c2:1800:14d:8000::3

4、修改配置文件,重启服务器允许其他电脑能过来查询dns域名

[root@nfs-ansible-prom prom]# vim /etc/named.conf
options {
        listen-on port 53 { any; };  #修改
        listen-on-v6 port 53 { any; }; #修改
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        recursing-file  "/var/named/data/named.recursing";
        secroots-file   "/var/named/data/named.secroots";
        allow-query     { any; };  #修改

重新启动named服务
[root@nfs-ansible-prom prom]# service named restart
Redirecting to /bin/systemctl restart named.service
[root@nfs-ansible-prom prom]# 
[root@ansible-prome bin]# ps aux|grep named
named      3415  0.2  1.5 390036 58076 ?        Ssl  15:29   0:00 /usr/sbin/named -u named -c /etcnamed.conf
root       3423  0.0  0.0 112824   980 pts/0    S+   15:30   0:00 grep --color=auto named
[root@ansible-prome bin]# netstat -anplut|grep named
tcp        0      0 192.168.205.134:53      0.0.0.0:*               LISTEN      3415/named          
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      3415/named          
tcp        0      0 127.0.0.1:953           0.0.0.0:*               LISTEN      3415/named          
tcp6       0      0 :::53                   :::*                    LISTEN      3415/named          
tcp6       0      0 ::1:953                 :::*                    LISTEN      3415/named          
udp        0      0 192.168.205.134:53      0.0.0.0:*                           3415/named          
udp        0      0 127.0.0.1:53            0.0.0.0:*                           3415/named          
udp6       0      0 :::53                   :::*                                3415/named          
[root@ansible-prome bin]# 
测试,在另外一台客户机上使用dns服务器,进行域名查询测试
[root@lb-1 conf]# vim /etc/resolv.conf
#nameserver 114.114.114.114
#nameserver 222.246.129.80
nameserver 192.168.205.134

[root@lb-1 conf]# yum  install bind-utils -y

[root@lb-1 conf]# nslookup  www.baidu.com
Server:		192.168.205.134
Address:	192.168.205.134#53

Non-authoritative answer:
www.baidu.com	canonical name = www.a.shifen.com.
Name:	www.a.shifen.com
Address: 183.2.172.185
Name:	www.a.shifen.com
Address: 183.2.172.42
Name:	www.a.shifen.com
Address: 240e:ff:e020:966:0:ff:b042:f296
Name:	www.a.shifen.com
Address: 240e:ff:e020:9ae:0:ff:b014:8e8b

3、 域名需要去购买–》全球统一管理的组织

请你介绍下dns域名的解析过程:

www.baidu.com  为例来说明
www.a.com


1.客户机向本地dns服务器发起dns请求,要求解析域名www.baidu.com的ip
2.本地的dns服务器会在缓存里查找对应的域名,如果有,里面返回给客户机ip地址,如果没有,就问根域名服务器要www.baidu.com对应的ip
3.根域名服务器会返回com.的ip地址,告诉本地dns服务器,问com.服务器www.baidu.com的ip
4.本地dns服务器向com服务器发起请求,com服务器返回baidu.com域名对应的dns服务器的地址
5.本地dns服务器向baidu.com服务器发起请求,baidu.com 域名服务器返回www.baidu.com域名对应的ip地址
6.本地dns服务器缓存www.baidu.com对应的ip,然后告诉客户机
7.客户机去访问www.baidu.com对应的ip服务器


缓存:
		1.浏览器缓存
		2.操作系统缓存
		3.本地dns服务器里的缓存

		TTL: time  to  live   10分钟

scweb.com  --->17000

DNS的记录类型
	www    192.168.205.1

A  地址解析记录  address   将域名解析到ip
NS  域名服务器记录 name   server    一个域名里有多台专门负责域名解析的服务器的ip


缓存域名服务器  --》路由器
	也称为 唯高速缓存服务器
	通过向其他域名服务器查询获得域名->IP地址记录
	将域名查询结果缓存到本地,提高重复查询时的速度
主域名服务器 --》qq.com   163.com  jd.com didi.com  --》可以写入的
	特定DNS区域的官方服务器,具有唯一性,权威性
	负责维护该区域内所有域名->IP地址的映射记录
从域名服务器 --->负责读数据,不能写数据
	也称为 辅助域名服务器
	其维护的 域名->IP地址记录 来源于主域名服务器


4、搭建一台scweb.com 主域名服务器

1.安装软件 bind bind-utils
可以给自己的web集群项目提供域名解析,我们使用sc.com这个域名

1.修改配置文件,告诉named为sc.com提供域名解析

/etc/name.conf 主配置
/etc/named.rfc1912.zones 次要配置文件

[root@nfs-ansible-prom prom]# vim /etc/named.rfc1912.zones
//添加下面的配置,增加一个sc.com的域名
zone "scweb.com" IN {
        type master;
        file "scweb.com.zone";
        allow-update { none; };
};

3./var/named/ 存放dns域名解析的数据文件sc.com.zone --》创建sc.com的数据文件

[root@nfs-ansible-prom prom]# cd /var/named/
[root@nfs-ansible-prom named]# cp -a named.localhost   scweb.com.zone
修改scweb.com.zone文件,添加我们自己的相关服务的A记录和别名记录
[root@nfs-ansible-prom named]# vim scweb.com.zone 
$TTL 1D
@       IN SOA  ns1.scweb.com. rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      ns1.scweb.com.
        A       192.168.205.134
        AAAA    ::1
www  A  192.168.205.188
www  A  192.168.205.199
www  A  192.168.205.177

nfs A  192.168.203.132
xinjiapo A  8.8.8.9

web CNAME  www
luobiao CNAME nfs
*  A 192.168.205.18   
@  A 192.168.205.199
  • 泛域名解析记录
    @ 只是本域名记录 例如: scweb.com

检测数据文件

[root@ansible-prome named]# named-checkzone  scweb.com  scweb.com.zone 
zone scweb.com/IN: loaded serial 0
OK
[root@ansible-prome named]# 
[root@ansible-prome named]# named-checkconf /etc/named.rfc1912.zones 
[root@ansible-prome named]# 

[root@nfs-ansible-prom named]# 

刷新named服务,让新的配置生效

[root@nfs-ansible-prom named]# service named restart
Redirecting to /bin/systemctl restart named.service
[root@nfs-ansible-prom named]# 

[root@ansible-prome named]# ps aux|grep named
named      3531  0.1  1.5 390036 60168 ?        Ssl  17:23   0:00 /usr/sbin/named -u named -c /etcnamed.conf
root       3539  0.0  0.0 112824   976 pts/0    S+   17:23   0:00 grep --color=auto named
[root@ansible-prome named]# 

验证我们自己添加的scweb.com区域是否有效?在另外一台客户机上进行测试,需要填写本地的dns服务器ip

[root@lb-1 conf]#  cat /etc/resolv.conf
# Generated by NetworkManager
#nameserver 114.114.114.114
#nameserver 222.246.129.80
nameserver 192.168.205.134
[root@lb-1 conf]# 

[root@lb-1 conf]# nslookup  www.scweb.com
Server:		192.168.205.134
Address:	192.168.205.134#53

Name:	www.scweb.com
Address: 192.168.205.199
Name:	www.scweb.com
Address: 192.168.205.177
Name:	www.scweb.com
Address: 192.168.205.188

[root@lb-1 conf]# 

[root@lb-1 conf]# dig NS scweb.com

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.16 <<>> NS scweb.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23042
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;scweb.com.			IN	NS

;; ANSWER SECTION:
scweb.com.		86400	IN	NS	ns1.scweb.com.

;; ADDITIONAL SECTION:
ns1.scweb.com.		86400	IN	A	192.168.205.188

;; Query time: 0 msec
;; SERVER: 192.168.205.134#53(192.168.205.134)
;; WHEN: 四 718 17:30:32 CST 2024
;; MSG SIZE  rcvd: 72

[root@lb-1 conf]# dig +short  NS scweb.com
ns1.scweb.com.
[root@lb-1 conf]#



[root@lb-1 conf]# nslookup xinjiapo.scweb.com
Server:		192.168.205.134
Address:	192.168.205.134#53

Name:	xinjiapo.scweb.com
Address: 8.8.8.9

[root@lb-1 conf]# ping  xinjiapo.scweb.com
PING xinjiapo.scweb.com (8.8.8.9) 56(84) bytes of data.
^C
--- xinjiapo.scweb.com ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 1013ms

[root@lb-1 conf]# 
[root@lb-1 conf]# nslookup www.baidu.com
Server:		192.168.205.134
Address:	192.168.205.134#53

Non-authoritative answer:
www.baidu.com	canonical name = www.a.shifen.com.
Name:	www.a.shifen.com
Address: 183.2.172.42
Name:	www.a.shifen.com
Address: 183.2.172.185
Name:	www.a.shifen.com
Address: 240e:ff:e020:9ae:0:ff:b014:8e8b
Name:	www.a.shifen.com
Address: 240e:ff:e020:966:0:ff:b042:f296

[root@lb-1 conf]# nslookup  luobiao.scweb.com
Server:		192.168.205.134
Address:	192.168.205.134#53

luobiao.scweb.com	canonical name = nfs.scweb.com.
Name:	nfs.scweb.com
Address: 192.168.203.132

[root@lb-1 conf]# 

[root@lb-1 conf]# nslookup  luobiao.scweb.com
Server:		192.168.205.134
Address:	192.168.205.134#53

luobiao.scweb.com	canonical name = nfs.scweb.com.
Name:	nfs.scweb.com
Address: 192.168.203.132

[root@lb-1 conf]# nslookup   zhouqiang.scweb.com
Server:		192.168.205.134
Address:	192.168.205.134#53

Name:	zhouqiang.scweb.com
Address: 192.168.205.188

[root@lb-1 conf]# nslookup   fanzhonglin.scweb.com
Server:		192.168.205.134
Address:	192.168.205.134#53

Name:	fanzhonglin.scweb.com
Address: 192.168.205.188

[root@lb-1 conf]# nslookup   scweb.com
Server:		192.168.205.134
Address:	192.168.205.134#53

Name:	scweb.com
Address: 192.168.205.199
Name:	scweb.com
Address: 192.168.205.134
Name:	scweb.com
Address: ::1

问题:

	hosts文件里的域名解析优先级比DNS服务器高
	能解析出来不能ping通,不关dns服务器的事,是网络的问题或者相关服务器的问题
	别名记录的作用,可以将流量导入到其他的地方---》CDN
1、当服务启动不了的时候,如何排错?
1.看日志
2.使用检测工具:
	检测配置文件和数据文件
/var/log/messages 日志文件
[root@nameserver data]# tail -f /var/log/messages

检查数据文件是否有错误
[root@nameserver data]# named-checkzone sc.com  /var/named/sc.com.zone  
zone sc.com/IN: loaded serial 0
OK
[root@nameserver data]# 
检查配置文件
[root@nameserver data]# named-checkconf /etc/named.rfc1912.zones  

2.dns的记录类型
3.域名解析的过程

11 项目

简历:

项目名称:
				web集群
				高性能的web集群
				基于nginx+keepalived的web高性能的集群项目
				基于go语言的web高性能的集群项目
				高性能的音乐交流网站
				高性能的外卖网站
				高性能的******后台系统			
项目描述:
				       模拟企业里的web项目需求,构建一个高可用高性能的web集群系统。采用nginx做负载均衡软件,keepalived实现高可用,搭建内部的一套基于Prometheus+grafana的监控系统,采用nfs实现数据一致性,采用ansible实现自动化运维,后台的web系统采用(nginx/go后台/python后台/java后台等),数据库采用MySQL+redis,通过域名访问,实现https功能。

				       差异化思路:  
				       1.你的网站的内容和功能,例如:买苹果、买梨子,人事管理、外卖、音乐、电影、二手图书等
				       2.顺序:
				       3.增加或者减少内容:
项目环境: 使用的软件及版本
项目周期:  2021年07月 - 2021年09月
项目步骤:
			你是如何完成的--》方案:
			使用什么技术解决了什么问题
			分类: 
					监控:
					存储:
					自动化运维: 
					高可用:
					LB
					后台:
					等
项目心得:
		成果:  成绩
		摆数据: 服务器的数量、时间、

http://www.kler.cn/a/525562.html

相关文章:

  • < OS 有关> BaiduPCS-Go 程序的 菜单脚本 Script: BaiduPCS-Go.Menu.sh (bdgo.sh)
  • 前端-Rollup
  • shiro学习五:使用springboot整合shiro。在前面学习四的基础上,增加shiro的缓存机制,源码讲解:认证缓存、授权缓存。
  • 复古壁纸中棕色系和米色系哪个更受欢迎?
  • 计算机网络 (60)蜂窝移动通信网
  • SQL UCASE() 函数详解
  • 深入解析 C++17 中的 std::not_fn
  • 数据结构--差分数组(含题目)<基础入门>
  • 2025创业思路和方向有哪些?
  • 最新版仿天涯论坛系统源码带后台
  • 30组成字符串ku的最大次数-青训营刷题
  • 将点云转换为 3D 网格:Python 指南
  • 分享几个好用的Edge扩展插件
  • 自制一个入门STM32 四足机器人具体开发顺序
  • Pwn 入门核心工具和命令大全
  • 简要介绍C语言与c++共有的数学函数
  • Versal - 基础3(AXI NoC 专题+仿真+QoS)
  • Leetcode Unique Path II
  • 【华为OD-E卷 - VLAN资源池 100分(python、java、c++、js、c)】
  • 【Elasticsearch】 Compound Queries
  • 三天急速通关JavaWeb基础知识:Day 1 后端基础知识
  • 你好!这是我自己的CSDN博客!
  • 【B站保姆级视频教程:Jetson配置YOLOv11环境(二)SSH连接的三种方式】
  • 伪装难掩锋芒:新一代奥迪 RS5 Sportback 路测图首曝
  • CARAFE模型详解
  • nodejs:js-mdict 的下载、安装、测试、build