Nginx 日志模块
- http 简单的请求过程
1 | [root@nginx-node1 ~]# curl -v www.baidu.com |
Nginx 日志配置规范
- 可自己编排,调换位置
- 全局配置,只能放在 http区域,不能配置在 server里
1 | log_format main '[$time_local] ' '$remote_addr - $remote_user "$request" ' |
1 | # Nginx 日志变量 |
Nginx 状态监控
- –with-http_stub_status_module
- 记录 Nginx 客户端基本访问状态信息
- 重启ngxin服务 会重新计数
1 | Syntax: stub_status; |
1 | # 不是每个server一个,而是统计整个nginx |
1 |
|
Nginx 下载站点
- Nginx默认是不允许列出整个⽬录浏览下载。
1 | Syntax: autoindex on|off; |
1 | # autoindex 常用参数 |
1 | # 配置目录浏览功能 |
1 | cd /soft/package/src/down |
Nginx 访问限制
1 | 连接频率限制 limit_conn_module # 针对TCP |
- http协议的连接与请求
1 | HTTP是建⽴在TCP, 在完成HTTP请求需要先建⽴TCP三次握⼿(称为TCP连接),在连接的基础 |
Nginx 请求限制配置
- 虚拟机只能测试出 请求的限制,公有用可以配置连接的设置
- limit_req zone=req_zone; 放在location 里面只针对location,如果放在location外面,针对整个server,放在http 所有的都会被限制
- 对请求比对连接的限制 更有效
1 | # Nginx 请求限制配置 |
1 | [root@nginx-node1 ~]# vim /etc/nginx/conf.d/default.conf |
1 | [root@nginx-node1 ~]# nginx -t |
1 | # 安装ab 工具 |
Nginx 连接限制配置
- http 段配置连接限制,同⼀时刻只允许1个客户端IP连接
1 | limit_conn_zone $binary_remote_addr zone=conn_zone:10m; |
1 | # http段配置连接限制, 同1时刻只允许1个客户端IP连接 |
Nginx 访问控制
1 | 基于IP的访问控制 http_access_module |
基于IP的访问控制
1 | # 允许所有人访问 拒绝我自己的IP |
http_access_module 局限性
- 没有办法对真实IP 做任何限制
- 需要开启 http_x_forwarded_for 记录真实客户端IP地址以及代理服务器IP 再做限制
- 不开启的话 可能会看到自己的代理IP 访问 web服务器
基于用户登陆认证
1 | # 需要安装依赖组件 |
1 | # 必须登录才能下载 |
Nginx 虚拟主机
所谓虚拟主机,在web服务器里是1个独立的网站站点,这个站点对应独立的域名(也可能是IP或
端口),具有独立的程序及资源目录,可以独立地对外提供服务供用户访问。
1个server就是1个虚拟主机
1 | # 常用顺序 |
基于域名
1 | 1. 创建web站点目录 |
1 | 2. 配置虚拟主机 |
1 | 3. 修改hosts文件 |
基于端口
配置不同端口访问不同虚拟主机
仅修改listen监听端口即可,但不能和系统端口发⽣冲突
1 | 1. 基于端口的虚拟主机 |
1 | 2. aliyun打开安全组端口 |
基于IP地址
配置虚拟主机别名
所谓虚拟主机别名,就是虚拟主机设置除了主域名以外的1个域名,实现用户访问的多个域名对应同1个
虚拟主机网站的功能。
以www.xiaoniao.com域名的虚拟主机为例:
为其增加1个别名xiaoniao.com时,出现网站内容和访问www.xiaoniao.com是一样的,具体配置如下:
1 | server { |
相同域名的优先级
- 相同的域名,相同的端口,谁的文件名在前,谁会被优先读取