问轩博客

展开菜单

Nginx 在有 CDN 情况下获取真实请求 IP

Nginx 在有 CDN 情况下获取真实请求 IP
服务器使用 Nginx 并且上游嵌套了 CDN,难免会遇到一个问题:“请求日志中记录的都是 CDN IP 而非实际请求 IP” 。众所周知,这样不利于网站管理,或者说难以规避一些恶意的风险。解决这个问题不复杂,只需要在 Nginx 的 Http 段添加如下配置即可:vi nginx.conf set_real_ip_from 0.0.0.0/0; real_ip_header X-Forwarded-For; real_ip_recursi...

nginx 代理websocket 因为cookie过大连接失败

nginx 代理websocket 因为cookie过大连接失败
一些网站有即时聊天功能,经常一边开后台一边前端登陆退出多个账号!经常出现websocket链接不上!原因:由于前端cookie都时经过加密。所以导致长度大小会很大。此时nginx代理。如果是跨域代理的话不会携带cookie,但是如果是同源代理的话会携带cookie。nginx默认请求头大小为1k ,此时因为cookie导致大小溢出,导致连接websocket 时会fail。解决方案:1、忽略cookie信息(因为连接websocket是不需要cookie的直接在反向代理那个网...

Nginx需要优化哪些内容

Nginx需要优化哪些内容
1.gzip压缩优化2.expires缓存优化3.网络IO事件模型优化4.隐藏软件名称和版本号5.防盗链优化6.禁止恶意域名解析7.禁止通过IP地址访问网站。8.HTTP请求方法优化。9.防DOS攻击单IP并发连接的控制,与连接速率控制。10.严格设置Web站点目录的权限。11.将Nginx进程以及站点运行于监牢模式(nginx服务降权启动(不能使用80端口,使用其他端口,例如8080)、站点目录设置普通用户)。12.通过robot协议以及HTTP_USER_AGENT防爬虫...

一些爬虫

一些爬虫
SemrushBot|python|Linespider|crawler|simplecrawler|ZoominfoBot|zoombot|Neevabot|coccocbot|Facebot|YandexBot|DotBot|DataForSeoBot|MJ12bot|BLEXBot|trendictionbot0|trendictionbot|AhrefsBot|hubspot|opensiteexplorer|leiki|webmeup|GPTBot|DotBot|A...

nginx常用屏蔽规则配置

nginx常用屏蔽规则配置
nginx 防止文件被下载配置location ~ \.(zip|rar|sql|bak|gz|7z)$ {   return 444; } 如果网站数据库导出到站点根目录进行备份,很有可能也会被别人下载,从而导致数据丢失的风险,以上规则可以防止一些常规文件被下载,可根据实际情况调整。nginx 屏蔽非常见蜘蛛爬虫配置if ($http_user_agent ~* ...

NGINX禁止指定UA访问的方法

NGINX禁止指定UA访问的方法
UA是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等,全称为User Agent。他在HTTP协议中存在于请求头的位置被发往服务器,因此我们的web服务器可以通过一定规则来禁止某些特定的“用户”来访问。在Nginx中,UA使用的是其内置变量$http_user_agent,我们在配置文件中加入if判断即可达到禁止一些UA访问。通用格式 if ($http_user_agen...

Nginx四层负载均衡(实现主要就是stream模块)

Nginx四层负载均衡(实现主要就是stream模块)
四层负载均衡所谓四层就是OSI模型的传输层, 主要是基于tcp/ip的负载均衡模式,即基于ip和端口的方式实现将请求转发至后端节点。 常用场景 1)实现tcp协议的负载均衡 例:对后端服务MySQL从库、以及Redis等服务的负载。 纯粹基于四层的Web应用无法满足当下的负载均衡需求,中小企业直接会选择基于7层的负载均衡模式(nginx proxy)。 见数据库集群架构 2)四层+七层负载均衡架构 在Web前端的7层负载均衡之前,架设四层负载均衡以实...

nginx四层负载均衡实践の实现MySQL负载均衡

nginx四层负载均衡实践の实现MySQL负载均衡
nginx四层负载均衡实现主要就是stream模块1)stream模块官方说明: http://nginx.org/en/docs/stream/ngx_stream_core_module.html#stream The ngx_stream_core_module module is available since version 1.9.0. This module ...

Nginx基于user_agent及浏览器实现转发

Nginx基于user_agent及浏览器实现转发
Nginx基于user_agent及浏览器实现转发【基于客户端设备】服务说明列表: 节点 IP及端口 测试地址 字符串为代表业务 web01 10.0.0.7:80 客户端(PC、谷歌浏览器) pc_pools web02 10.0.0.8:80 iphone(谷歌f12模拟或者手机访问) phone_pools使用相同的域名,根据来源设备调度到不同的服务器集群web01:pc[root@web01 ~]# cat /etc/nginx/c...

Nginx 基于域名的虚拟主机实践

Nginx 基于域名的虚拟主机实践
Nginx 基于域名的虚拟主机实践1、Nginx master和worker进程1.master进程:老大不干活,管理监控小弟 2.多个worker_processes 负责干活的,接收请求并处理。占用内存资源,数量和CPU核数相当。2、Nginx目录结构[root@web01 ~]$rpm -ql nginx /etc/logrotate.d/nginx #日志切割配置,/etc/logrotate.conf /etc/nginx /...

CentOS 7下的Nginx安装方法

CentOS 7下的Nginx安装方法
Nginx安装 两种安装方法。 yum安装: 地址:http://nginx.org/en/linux_packages.html#RHEL 1.1 配置官方源yum安装 [root@web ~]# vim /etc/yum.repos.d/nginx.repo [nginx-stable] name=nginx stable repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch...

nginx常用的超时配置说明

nginx常用的超时配置说明
client_header_timeout语法 client_header_timeout time默认值 60s上下文 http server说明 指定等待client发送一个请求头的超时时间(例如:GET / HTTP/1.1).仅当在一次read中,没有收到请求头,才会算成超时。如果在超时时间内,client没发送任何东西,nginx返回HTTP状态码408(“Request timed out”)client_body_timeout语法 client_body_ti...

nginx跨越配置

nginx跨越配置
    location /  { add_header 'Access-Control-Allow-Origin' $http_origin; add_header 'Access-Control-Allow-Credentials' 'true'; add_header 'Access-...