Home > Nginx
  • 【理论】Nginx的内置变量和作用

    从网上找到的关于Nginx 内置变量的相关解释,工作中会经常用到,在此记录下。 Nginx的内置变量: $args, 请求中的参数; $is_args, 如果已经设置$args,则该变量的值为“?”,否则为“”。 $content_length, HTTP请求信息头里的"Content-Length"; $content_type, 请求信息头里的"Content-Type"; $document_root, 针对当前请求所属的root指令设置的根目录路径; $document_uri, 与$uri相同; $host, 请求信息中的"Host",如果请求中没有Host行,则等于设置的服务器名; $limit_rate, 对连接速率的限制; $request_method, ...
    阅读全文 →
  • 【理论】Nginx “upstream”模块详解和各负载均衡模式对比测试

    二手攻城狮  /
     / 应用服务
    负载均衡配置格式: 通常多个应用实例来做负载均衡是优化资源利用、最大化吞吐量、减少延迟、确保容错配置。Nginx可以通过不同的部署方案作为非常有效的HTTP负载均衡器,代理流量到后端服务器组。 首先,你得通过upstream设定后端服务器,这个指令放在http块里,分组里的服务器通过指令server配置,服务器可以写成IP地址与端口、域名、UNIX套接字(socket)等方式,其中如果域名可以被解析为多个地址,则这些地址都作为backend,下面是一个例子: upstream backend { server www.ceshi.com; server 145.223...
    阅读全文 →
  • 【工作】解决Nginx访问日志中报favicon.ico文件404错误

    二手攻城狮  /
     / 工作记录, 应用服务
    报错现象: 经常会在Nginx虚拟主机的访问日志里有"GET /favicon.ico HTTP/1.1" 404 288 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon)"这样的报错,但是又不影响访问,决定解决这个报错问题。 favicon.ico的作用: 一般用于作为缩略的网站标志,它显示在浏览器的地址栏、浏览器标签上或者在收藏夹上(如下图),是展示网站个性的缩略logo标志,也可以说是网站头像,目前主要的浏览器都支持favicon.ico,一般访问网站时候会自动搜寻网站下的/favicon.ico 文件(如果在网页上没有特别指明...
    阅读全文 →
  • 【理论】HTTP状态码大全

    1xx – 信息提示 从100到199范围的HTTP状态码是信息报告码。基于各种原因考虑,大多数情况下我们 是很少看见这些代码的。首先,如果一个浏览器尝试访问一个网站,而网站返回这些代码时,它们往往都不会显示在屏幕上。它们只是浏览器使引用的内部码。另 外,这些代码不常见的另外一个原因是起初HTTP标准不允许使用这一范围的状态码。就其本身而言,它们也一直没有被广泛地使用。 状态代码 状态信息 含义 100 Continue 初始的请求已经接受,客户应当继续发送请求的其余部分。(HTTP 1.1新) 101 Switching Pro...
    阅读全文 →
  • 【工作】Nginx限制IP并发连接数和请求数的研究

    二手攻城狮  /
     / 工作记录, 应用服务
    写在前面: 公司最近需要对某个虚拟主机进行用户并发链接限制,具体需求是当某个IP超过指定的链接数时,返回服务繁忙的提醒页面。 实现过程: Nginx限制IP连接数使用的是ngx_http_limit_conn_module模块,可以通过这个模块的中“limit_conn_zone”和“limit_conn”两个参数实现。   Nginx限制请求数使用的是ngx_http_limit_req_module模块,可以通过这个模块中“limit_req_zone”和“limit_req”两个参数实现。 ngx_http_limit_conn_module模块研究: limit_conn_zone: 功能:用于定义一个zone,该zome将会被用于存储会话...
    阅读全文 →
  • 【理论】Nginx连接数、请求数限制应用详解

    需求 秒杀、抢购并发限制、队列缓冲 下载带宽限制 防止攻击 nginx连接数限制模块 说明:nginx有很多模块、模块下面又分很多指令,下面就说说limit_conn_zone和limit_conn两指令 1、limit_conn_zone 语法: Syntax: limit_conn_zone key zone=name:size; Default: — Context: http nginx配置分为三个段:http、server、location,大概格式如下: http { server { listen 80; server_name www.tomener.com tomener.com; location / { ro...
    阅读全文 →
  • 【工作】实现Nginx每天自动切割日志功能

    写在前面: 由于公司网站之前没有做过日志切割,造成Nginx日志文件不断增长达到了几百G,现在要监控访问日志,这么大的日志分析起来非常不方便,所以现在需要每天把Nginx日志文件切割,然后以时间命名备份起来,方法如下: 方法一: 写脚本放到定时任务中,每天零点把旧的日志移动到备份目录中,并对nginx进程发送USR1信号使其重新生成日志并写入数据,然后删除60天之前的备份。   创建备份目录,并编写脚本: # mkdir -p /opt/nginx-1.9.3/logs/logs_bak # vi /opt/nginx-1.9.3/sbin/cut_nginx_log.sh   #!/bin/b...
    阅读全文 →
  • 【案例】京东Nginx平台化实践

    Nginx是优秀的HTTP和反向代理服务器,京东各部门都在广泛使用,但普遍都面临着一些问题: 配置复杂,专业性强。 配置文件无法批量修改且配置变更依赖重启操作。 不同应用依赖不同模块、配置项,管理混乱。 同一应用的Nginx无法批量、快速扩容。 所有问题的根源在于Nginx是一个单机系统,虽然模块化、高性能,但在互联网高速发展的今天,像京东这样拥有大规模Nginx、业务集群的场景下,所有问题都有可能被无限放大,针对这种现状我们设计研发了JEN(JD EXTENDED NGINX),截止目前JEN已覆盖京东金融大部分核心业...
    阅读全文 →