2024年最新综合架构web服务之nginx详解_综合架构web 服务nginx详解(1),网络安全经典面试题详解

给大家的福利

零基础入门

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

同时每个成长路线对应的板块都有配套的视频提供:

在这里插入图片描述

因篇幅有限,仅展示部分资料

网络安全面试题

绿盟护网行动

还有大家最喜欢的黑客技术

网络安全源码合集+工具包

所有资料共282G,朋友们如果有需要全套《网络安全入门+黑客进阶学习资源包》,可以扫描下方二维码领取(如遇扫码问题,可以在评论区留言领取哦)~

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

……

* **nginx 主配置文件介绍**



> 
> 
> ```
> # 备份 nginx 配置文件
> [root@web_server01/etc/nginx]# cp nginx.conf{,.bak}
> 
> # 过滤以 空格 开头的内容
> [root@web_server01/etc/nginx]# grep "^$" nginx.conf.bak
> 
> # 将过滤出来的内容取反
> [root@web_server01/etc/nginx]# grep -v "^$" nginx.conf.bak
> 
> # 过滤取反后的文件重定向 到nginx 配置文件中
> [root@web_server01/etc/nginx]# grep -v "^$" nginx.conf.bak > nginx.conf
> 
> ==重要提示==
> [root@web_server01/etc/nginx]# cat nginx.conf
> # 第一部分:配置文件主区域配置
> 
> user  nginx;                             # 定义worker进程管理的用户
> worker_processes  auto;                  # 定义有几个worker进程,它等于CPU 核数 /核数的2倍 
> error_log  /var/log/nginx/error.log notice;   #定义错误日志
> pid        /var/run/nginx.pid;                            #定义PID 文件路径信息
> 
> 
> # 第二个部分: 配置文件事件区域
> events {
> worker_connections  1024;   ---- 一个worker进程同时可以接受1024个访问请求
> }
> 
> 
> # 配置http 区域
> http {
> include       /etc/nginx/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  /var/log/nginx/access.log  main; ---- 指定日志路径,调用日志    
> sendfile        on;                ---- 特殊的数据传输功能
> #tcp\_nopush on; 
> 参数sendfile on 用于开启文件高效传输模式,同时将tcp_nopush on 和tcp_nodelay on 两个指令设置为on,可防止网络及磁盘I/O阻塞,提升Nginx工作效率
> 
> keepalive_timeout  65;             ----超时时间
> #gzip on;
> include /etc/nginx/conf.d/*.conf;  - --- 加载一个配置文件
> }
> 
> 
> # 第四个部分: server区域信息(配置一个网站 www/bbs/blog -- 一个虚拟主机)
> server {
>   listen       8080;                --- 指定监听的端口
>   server_name  www.oldboy.com;      --- 指定网站域名                     
>   root   /usr/share/nginx/html;     --- 定义站点目录的位置
>   index  index.html index.htm;      --- 定义首页文件
>   error_page   500 502 503 504  /50x.html;   --- 优雅显示页面信息
>   location = /50x.html {
>       root   /usr/share/nginx/html;
>   }
> }
> ============分割线==============分割线===================分割线=================
> 补充:nginx 进程,他有2个进程
> master process:主进程    ----管理服务是否正常运行
> worker process:工作进程  ----处理用户的访问请求
> 
> [root@web_server01/etc/nginx]# ps -ef|grep nginx
> root      35183      1  0 11:54 ?        00:00:00 nginx: master process nginx
> nginx     35184  35183  0 11:54 ?        00:00:00 nginx: worker process
> root      35419  35155  0 13:04 pts/0    00:00:00 grep --color=auto nginx
> 
> ```
> 
>


#### 2.5 虚拟主机介绍及配置


* **虚拟主机配置**



> 
> 在真实的服务器环境,为了充分利用服务器资源,一台nginx web服务器同时会配置N个虚拟域名主机,即多个域名对于同样一个80端口。然后服务器IP数量很多,也可以配置基于多个IP对应同一个端口。
> 
> 
>
* **配置虚拟主机配置文件介绍**

 

[root@web_server01/etc/nginx]# cd conf.d/
[root@web_server01/etc/nginx/conf.d]# cp default.conf{,.bak} #先备份配置文件

#过滤空格、# 开头的内容。(^$ 空格空格开头,^# #号开头、-v 取反)
[root@web_server01/etc/nginx/conf.d]# egrep -v “^KaTeX parse error: Expected 'EOF', got '#' at position 2: |#̲" default.conf.…|#” default.conf.bak > default.conf
[root@web_server01/etc/nginx/conf.d]# cat default.conf
server {
listen 8080; -----指定监听端口,原本80,这里我修改成8080(目的是为了做第一个简单的www网站)
server_name localhost; ----指定网站域名

location / { ----通过指定模式来与客户端请求的URI相匹配
root /usr/share/nginx/html; ---- 定义站点目录的位置
index index.html index.htm; ---- 定义首页文件
}
error_page 500 502 503 504 /50x.html; ---- 优雅显示页面信息
location = /50x.html {
root /usr/share/nginx/html;
}
}
[root@web_server01/etc/nginx/conf.d]#



##### 2.5.1利用nginx服务搭建一个网站(www)



> 
> **前提是,你把`/etc/nginx/conf.d/default.conf`,80端口 修改成8080或其他端口。**
> 
> 
> **否则看不到效果,每次看到的都是 默认欢迎界面**
> 
> 
> 



> 
> 
> ```
> # 第一步:进入到虚拟主机配置文件目录
> [root@web_server01~]# cd /etc/nginx/conf.d/
> [root@web_server01/etc/nginx/conf.d]# ls
> default.conf  default.conf.bak  www.conf
> [root@web_server01/etc/nginx/conf.d]# vim www.conf
> [root@web_server01/etc/nginx/conf.d]# cat www.conf 
> server {
>   listen        80;
>   server_name   www.hbs.com;
>   location  / {
>            root   /usr/share/nginx/html;
>            index  hbs.html;
> }
> }
> [root@web_server01/etc/nginx/conf.d]# 
> 
> ```
> 
> **第二个历程: 需要获取开发人员编写的网站代码**
> 
> 
> 
> ```
> # 这里自己写一个测试网页
> 
> [root@web_server01/etc/nginx/conf.d]# cd /usr/share/nginx/html/
> [root@web_server01/usr/share/nginx/html]# cat hbs.html 
> <!DOCTYPE html>
> <html>
> <head>
> <meta charset="utf-8">
> <title>我的第一个html</title>
> </head>
> <body>
> <h1>大家好!我是黄昏</h1>
> <p>nginx配置的第一个简单的html</p>
> </body>
> </html>
> [root@web_server01/usr/share/nginx/html]# ls
> 50x.html  hbs.html  index.html
> 
> ```
> 
> **第三个历程: 重启nginx服务**
> 
> 
> 
> ```
> 第三个历程: 重启nginx服务(平滑重启)
> 	两种方法:
> 	systemctl reload nginx 
> 	nginx -s reload
> 	
> 	nginx命令参数
> 	-t            : test configuration and exit
> 	                检查测试配置文件语法
> 	-s            : send signal to a master process: stop, quit, reopen, reload
> 	                控制服务停止或者重新启动
> 
> ```
> 
> **第四个历程: 编写DNS配置信息**
> 
> 
> 
> ```
> 第四个历程: 编写DNS配置信息
> 真实域名: 在阿里云上进行DNS解析记录配置
> 	模拟域名: 在windows主机的hosts文件中进行配置即可
> 	          C:\Windows\System32\drivers\etc\hosts
> 	          10.0.0.7  www.hbs.com  hosts文件末尾添加Ip 域名
> 
> ```
> 
> **第五个历程: 进行测试访问**
> 
> 
> 
> ```
> 第五个历程: 进行测试访问
> 	浏览器中: http://www.oldboy.com
> 
> ```
> 
> 


* ![在这里插入图片描述](https://img-blog.csdnimg.cn/a33b24a2695c43029c33d9d83557e609.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5a6d5bGx55qE5Y2a5a6i,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)


##### 2.5.2 location介绍、location 访问控制及 优雅404显示


* **location 介绍:**

 

允许根据用户请求的URI来匹配定义的各location,匹配到时,此请求将被相应的location配置块中的配置所处理,例如做访问控制等功能

= 精确匹配
location = /hbs

~ 正则表达式,区分大消息
location ~ ^/hbs$

~* 不区分大小写
location ~* ^/hbs$
匹配顺序:
带有=的精确匹配优先
正则表达式按照他们在配置文件中定义的顺序
带有^~修饰符的,开头匹配

* ![在这里插入图片描述](https://img-blog.csdnimg.cn/3708df4cc9684ff89ef3e665ef6420d7.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5a6d5bGx55qE5Y2a5a6i,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
* **location 访问控制**

 

用于location段
allow:设定允许哪台或哪些主机访问,多个参数间用空格隔开
deny:设定禁止哪台或哪些主机访问,多个参数间用空格隔开
示例:

allow 192.168.1.1/32 172.16.0.0/16;
deny all;

放行了10.0.0.81/32 172.16.0.0/16,拒绝了其它ip地址

location /hbs {
root /usr/share/nginx/html;
index hbs.html;
allow 10.0.0.81/32 172.16.0.0/16
deny all
}

* ![在这里插入图片描述](https://img-blog.csdnimg.cn/8fe922608fd04e739044973c96b81d69.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5a6d5bGx55qE5Y2a5a6i,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
* ![在这里插入图片描述](https://img-blog.csdnimg.cn/1778f83dbbad4ea7845216a239d9e052.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5a6d5bGx55qE5Y2a5a6i,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
* **补充:访问策略配置写法**

 

写法1:
server {
listen 80;
server_name www.hbs.com;
root /html/www;
index index.html;
location /AV {
deny 10.0.0.0/24;
allow 172.16.1.0/24;
}
}

写法2:
server {
listen 80;
server_name www.hbs.com;
location / {
root /html/www;
index index.html;
}
location /AV {
deny 10.0.0.0/24;
allow 172.16.1.0/24;
root /html/www;
index index.html;
}
}
补充:
location外面的信息, 全局配置信息
location里面的信息, 局部配置信息

* **优雅界面404 显示**

 


##### 2.5.3 利用nginx服务搭建一个多网站(www、 love、 blog)


* **第一步:创建三个配置文件**

 

[root@web_server01/etc/nginx/conf.d]# ls
bbs.conf blog.conf default.conf default.conf.bak www.conf

www.conf 配置文件

[root@web_server01/etc/nginx/conf.d]# cat www.conf
server {
listen 80;
server_name www.hbs.com;
location / {
root /usr/share/nginx/html/www;
index index.html;
}
}

bbs.conf 配置文件

[root@web_server01/etc/nginx/conf.d]# cat bbs.conf
server {
listen 80;
server_name bbs.hbs.com;
location / {
root /usr/share/nginx/html/bbs;
index index.html;
}
}

blog.conf 配置文件

[root@web_server01/etc/nginx/conf.d]# cat blog.conf
server {
listen 80;
server_name blog.hbs.com;
location / {
root /usr/share/nginx/html/blog;
index index.html;
}
}
[root@web_server01/etc/nginx/conf.d]#

* **第二步:创建站点目录和目录中首页文件**

 

常见站点目录

[root@web_server01~]# mkdir -p /usr/share/nginx/html/{www,bbs,blog}

创建站点首页文件

[root@web_server01/usr/share/nginx/html]# ls
50x.html bbs blog index.html www
[root@web_server01/usr/share/nginx/html]# cat www/index.html

我的第一个html

大家好!我是黄昏

10.0.0.7 www.hbs.com

…… # 重启 nginx [root@web_server01~]# systemctl stop nginx [root@web_server01~]# systemctl start nginx
* **添加hosts 文件:**
* ![在这里插入图片描述](https://img-blog.csdnimg.cn/28c4d53f6af447199121ecdb05e912b8.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5a6d5bGx55qE5Y2a5a6i,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
* **测试**
* ![在这里插入图片描述](https://img-blog.csdnimg.cn/859fca3874624bef90ad3c3227183906.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5a6d5bGx55qE5Y2a5a6i,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)


##### 2.5.4 企业中虚拟主机 访问方式


* **基于域名的方式方式进行访问**
* **基于地址的方式进行访问(只能用指定地址访问)—`负载均衡+高可用服务`**

 
  server {
     listen        10.0.0.7:80;   # 填写地址
     server_name   www.hbs.com;
     location  / {
       root  /html/www;
       index index.html;
     }
  }

配置完毕了,需要关闭/重启nginx

* **基于端口的方式进行访问:**(`zabbix服务(apache:80) + web服务(nginx:80) --> 2个端口重复`)

 

修改端口

[root@web_server01/etc/nginx/conf.d]# cat www.conf
server {
listen 8080;
server_name www.hbs.com;
location / {
root /usr/share/nginx/html/www;
index index.html;
}
}
[root@web_server01/etc/nginx/conf.d]#

[root@web_server01/etc/nginx/conf.d]# systemctl restart nginx
[root@web_server01/etc/nginx/conf.d]# netstat -lntup|grep 80
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 38784/nginx: master
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 38784/nginx: master
[root@web_server01/etc/nginx/conf.d]#

* ![在这里插入图片描述](https://img-blog.csdnimg.cn/be4cb8f83e574fdbb0456390dbbf039d.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5a6d5bGx55qE5Y2a5a6i,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)


##### 2.5.5 基于 用户访问 认证


* **nginx认证模块:** `ngx_http_auth_basic_module`
* **举例配置**

 

location / {
auth_basic “closed site”; — 开启认证功能(欢迎信息)
auth_basic_user_file conf/htpasswd; — 加载用户密码文件,密码文件存放路径
}
密码文件存放路径,推荐相对路径

* **具体详细配置过程**



> 
> **第一个历程: 编写虚拟主机配置文件**
> 
> 
> 
> ```
> [root@web_server01/etc/nginx]# cat conf.d/www.conf 
> server {
>   listen      80;
>   server_name  www.hbs.com;
>   location / {
>       root   /usr/share/nginx/html/www;
>       index  index.html;
>       auth_basic   "欢迎来到王者荣耀!";
>       auth_basic_user_file  passwd/passwd;        #passwd目录下的passwd密码文件
>   }
> }
> 
> ```
> 
> **第二个历程: 创建密码文件(文件中密码信息必须是密文的)**
> 
> 
> 
> ```
> # 创建 一个目录,存放密码文件
> [root@web_server01/etc/nginx]# mkdir passwd
> 
> # 检查是否有htpasswd 密码工具,没有yum 安装httpd-tools
> [root@web_server01/etc/nginx/passwd]# rpm -qf `which htpasswd` 
> httpd-tools-2.4.6-97.el7.centos.x86_64
> [root@web_server01/etc/nginx/passwd]# 
> 
> # 生成密码文件
> [root@web_server01/etc/nginx/passwd]# htpasswd -bc passwd hbs 123456
> Adding password for user hbs
> [root@web_server01/etc/nginx/passwd]# cat passwd 
> hbs:$apr1$7WaamHGp$ENgUQ2yncebNZpFtGbRyX.
> [root@web_server01/etc/nginx/passwd]#
> 
> # 查看生成的用户及密码
> [root@web_server01/etc/nginx/passwd]# cat passwd 
> hbs:$apr1$7WaamHGp$ENgUQ2yncebNZpFtGbRyX.
> [root@web_server01/etc/nginx/passwd]# 
> 
> ```
> 
> 这样就可以直接测试,但是由于这样的密码文件具有较高的权限,不安全,所以涉及到修改密码文件,及文件属主。如果不修改文件权限,则不安全。
> 
> 
>
* **测试**
* ![在这里插入图片描述](https://img-blog.csdnimg.cn/3f40eb54c1eb4e6a9048e8e649271f78.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5a6d5bGx55qE5Y2a5a6i,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
* ![在这里插入图片描述](https://img-blog.csdnimg.cn/1a7611f1ee5040faaa40b90b7706c8cf.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5a6d5bGx55qE5Y2a5a6i,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
* ![在这里插入图片描述](https://img-blog.csdnimg.cn/84817e994fa6431e84495bbef2dc5dae.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5a6d5bGx55qE5Y2a5a6i,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
* **修改文件权限**

 

[root@web_server01/etc/nginx/passwd]# chmod 600 ./passwd

* **测试**
* ![在这里插入图片描述](https://img-blog.csdnimg.cn/d0f9f9b3fb9d4ce588c54c738f32aa30.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5a6d5bGx55qE5Y2a5a6i,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
* **报500问题原因**
* ![在这里插入图片描述](https://img-blog.csdnimg.cn/c067344f48244b30aaca9c9e81d9fb88.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5a6d5bGx55qE5Y2a5a6i,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
* **解决问题方法**

 

[root@web_server01/etc/nginx/passwd]# chown nginx ./passwd

* **测试**
* ![在这里插入图片描述](https://img-blog.csdnimg.cn/e2ed5c08f1664b8086891ca2d2537532.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5a6d5bGx55qE5Y2a5a6i,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)


##### 2.5.6 利用nginx服务搭建网站文件共享服务器–index of


* **文件共享**



> 
> 如何利用nginx服务搭建文件共享呢,比如像 阿里镜像网站那样,输入域名就可以看到很多目录,打开还可以 下载呢
> 
> 
>
* ![在这里插入图片描述](https://img-blog.csdnimg.cn/d34ad11cc3894282bf40a56d82e1cc7f.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5a6d5bGx55qE5Y2a5a6i,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
* **操作步骤**



> 
> **第一个步: 编写配置文件(开启autoindex模块)**
> 
> 
> 
> ```
> server {
>   listen      80;
>   server_name  www.hbs.com;
>   location / {
>       root   /usr/share/nginx/html/www;
>       auth_basic   "欢迎来到王者荣耀!";
>       auth_basic_user_file  passwd/passwd;
>       autoindex on;                  # 开启autoindex 模块即可。
>   }
> }
> 
> ```
> 
> **第二步:重启服务,如果有首页,将首页删除并制造测试数据**
> 
> 
> 
> ```
> # 准备好的测试数据
> [root@web_server01/usr/share/nginx/html/www]# ls
> Centos  Centos6.5  Centos6.9  Centos7.1  Centos7.2  hbs.txt  index.html.backup
> 
> # 重启nginx 服务
> [root@web_server01/usr/share/nginx/html/www]# systemctl restart nginx
> 
> ```
> 
> 此时测试,我们只有查看的权限,如果想下载,还学要修改`mime.types`文件。
> 
> 
> mime.types媒体资源类型文件作用  
>  文件中有的扩展名信息资源, 进行访问时会直接看到数据信息 txt  
>  文件中没有的扩展名信息资源, 进行访问时会直接下载资源 php
> 
> 
>
* ![在这里插入图片描述](https://img-blog.csdnimg.cn/0711aa09f82c4680961aa180f1b171be.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5a6d5bGx55qE5Y2a5a6i,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
* **赋予下载权限,修改mime.types 配置文件**

 

修改 mime.types配置文件,搜索txt,将txt 改成php 就可以下载了。

* ![在这里插入图片描述](https://img-blog.csdnimg.cn/e9f3d4d2633a4bc897d3d9619946a80b.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5a6d5bGx55qE5Y2a5a6i,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
* **测试**
* ![在这里插入图片描述](https://img-blog.csdnimg.cn/873d5ec3f06d45f78aa78b08302ef2b9.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5a6d5bGx55qE5Y2a5a6i,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)


##### 2.5.7 nginx 解决首页乱码问题


* **设置成utf-8**

 

server {
listen 80;
server_name www.hbs.com;
location / {
root /usr/share/nginx/html/www;
auth_basic “欢迎来到王者荣耀!”;
auth_basic_user_file passwd/passwd;
charset utf-8;
}
}

location 添加 charset utf-8;



##### 2.5.8 利用nginx服务搭配置文件别名功能


* **配置别名**



> 
> 这里就是比如你的域名很长,你想配置短一点的域名例如:
> 
> 
> www.hbs.com 你配一个 bs.com的别名
> 
> 
> **1.修改配置文件**
> 
> 
> 
> ```
> server_name www.hbs.com bs.com
> 
> ```
> 
> 2.重启nginx 服务
> 
> 
> 
> ```
> [root@web_server01/etc/nginx]# systemctl restart nginx
> 
> ```
> 
> 3.修改hosts 文件
> 
> 
>
* ![在这里插入图片描述](https://img-blog.csdnimg.cn/b8a86d0cac3647c7bd8179edd2580769.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5a6d5bGx55qE5Y2a5a6i,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
* ![在这里插入图片描述](https://img-blog.csdnimg.cn/7bb573f4a3ec4837889f24d6a0b2acf5.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5a6d5bGx55qE5Y2a5a6i,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)


##### 2.5.9 利用nginx状态模块功能对网站进行监控


* **开启监控模块ngx\_http\_stub\_status\_module**

 

location = /basic_status {
stub_status;
}

这里我在 conf.d 目录新建了一个关于状态的站点 status.conf
[root@web_server01/etc/nginx/conf.d]# cat status.conf
server {
listen 80;
server_name status.oldboy.com
stub_status;
}

平滑启动nginx

[root@web_server01/etc/nginx/conf.d]# systemctl reload nginx

添加hosts 域名

* **访问测试**
* ![在这里插入图片描述](https://img-blog.csdnimg.cn/1d2f459b24f74dcbb6cc329beaea3220.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5a6d5bGx55qE5Y2a5a6i,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)



> 
> **监控获取参数说明**
> 
> 
> ​ Active connections: 激活的连接数信息 4000用户 3500  
>  ​ accepts: 接收的连接数汇总(综合) TCP  
>  ​ handled: 处理的连接数汇总(综合) TCP  
>  ​ requests: 总计的请求数量 HTTP协议请求  
>  ​ Reading: nginx服务读取请求报文的数量 100人点餐  
>  ​ Writing: nginx服务响应报文信息数量 100人响应  
>  ​ Waiting: nginx队列机制,要处理(读取或者响应保存进行保存) 监控
> 
> 
>


##### 2.5.10 nginx 日志功能配置及错误日志介绍


* **访问日志**`/var/log/nginx/access.log ngx_http_log_module`
* **错误日志**`/var/log/nginx/error.log --- Core functionality`



> 
> **访问日志介绍**
> 
> 
> 
> ```
> # 定义日志内容格式
> 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  /var/log/nginx/access.log  main;    #调用日志格式                            
> 
> $remote_addr   			    显示用户访问源IP地址信息
>    $remote_user            显示认证的用户名信息
> [$time_local]           显示访问网站时间
> "$request"              请求报文的请求行信息
>    $status                 用户访问网站状态码信息
> $body_bytes_sent        显示响应的数据尺寸信息
> $http_referer           记录调用网站资源的连接地址信息(防止用户盗链)                    
> www.hbs.com---access.log--->blog.hbs.com到www.hbs.com的连接--->http_referer(链接)
> $http_user_agent        记录用户使用什么客户端软件进行访问页面的  (谷歌 火狐 IE 安卓 iphone)
> $http_x_forwarded_for   负载均衡
> 
> [root@web_server01/var/log/nginx]# tail -f /var/log/nginx/www_access.log 
> 10.0.0.129 - - [02/Sep/2021:17:52:41 +0800] "GET / HTTP/1.1" 401 179 "-" "Mozilla/5.0 (Windows NT 6.1; rv:91.0) Gecko/20100101 Firefox/91.0" "-"
> 
> ```
> 
> **错误日志的配置及 错误级别**
> 
> 
> Syntax: error\_log file [level]; 指定错误日志路径以及错误日志记录的级别  
>  Default: error\_log logs/error.log error;  
>  Context: main, http, mail, stream, server, location
> 
> 
> error\_log /var/log/nginx/error.log warn;  
>  错误级别:  
>  debug :通知级别: 更加重要的信息进行通知说明  
>  warn :警告级别: 可能出现了一些错误信息,但不影响服务运行  
>  error :错误级别: 服务运行已经出现了错误,需要进行纠正 推荐选择  
>  crit :严重级别: 必须进行修改调整  
>  alert :严重警告级别: 即警告,而且必须进行错误修改  
>  emerg :灾难级别: 服务已经不能正常运行 信息越少
> 
> 
> 级别越低,显示日志越少,级别越高显示日志越多。通常推荐 error 级别。
> 
> 
>
* **不同的网站都配置自己的访问日志**

 

server {
listen 80;
server_name www.hbs.com bs.com;
access_log /var/log/nginx/www_access.log main; #调用日志
location / {
root /usr/share/nginx/html/www;
auth_basic “欢迎来到王者荣耀!”;
auth_basic_user_file passwd/passwd;

autoindex on;

}
}

平滑重启

[root@web_server01/etc/nginx]# systemctl restart nginx

日志里会自动生成 www访问日志

[root@web_server01/var/log/nginx]# ls /var/log/nginx/www_access.log
/var/log/nginx/www_access.log
[root@web_server01/var/log/nginx]#



##### 2.5.11 利用nginx实现页面跳转功能


* **利用rewrite模块是跳转功能:** `http_rewrite_module`
* **语法**

 

Syntax: rewrite regex replacement [flag]; rewite 匹配的正则信息 替换成什么信息
Default: —
Context: server, location, if

* **举例配置(将hbs.com—>转换到blog.hbs.com)**

 

rewrite blog.hbs.com/(.*) http://blog.hbs.com/$1 permanent; #重写规则配置

baidu.com / index.html 跳转方式
www.baidu.com/index.html
跳转方式:
永久跳转: permanent 301 会将跳转信息进项缓存
临时跳转: redirect 302 不会缓存跳转信息

编写步骤
出现无限跳转如何解决:
第一种方法: 利用不同server区块配置打破循环
server {
server_name hbs.com;
rewrite ^/(.*) http://blog.hbs.com/$1 permanent;
}

第二种方法: 利用if判断实现打破循环
if ($host ~* "^hbs.com$") {
  rewrite ^/(.*) http://blog.hbs.com/$1 permanent;
}
* ![在这里插入图片描述](https://img-blog.csdnimg.cn/39ad5408b55d49b6ad84bff5da407fb4.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5a6d5bGx55qE5Y2a5a6i,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
* ![在这里插入图片描述](https://img-blog.csdnimg.cn/d66aeb2cd792441588febabdc99d2f9c.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5a6d5bGx55qE5Y2a5a6i,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
* **301 与302 的区别**
* ![在这里插入图片描述](https://img-blog.csdnimg.cn/200c676ba1c84ad1831fb5e6aae774e9.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5a6d5bGx55qE5Y2a5a6i,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)


##### 2.5.12 nginx 防盗链配置介绍


* **什么是防盗链**



> 
> 防盗链的含义:网站内容部署自己服务器上,而通过技术手段,绕过别人放广告有利益的最终页,直接在自己的有广告有利益的页面上向最终用户提供此内容。 常常是一些名不见经传的小网站来盗取一些有实力的大网站的地址(比如一些音乐、图片、软件的下载地址)然后放置在自己的网站中,通过这种方法盗取大网站的空间和流量。
> 
> 
> 这样的话,我们会看到每天访问量很大,占用很多不必要的带宽,浪费资源,所以我们需要做一些限制。
> 
> 
> 防盗链其实就是采用服务器端编程,通过url过滤技术实现的防止盗链的软件。
> 
> 
>
* **防盗链配置**

 

Nginx server防盗链配置如下:
server {
listen 80;
server_name localhost www.hbs.com;
location / {
root /usr/share/nginx/html/www;
index index.html index.htm;
}
location ~* .(gif|jpg|png|swf|flv)$ {
valid_referers none blocked *.hbs.com;
root html;
if ($invalid_referer) {
return 403;
}
}

}

补充:
第一行:gif|jpg|png|swf|flv表示对gif、jpg、png、swf、flv后缀的文件实行防盗链

第二行:hbs.com 表示对hbs.com这个来路进行判断
if{}里面内容的意思是,如果来路不是指定来路就跳转到错误页面,当然直接返回403也是可以。
或者如下设置也可以:

location ~* .(gif|jpg|png|swf|flv)$
if ($host !=’*.hbs.com’) {
return 403;
}

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上网络安全知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化资料的朋友,可以点击这里获取

_referer) {
return 403;
}
}

}

补充:
第一行:gif|jpg|png|swf|flv表示对gif、jpg、png、swf、flv后缀的文件实行防盗链

第二行:hbs.com 表示对hbs.com这个来路进行判断
if{}里面内容的意思是,如果来路不是指定来路就跳转到错误页面,当然直接返回403也是可以。
或者如下设置也可以:

location ~* .(gif|jpg|png|swf|flv)$
if ($host !=’*.hbs.com’) {
return 403;
}

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
[外链图片转存中…(img-C7dc64kR-1715411133827)]
[外链图片转存中…(img-xNseMDO7-1715411133828)]
[外链图片转存中…(img-vXreRlDM-1715411133829)]
[外链图片转存中…(img-cpJLUk20-1715411133829)]
[外链图片转存中…(img-nLF1C8jE-1715411133830)]
[外链图片转存中…(img-nfbyCSYs-1715411133831)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上网络安全知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化资料的朋友,可以点击这里获取

  • 18
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值