nginx高新能web服务器

一、Nginx 概述和安装

Nginx是免费的、开源的、高性能的HTTP和反向代理服务器、邮件代理服务器、以及TCP/UDP代理服务器。

Nginx 功能介绍

静态的web资源服务器html,图片,js,css,txt等静态资源

http/https协议的反向代理

结合FastCGI/uWSGI/SCGI等协议反向代理动态资源请求

tcp/udp协议的请求转发(反向代理)

imap4/pop3协议的反向代理
基础特性

模块化设计,较好的扩展性

高可靠性

支持热部署:不停机更新配置文件,升级版本,更换日志文件

低内存消耗:10000个keep-alive连接模式下的非活动连接,仅需2.5M内存

event-driven,aio,mmap,sendfile
Web 服务相关的功能

虚拟主机(server)

支持 keep-alive 和管道连接(利用一个连接做多次请求)

访问日志(支持基于日志缓冲提高其性能)

http://openr

url rewirte

路径别名

基于IP及用户的访问控制

支持速率限制及并发数限制

重新配置和在线升级而无须中断客户的工作进程

Nginx 安装

官方源码包下载地址:https://nginx.org/en/download.html

编译安装 Nginx

root@Nginx \~\]# dnf install gcc pcre-devel zlib-devel openssl-devel -y \[root@Nginx nginx\]# tar zxf nginx-1.24.0.tar.gz \[root@Nginx nginx-1.24.0\]# useradd -s /sbin/nologin -M nginx \[root@Nginx nginx\]# cd nginx-1.24.0/ \[root@Nginx nginx-1.24.0\]# ./configure --prefix=/usr/local/nginx \\ --user=nginx \\ # 指定nginx运行用户 --group=nginx \\ # 指定nginx运行组 --with-http_ssl_module \\ # 支持https:// --with-http_v2_module \\ # 支持http版本2 --with-http_realip_module \\ # 支持ip透传 --with-http_stub_status_module \\ # 支持状态页面 --with-http_gzip_static_module \\ # 支持压缩 --with-pcre \\ # 支持正则 --with-stream \\ # 支持tcp反向代理 --with-stream_ssl_module \\ # 支持tcp的ssl加密 --with-stream_realip_module # 支持tcp的透传ip \[root@Nginx nginx-1.24.0\]# make \&\& make install \[root@Nginx \~\]# vim \~/.bash_profile export PATH=$PATH:/usr/local/nginx/sbin \[root@Nginx \~\]# source \~/.bash_profile

Nginx 启动文件

root@Nginx \~\]# vim /lib/systemd/system/nginx.service \[Unit

Description=The NGINX HTTP and reverse proxy server

After=syslog.target network-online.target remote-fs.target nss-lookup.target

Wants=network-online.target

Service

Type=forking

PIDFile=/usr/local/nginx/logs/nginx.pid

ExecStartPre=/usr/local/nginx/sbin/nginx -t

ExecStart=/usr/local/nginx/sbin/nginx

ExecReload=/usr/local/nginx/sbin/nginx -s reload

ExecStop=/bin/kill -s QUIT $MAINPID

PrivateTmp=true

Install

WantedBy=multi-user.target

root@Nginx \~\]# systemctl daemon-reload \[root@Nginx \~\]# systemctl start nginx

二、平滑升级和回滚

root@Nginx nginx\]# tar zxf nginx-1.26.1.tar.gz \[root@Nginx nginx\]# cd nginx-1.26.1/ \[root@Nginx nginx-1.26.1\]# ./configure --with-http_ssl_module --withhttp_v2_module --with-http_realip_module --with-http_stub_status_module --withhttp_gzip_static_module --with-pcre --with-stream --with-stream_ssl_module -- with-stream_realip_module \[root@Nginx nginx-1.26.1\]# make \[root@Nginx nginx-1.26.1\]# ll objs/nginx /usr/local/nginx/sbin/nginx -rwxr-xr-x 1 root root 1239416 Jul 18 15:08 objs/nginx -rwxr-xr-x 1 root root 5671488 Jul 18 11:41 /usr/local/nginx/sbin/nginx \[root@Nginx \~\]# cd /usr/local/nginx/sbin/ \[root@Nginx sbin\]# cp nginx nginx.24 \[root@Nginx sbin\]# \\cp -f /root/nginx/nginx-1.26.1/objs/nginx /usr/local/nginx/sbin \[root@Nginx sbin\]# nginx -t nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful \[root@Nginx sbin\]# kill -USR2 39014 #nginx worker ID

root@Nginx sbin\]# kill -WINCH 48732 \[root@Nginx sbin\]# ps aux \| grep nginx root 48732 0.0 0.1 9868 2436 ? Ss 14:17 0:00 nginx: master process /usr/local/nginx/sbin/nginx root 52075 0.0 0.3 9876 6528 ? S 15:41 0:00 nginx: master process /usr/local/nginx/sbin/nginxnobody 52076 0.0 0.2 14208 4868 ? S 15:41 0:00 nginx: worker process

root@Nginx sbin\]# cp nginx nginx.26 \[root@Nginx sbin\]# ls nginx nginx.24 nginx.26 \[root@Nginx sbin\]# mv nginx.24 nginx \[root@Nginx sbin\]# kill -HUP 48732 \[root@Nginx sbin\]# ps aux \| grep nginx root 48732 0.0 0.1 9868 2436 ? Ss 14:17 0:00 nginx: master process /usr/local/nginx/sbin/nginx root 52075 0.0 0.3 9876 6528 ? S 15:41 0:00 nginx: master process /usr/local/nginx/sbin/nginx nobody 52076 0.0 0.2 14208 5124 ? S 15:41 0:00 nginx: worker process nobody 52130 0.0 0.2 14200 4868 ? S 16:30 0:00 nginx: worker process \[root@Nginx sbin\]# kill -WINCH 52075 root 48732 0.0 0.1 9868 2436 ? Ss 14:17 0:00 nginx: master process /usr/local/nginx/sbin/nginx root 52075 0.0 0.3 9876 6528 ? S 15:41 0:00 nginx: master process /usr/local/nginx/sbin/nginx nobody 52130 0.0 0.2 14200 4868 ? S 16:30 0:00 nginx: worker process root 52137 0.0 0.1 221664 2176 pts/0 S+ 16:31 0:00 grep -- color=auto nginx

三、Nginx 核心配置详解

nginx 官方帮助文档: http://nginx.org/en/docs/

Nginx的配置文件的组成部分:

主配置文件:nginx.conf

子配置文件: include conf.d/*.conf

fastcgi, uwsgi,scgi 等协议相关的配置文件

mime.types:支持的mime类型,MIME(Multipurpose Internet Mail Extensions)多用途互联网邮

件扩展类型,MIME消息能包含文本、图像、音频、视频以及其他应用程序专用的数据,是设定某

种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动

使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。

实现 nginx 的高并发配置

root@Nginx \~\]# ulimit -n 102400 \[root@Nginx \~\]# ab -c 5000 -n 10000 http://10.0.0.8/ #默认配置不支持高并发,会出现以下错误日志 \[root@Nginx \~\]# tail /apps/nginx/logs/error.log 2020/09/24 21:19:33 \[crit\] 41006#0: \*1105860 open() "/apps/nginx/html/50x.html" failed (24: Too many open files), client: 10.0.0.7, server: localhost, request: "GET / HTTP/1.0", host: "10.0.0.8" 2020/09/24 21:19:33 \[crit\] 41006#0: accept4() failed (24: Too many open files) 2020/09/24 21:19:33 \[crit\] 41006#0: \*1114177 open() "/apps/nginx/html/index.html" failed (24: Too many open files), client: 10.0.0.7, server: localhost, request: "GET / HTTP/1.0", host: "10.0.0.8" #修改配置 \[root@Nginx \~\]# vim /etc/security/limits.conf \* - nproc 100000 \[root@Nginx \~\]# vim /apps/nginx/conf/nginx.conf worker_rlimit_nofile 100000; \[root@Nginx \~\]# systemctl restart nginx

root 与 alias

root:指定web的家目录,在定义location的时候,文件的绝对路径等于 root+location

root@Nginx \~\]# mkdir /mnt/dirtest/ \[root@Nginx \~\]# echo dirtest page \> /mnt/dirtest/index.html \[root@Nginx \~\]# nginx -s reload #重启Nginx并访问测试 \[root@node100 \~\]# curl lee.timinglee.org/dirtest/dirtest page

alias:定义路径别名,会把访问的路径重新定义到其指定的路径,文档映射的另一种机制;仅能用于

location上下文,此指令使用较少

#重启Nginx并访问测试

root@node100 \~\]# curl lee.timinglee.org/alias/dirtest page

location 的详细使用

匹配案例-精确匹配

root@Nginx \~\]# mkdir /webdata/nginx/timinglee.org/lee/images -p \[root@Nginx \~\]# ls /webdata/nginx/timinglee.org/lee/images \[root@Nginx \~\]# vim /usr/local/nginx/conf.d/vhosts.conf server { listen 80; server_name lee.timinglee.org; location / { root /webdata/nginx/timinglee.org/lee/html; } location = /logo.png { root /webdata/nginx/timinglee.org/lee/images; } }

匹配案例-区分大小写

server {

listen 80;

server_name lee.timinglee.org;

location / {

root /webdata/nginx/timinglee.org/lee/html;

}

location ~ /logo.PNG {

root /webdata/nginx/timinglee.org/lee/images;

}

}

匹配案例-不区分大小写

server {

listen 80;

server_name lee.timinglee.org;

location / {

root /webdata/nginx/timinglee.org/lee/html;

}

location ~* /logo.PNG {

root /webdata/nginx/timinglee.org/lee/images;

}

}

匹配案例-URI开始

root@Nginx \~\]# mkdir /webdata/nginx/timinglee.org/lee/images/images{1,2} \[root@Nginx \~\]# echo image1 \> /webdata/nginx/timinglee.org/lee/images/images1/index.html \[root@Nginx \~\]# echo image1 \> /webdata/nginx/timinglee.org/lee/images/images2/index.html server { listen 80; server_name lee.timinglee.org; location / { root /webdata/nginx/timinglee.org/lee/html; } location \^\~ /images { root /webdata/nginx/timinglee.org/lee/images; index index.html; } location /images1 { root /webdata/nginx/timinglee.org/lee/images; } }

匹配案例-文件名后缀

root@Nginx \~\]# mkdir /webdata/nginx/timinglee.org/lee/images #上传一个图片到/webdata/nginx/timinglee.org/lee/images server { listen 80; server_name lee.timinglee.org; location / { root /webdata/nginx/timinglee.org/lee/html; } location \~\* \\.(gif\|jpg\|jpeg\|bmp\|png\|tiff\|tif\|ico\|wmf\|js\|css)$ { root /webdata/nginx/timinglee.org/lee/images; index index.html; } }

匹配案例-优先级

server {

listen 80;

server_name lee.timinglee.org;

location / {

root /webdata/nginx/timinglee.org/lee/html;

}

location ^~ /images {

root /webdata/nginx/timinglee.org/lee/images;

index index.html;

}

location /images1 {

root /webdata/nginx/timinglee.org/lee/images;

}

location ~* \.(gif|jpg|jpeg|bmp|png|tiff|tif|ico|wmf|js)$ {

root /data/nginx/static3;

index index.html;

}

}

Nginx 账户认证功能

root@Nginx \~\]# htpasswd -cmb /usr/local/nginx/conf/.htpasswd admin lee #-b 表 示非交互建立用户认证 Adding password for user admin \[root@Nginx \~\]# htpasswd -mb /usr/local/nginx/conf/.htpasswd lee lee Adding password for user lee \[root@Nginx \~\]# cat /usr/local/nginx/conf/.htpasswd admin:$apr1$haGCKgCT$myogggALmqNecTyNupsWQ/ lee:$apr1$H97AyQPF$kGU.Tc4zn1E4Zkp/M4R6G. } \[root@Nginx \~\]# mkdir /webdata/nginx/timinglee.org/lee/login \[root@Nginx \~\]# echo login \> /webdata/nginx/timinglee.org/lee/login/index.html \[root@Nginx \~\]# vim /usr/local/nginx/conf.d/vhosts.conf server { listen 80; server_name lee.timinglee.org; location /login { root /webdata/nginx/timinglee.org/lee; index index.html; auth_basic "login password"; auth_basic_user_file "/usr/local/nginx/conf/.htpasswd"; } #重启Nginx并访问测试 \[root@node100 \~\]# curl lee.timinglee.org/login/ -u lee:lee login \[root@node100 \~\]# curl lee.timinglee.org/login/ -u admin:lee login

自定义错误页面

#重启Nginx并访问测试

root@node100 \~\]# curl lee.timinglee.org/login/ -u lee:lee login \[root@node100 \~\]# curl lee.timinglee.org/login/ -u admin:lee login

自定义错误页面

root@Nginx \~\]# mkdir /webdata/nginx/timinglee/lee/errors -p \[root@Nginx \~\]# echo error page \> /webdata/nginx/timinglee/lee/errors/40x.html 测试: \[root@node100 \~\]# curl lee.timinglee.org/haha error page

自定义错误日志

root@Nginx \~\]# mkdir "/var/log/nginx" -p \[root@Nginx \~\]# vim /usr/local/nginx/conf.d/vhosts.conf #重启nginx并访问不存在的页面进行测试并验证是在指定目录生成新的日志文件

检测文件是否存在

root@Nginx \~\]# echo "index.html is not exist" \> /webdata/nginx/timinglee.org/lee/error/default.html \[root@Nginx \~\]# vim /usr/local/nginx/conf.d/vhosts.conf 测试: curl lee.timinglee.org

四、Nginx 高级配置

Nginx 状态页

#配置示例:

location /nginx_status {

stub_status;

auth_basic "auth login";

auth_basic_user_file /apps/nginx/conf/.htpasswd;

allow 192.168.0.0/16;

allow 127.0.0.1;

deny all;

}

#状态页用于输出nginx的基本状态信息:

#输出信息示例:

Active connections: 291

server accepts handled requests

16630948 16630948 31070465

上面三个数字分别对应accepts,handled,requests三个值

Reading: 6 Writing: 179 Waiting: 106

Active connections: #当前处于活动状态的客户端连接数

#包括连接等待空闲连接数=reading+writing+waiting

accepts: #统计总值,Nginx自启动后已经接受的客户端请求连接的总数。

handled: #统计总值,Nginx自启动后已经处理完成的客户端请求连接总数

#通常等于accepts,除非有因worker_connections限制等被拒绝的

连接

requests: #统计总值,Nginx自启动后客户端发来的总的请求数

Reading: #当前状态,正在读取客户端请求报文首部的连接的连接数

#数值越大,说明排队现象严重,性能不足

Writing: #当前状态,正在向客户端发送响应报文过程中的连接数,数值越大,说明

访问量很大

Waiting: #当前状态,正在等待客户端发出请求的空闲连接数

开启 keep-alive的情况下,这个值等于active --

(reading+writing)

Nginx 压缩功能

root@webservera \~\]# cp /usr/local/nginx/logs/access.log /web/html/big.html \[root@webservera \~\]# echo hello \> /web/html/small.html \[root@webservera \~\]# vim /usr/local/nginx/conf/nginx.conf gzip on; gzip_comp_level 5; gzip_min_length 1k; gzip_types text/plain text/css application/javascript application/x-javascript application/xml text/javascript application/x-httpd-php image/gif image/png; gzip_vary on; gzip_proxied any;

Nginx的版本隐藏

root@Nginx nginx-1.26.1\]# vim src/core/nginx.h #define nginx_version 1026001 #define NGINX_VERSION "1.0" #define NGINX_VER "HAHA/" NGINX_VERSION

内置变量

官方文档http://nginx.org/en/docs/varindex.html

root@Nginx \~\]# vim /usr/local/nginx/conf.d/vhosts.conf server { listen 80; server_name lee.timinglee.org; root /webdata/nginx/timinglee.org/lee; location /var { default_type text/html; echo $remote_addr; echo $args; echo $document_root; echo $document_uri; echo $host; echo $http_user_agent; echo $request_filename; echo $scheme; echo $scheme://$host$document_uri?$args; echo $http_cookie; echo $cookie_key2; echo $http_Accept; } }

五、Nginx Rewrite 相关功能

ngx_http_rewrite_module 模块指令

官方文档: https://nginx.org/en/docs/http/ngx_http_rewrite_module.html

if 指令

官方文档:https://nginx.org/en/docs/http/ngx_http_rewrite_module.html#if

set指令

root@Nginx \~\]# vim /usr/local/nginx/conf.d/vhosts.conf server { listen 80; server_name lee.timinglee.org; root /webdata/nginx/timinglee.org/lee; location /test3{ set $name lee; echo $name; } } 测试: \[root@client \~\]# curl lee.timinglee.org/test3 lee

break 指令

root@Nginx \~\]# vim /usr/local/nginx/conf.d/vhosts.conf server { listen 80; server_name lee.timinglee.org; root /webdata/nginx/timinglee.org/lee; location /break{ default_type text/html; set $name lee; echo $name; break; set $port $server_port; echo $port; } } \[root@client \~\]# curl lee.timinglee.org/break #当未添加break时 lee 80 \[root@client \~\]# curl lee.timinglee.org/break #添加break后 lee

return 指令

server {

listen 80;

server_name lee.timinglee.org;

root /webdata/nginx/timinglee.org/lee;

location /return {

default_type text/html;

if ( !-e $request_filename){

return 301 http://www.baidu.com;

#return 666 "$request_filename is not exist";

}

echo "$request_filename is exist";

}

}

测试:

root@client \~\]# curl lee.timinglee.org/return /webdata/nginx/timinglee.org/lee/return is exist \[root@client \~\]# curl lee.timinglee.org/return1 /webdata/nginx/timinglee.org/lee/return1 is not exist #测试return 301 http://www.baidu.com; 可在浏览器直接访问lee.timinglee.org/return1

rewrite 指令

官方文档:https://nginx.org/en/docs/http/ngx_http_rewrite_module.html#rewrite

Nginx 防盗链

实现盗链

#新建一个主机172.25.254.20,盗取另一台主机lee.timinglee.org/images/lee.png的图片

root@client \~\]# yum install httpd -y \[root@client html\]# vim /var/www/html/index.html #准备盗链web页面: \ \ \ \盗链\ \ \ \ \

欢迎大家\ \\狂点老李\出门见喜\ \ \

定义防盗链

root@Nginx \~\]# vim /usr/local/nginx/conf.d/vhosts.conf server { listen 80; server_name www.timinglee.org; root /data/web/html; index index.html; location / { valid_referers none blocked server_names \*.timinglee.org \~/.baidu/.; if ($invalid_referer){ return 404; } } location /images { valid_referers none blocked server_names \*.timinglee.org \~/.baidu/.; if ($invalid_referer){ rewrite \^/ http://www.timinglee.org/daolian.png permanent; #注意此图片不能和正常图片放在一个目录中 } } } #重启Nginx并访问测试 http://172.25.254.20

六、Nginx 反向代理功能

实现 http 反向代理

官方文档: https://nginx.org/en/docs/http/ngx_http_proxy_module.html

反向代理单台 web 服务器

root@webservera \~\]# vim /usr/local/nginx/conf.d/vhosts.conf \[root@webservera \~\]# nginx -s reload #测试 \[root@client \~\]# curl www.timinglee.org 172.25.254.20

指定 location 实现反向代理

root@webservera \~\]# vim /usr/local/nginx/conf.d/vhosts.conf \[root@webservera \~\]# nginx -s reload #后端web服务器必须要有相对于的访问URL \[root@RS1 \~\]# echo 172.25.254.20 \> /var/www/html/index.html \[root@RS2 \~\]# vim /etc/httpd/conf/httpd.conf Listen 8080 \[root@RS2 \~\]# systemctl restart httpd \[root@RS2 \~\]# mkdir /var/www/html/static \[root@RS2 \~\]# echo static 172.25.254.30 \> /var/www/html/static/index.html #测试 \[root@client \~\]# curl www.timinglee.org/static/ static 172.25.254.30 \[root@client \~\]# curl www.timinglee.org 172.25.254.20

http 反向代理负载均衡

官方文档:https://nginx.org/en/docs/http/ngx_http_upstream_module.html

实现 Nginx 四层负载均衡

官方文档:https://nginx.org/en/docs/stream/ngx_stream_proxy_module.html

tcp负载均衡配置参数

stream { #定义stream相关的服务;

Context:main

upstream backend { #定义后端服务器

hash $remote_addr consistent; #定义调度算法

server backend1.example.com:12345 weight=5; #定义具体server

server 127.0.0.1:12345 max_fails=3 fail_timeout=30s;

server unix:/tmp/backend3;

}

upstream dns { #定义后端服务器

server 10.0.0.1:53; #定义具体server

server dns.example.com:53;

}

server { #定义server

listen 12345; #监听IP:PORT

proxy_connect_timeout 1s; #连接超时时间

proxy_timeout 3s; #转发超时时间

proxy_pass backend; #转发到具体服务器组

}

server {

listen 127.0.0.1:53 udp reuseport;

proxy_timeout 20s;

proxy_pass dns;

}

server {

listen [::1]:12345;

proxy_pass unix:/tmp/stream.socket;

}

}

负载均衡实例: MySQL

在RS1与RS2上安装mysql

RS1

root@RS1 \~\]# yum install mariadb-server -y \[root@RS1 \~\]# vim /etc/my.cnf.d/mariadb-server.cnf \[mysqld

server-id=20

root@RS1 \~\]# systemctl start mariadb \[root@RS1 \~\]# mysql -e "grant all on \*.\* to lee@'%' identified by 'lee';" RS2 \[root@RS2 \~\]# yum install mariadb-server -y \[root@RS2 \~\]# vim /etc/my.cnf.d/mariadb-server.cnf \[mysqld

server-id=30

root@RS2 \~\]# systemctl start mariadb \[root@RS2 \~\]# mysql -e "grant all on \*.\* to lee@'%' identified by 'lee';"

nginx配置

root@webservera \~\]# vim /usr/local/nginx/conf/nginx.conf include /usr/local/nginx/tcp.d/\*.conf; \[root@webservera \~\]# mkdir -p /usr/local/nginx/tcp.d \[root@webservera \~\]# vim /usr/local/nginx/tcp.d/mysql.conf stream { upstream mysql_server { server 172.25.254.20:3306 max_fails=3 fail_timeout=30s; server 172.25.254.30:3306 max_fails=3 fail_timeout=30s; } server { listen 172.25.254.10:3306; proxy_pass mysql_server; proxy_connect_timeout 30s; proxy_timeout 300s; } } #重启nginx并访问测试 \[root@webservera \~\]# nginx -s reload #测试通过nginx负载连接MySQL: \[root@RS2 \~\]# mysql -ulee -plee -h172.25.254.10 -e "select @@server_id" +-------------+ \| @@server_id \| +-------------+ \| 20 \| +-------------+ \[root@RS2 \~\]# mysql -ulee -plee -h172.25.254.10 -e "select @@server_id" +-------------+ \| @@server_id \| +-------------+ \| 30 \| +-------------+ \[root@RS2 \~\]# #在172.25.254.20停止MySQL服务 #再次测试访问,只会看到mysql-server1.timinglee.org进行响应 \[root@RS2 \~\]# mysql -ulee -plee -h172.25.254.10 -e "select @@server_id" +-------------+ \| @@server_id \| +-------------+ \| 30 \| +-------------+ \[root@RS2 \~\]# mysql -ulee -plee -h172.25.254.10 -e "select @@server_id" +-------------+ \| @@server_id \| +-------------+ \| 30 \| +-------------+

udp 负载均衡实例: DNS

root@webservera \~\]# vim /usr/local/nginx/tcp.d/mysql.conf stream { upstream dns_server { server 172.25.254.20:53 max_fails=3 fail_timeout=30s; server 172.25.254.30:53 max_fails=3 fail_timeout=30s; } server { listen 172.25.254.10:53 udp; proxy_pass dns_server; proxy_timeout 1s; proxy_responses 1; } } \[root@webservera \~\]# nginx -s reload \[root@webservera \~\]# systemctl restart nginx.service 在RS1与RS2上下载yum install bind bind-utils RS1 \[root@RS1 \~\]# vi /etc/named.conf listen-on port 53 { 127.0.0.1;172.25.254.20; }; \[root@RS1 \~\]# systemctl restart named \[root@RS1 \~\]# sudo named-checkconf RS2 \[root@RS2 \~\]# vi /etc/named.conf listen-on port 53 { 127.0.0.1;172.25.254.30; }; \[root@RS2 \~\]# systemctl restart named \[root@RS2 \~\]# sudo named-checkconf #测试 \[root@RS2 \~\]#dig www.timinglee.org @172.25.254.10 ; \<\<\>\> DiG 9.16.23 \<\<\>\> www.timinglee.org @172.25.254.10 ;; global options: +cmd ;; Got answer: ;; -\>\>HEADER\<\<- opcode: QUERY, status: NOERROR, id: 8932 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 1232 ; COOKIE: 8ecb61bbfe2716df0100000066a27b47a3bb0c3d8e537858 (good) ;; QUESTION SECTION: ;www.timinglee.org. IN A ;; ANSWER SECTION: www.timinglee.org. 86400 IN A 172.25.254.30 ;; Query time: 1 msec ;; SERVER: 172.25.254.10#53(172.25.254.10) ;; WHEN: Fri Jul 26 00:20:23 CST 2024 ;; MSG SIZE rcvd: 90

相关推荐
sniper_fandc2 分钟前
VirtualBox虚拟机网卡配置
linux·网络·虚拟机
白鸽梦游指南18 分钟前
RHCE模拟测试
linux·运维·服务器
不会吉他的肌肉男不是好的挨踢男28 分钟前
Linux生成自签名 SSL 证书(适用于测试或内部使用)
linux·运维·ssl
飘忽不定的bug1 小时前
linux磁盘加密
linux·开源
herderl1 小时前
【无标题】命名管道(Named Pipe)是一种在操作系统中用于**进程间通信(IPC)** 的机制
java·linux·服务器·嵌入式硬件·php
基于python的毕设1 小时前
C语言宏相关操作
linux·c语言·ubuntu
研究是为了理解1 小时前
Linux Shell:Nano 编辑器备忘
linux·运维·编辑器
千反田真的打不过我2 小时前
阿里云服务linux安装单机版
linux·阿里云·云计算
william_myq2 小时前
RK3568-RTL8852BS驱动框架
linux·wifi·rk3568·rtl8852bs
林鸿群2 小时前
Linux Shell为文件添加BOM并自动转换为unix格式
linux·运维·unix