模块http_gzip:
- gzip on : 开启gzip压缩输出 , 减少网络传输 。
- gzip_min_length 1k :设置允许压缩的页面最小字节数 , 页面字节数从header头得content-length中进行获取 。默认值是20 。建议设置成大于1k的字节数 , 小于1k可能会越压越大 。
- gzip_buffers 4 16k :设置系统获取几个单位的缓存用于存储gzip的压缩结果数据流 。4 16k代表以16k为单位 , 安装原始数据大小以16k为单位的4倍申请内存 。
- gzip_http_version 1.0 :用于识别 http 协议的版本 , 早期的浏览器不支持 Gzip 压缩 , 用户就会看到乱码 , 所以为了支持前期版本加上了这个选项 , 如果你用了 Nginx 的反向代理并期望也启用 Gzip 压缩的话 , 由于末端通信是 http/1.0 , 故请设置为 1.0 。
- gzip_comp_level 6 :gzip压缩比 , 1压缩比最小处理速度最快 , 9压缩比最大但处理速度最慢(传输快但比较消耗cpu)
- gzip_types :匹配mime类型进行压缩 , 无论是否指定,”text/html”类型总是会被压缩的 。
- gzip_proxied any :Nginx作为反向代理的时候启用 , 决定开启或者关闭后端服务器返回的结果是否压缩 , 匹配的前提是后端服务器必须要返回包含”Via”的 header头 。
- gzip_vary on :和http头有关系 , 会在响应头加个 Vary: Accept-Encoding , 可以让前端的缓存服务器缓存经过gzip压缩的页面 , 例如 , 用Squid缓存经过Nginx压缩的数据 。。
http服务上支持若干虚拟主机 。每个虚拟主机一个对应的server配置项 , 配置项里面包含该虚拟主机相关的配置 。在提供mail服务的代理时 , 也可以建立若干server 。每个server通过监听地址或端口来区分 。
- listen
- 监听端口 , 默认80 , 小于1024的要以root启动 。可以为listen *:80、listen 127.0.0.1:80等形式 。
- server_name
- 服务器名 , 如localhost、www.example.com , 可以通过正则匹配 。
这个模块通过一个简单的调度算法来实现客户端IP到后端服务器的负载均衡 , upstream后接负载均衡器的名字 , 后端realserver以 host:port options; 方式组织在 {} 中 。如果后端被代理的只有一台 , 也可以直接写在 proxy_pass。
4. location
http服务中 , 某些特定的URL对应的一系列配置项 。
- root /var/www/html
- 定义服务器的默认网站根目录位置 。如果locationURL匹配的是子目录或文件 , root没什么作用 , 一般放在server指令里面或/下 。
- index index.jsp index.html index.htm
- 定义路径下默认访问的文件名 , 一般跟着root放
- proxy_pass http:/backend
- 请求转向backend定义的服务器列表 , 即反向代理 , 对应upstream负载均衡器 。也可以proxy_pass http://ip:port 。
- proxy_redirect off;
- proxy_set_header Host $host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- 这四个暂且这样设 , 如果深究的话 , 每一个都涉及到很复杂的内容 , 也将通过另一篇文章来解读 。
5. 其它
5.1 访问控制 allow/deny
Nginx 的访问控制模块默认就会安装 , 而且写法也非常简单 , 可以分别有多个allow,deny , 允许或禁止某个ip或ip段访问 , 依次满足任何一个规则就停止往下匹配 。如:
文章插图
【Nginx 常用指令说明】
我们也常用 httpd-devel 工具的 htpasswd 来为访问的路径设置登录密码:
文章插图
这样就生成了默认使用CRYPT加密的密码文件 。打开上面nginx-status的两行注释 , 重启nginx生效 。
推荐阅读
- Nginx配置文件nginx.conf详解
- 计算机网络常用的命令行指令
- 普通避孕套能延时吗 延时避孕套可以经常用吗
- 路由器常用的四种桥接方式
- 阿里架构师分享技术干货Spring+Redis+SpringBoot+Nginx等实践
- 电脑里这些不常用的接口你都知道啥功能吗?里这些不常用的接口你都知道啥功能吗?
- 离iPhone配件越来越远,watchOS 7支持Apple Watch本地运行快捷指令
- 收藏了 西门子SCL语言编程,常用指令介绍
- Linux配置mysql,tomcat,Nginx 开机自启动的几个方式
- nginx的负载均衡如何配置