文章目录
- 1、nginx 如何做优化
- 2、nginx upsteam有哪几种轮训方式?
- 3、Nginx怎样对同一IP访问进行限流?
- 4、Nginx 如何获取客户端的真实IP?
- 5、Nginx 如何设置跨域?
- 6、Nginx location 优先级是怎么样的?
- 7、nginx rewrite 是怎样进行重写的?
- 8、Nginx 反向代理与正向代理区别
- 9、stub_status和sub_filter指令的作用是什么?
- 10、Nginx和Apache 之间的不同点
- 11、Nginx 和LVS的区别
- 12、Nginx、LVS、haproxy区别
- 13、Nginx上的Master和Worker进程分别是什么?
- 14、Nginx如何处理HTTP请求
- 15、large_client_header_buffers指令设置的含义:
- 16、LVS负载均衡调度算法
- 17、Nginx调度算法
- 18、如何能让upsteam到一台机器上
1、nginx 如何做优化
* 隐藏版本号
* 修改用户和组
* expires缓存(一般是图片)
* 日志切割
* 设置超时时间
keepalive_timeout #设置超时时间
client_header_timeout #指定请求头的超时时间
client_body_timeout #设置请求体超时时间
* Gzip压缩
Nginx_http_gzip_module压缩模块提供了对文件压缩的功能,以节约网站的带宽,提高用户的访问体验
默认Nginx已经安装该模块
gzip on #开启gzip压缩输出
gzip_buffers 4 64; #表示申请了4个单位为64kb的内存作为压缩结果流缓存
gzip_http_version 1.1 #用于设置http协议版本
gzip_min_length #设置允许页面的最小字节
gzip_vary on; #让前端的缓存服务器缓存就经过的gzip压缩页面
* 防盗链
Nginx防盗链的原理是加入location项,用正则表达式过滤图片类型文件,对于信任的网站可以正常使用,对于不信任的网址则返回相应的错误页面
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
location ~*.(jpg|gif|swf)$ {
valid_referers none blocked *.benet.com benet.com;
if ( $invalid_referer ) {
rewrite ^/ http://www.benet.com/error.png;
}
}
~*.(jpg|gif|swf)$: 匹配不区分大小写,以.jpg 或.gif或 .swf结尾的文件。
valid_referers:设置信任的网站,可以正常使用图片。
none:浏览器中refer为空的情况,就是直接在浏览器访问图片。
blocked:浏览器中refer不为空的情况,但是值被代理或防火墙删除了,这些值不以http://或 https://开头。
后面的网址或域名:refer包含相关字符串的网址。
if语句:如果链接的来源域名不在valid_referers所列出的列表中, $invalid_referer 为1,则执行后面的操作,即进行重写或返回403页面。
2、nginx upsteam有哪几种轮训方式?
nginx的反向代理模块主要是基于upstream实现的,使用一般的upstream方式,其中upstream主要分为三种模式
1、RR轮询: 默认的反向代理模式,用以平衡各个服务器的负载,若某个服务器宕机,会自动从轮询中剃掉。同时,可以手动指定某台服务器脱离轮询,用于离线检查
2、weight 权重: 针对服务器性能不通,用来控制服务器被访问的比例,以实现老客户访问时的快速调度
3、ip bash,主要记录了客户端IP访问的目标主机,以实现老用户访问的快速调度
3、Nginx怎样对同一IP访问进行限流?
Nginx使用limit_req_zone对同一IP访问进行限流
首先在nginx.conf中的http模块下配置
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
区域名称one(自定义),占用空间大小为10m,平均处理请求速度不能超过每秒一次
在http模块的子模块server下配置
location ~* .htm$ {
limit_req zone=one burst=5 nodelay;
proxy_pass http://backend_tomcat;
}
burst 缓冲队列的长度
nodelay 不延迟
- 真正对限流起作用的就是rate=1r/s和burst=5这2个配置