nginx 的优点:
IO多路复用epoll
- select模式
不断的轮询队列里面的内容,有请求就处理
线性扫描效率低下
- epoll 模型
每当FD 就绪,采用系统的回调函数之间 将 fd放入,效率更高
最大连接数无限制
CPU亲和(affinity)
多个进程,单线程
把CPU核心和 Nginx工作进程绑定,每一个worker进程固定在一个 cpu上执行,减少切换cpu的cache miss,获得更好的性能
sendfile来传输文件
跳过 user space(用户空间) 来传输文件,减少文件拷贝次数
使用零拷贝,直接在 kernel space 进行文件传输,处理静态资源迅速
nginx 目录
/etc/logrotate.d/nginx Nginx日志轮转,用于 logrotate服务的日志切割轮转
/etc/nginx/mime.types 设置 http协议和 Content-Type与扩展名对应关系
/usr/lib/systemd/system/nginx-debug.service 守护进程的管理
/etc/nginx/modules 一些模块
/usr/sbin/nginx Nginx服务的启动管理命令
/usr/share/man/… Nginx的手册和文档
/var/cache/nginx Nginx 的缓存目录
Nginx 默认配置语法
user 设置 nginx
Nginx 访问控制:
http_x_forwarded_for
http_x_forwarded_for = client ip, proxy(1)IP, proxy(2) IP,…
使用 http_access_module局限
方法一: 采用别的http头信息控制访问,如:HTTP_X_FORWARD_FOR
方法二: 结合 geo模块作
方法三: 通过http自定义变量传递
Nginx缓存配置:
proxy_cache
- 定义好 缓存的路径 proxy_cache_path path [levels = levels]
- 缓存过期周期 : proxy_cache_valid [code…] tiem
- 缓存维度: proxy_cache_key $scheme$proxy_host$request_uri;