2021-09-21

Nginx代理配置详解

  • Nginx.conf配置文件
    • 配置文件结构

      … #全局块
      events { #events块

      }
      http #http块
      {
      … #http全局块
      server #server块
      {
      … #server全局块
      location [PATTERN] #location块
      {

      }
      location [PATTERN]
      {

      }
      }
      server
      {

      }
      … #http全局块
      }

      • 全局块
        配置影响nginx全局的指令。一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等
      • events块
        配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等
      • http块
        可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等
      • server块
        配置虚拟主机的相关参数,一个http中可以有多个server。
      • location块
        配置请求的路由,以及各种页面的处理情况。
        • location 语法规则

          location [=||*|^~] /uri/ {
          ·····
          }

          = 开头表示精确匹配
          ^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即可。nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格)
          ~ 开头表示区分大小写的正则匹配
          ~* 开头表示不区分大小写的正则匹配
          !~ 区分大小写不匹配的正则
          !~* 不区分大小写不匹配的正则
          / 通用匹配,任何请求都会匹配到

          注意匹配顺序,上面列的已经按优先级列出

        • 配置规范

          直接匹配网站根,通过域名访问网站首页比较频繁,使用这个会加速处理
          这里是直接转发给后端应用服务器了,也可以是一个静态首页
          location = / {
          proxy_pass http://localhost:8080/index
          }

          静态文件规则
          location ^~ /static/ {
          root /webroot/static/;
          }
          location ~* .(gif|jpg|jpeg|png|css|js|ico)$ {
          root /webroot/res/;
          }

          通用规则,用来转发动态请求到后端应用服务器
          location / {
          proxy_pass http://localhost:8080/
          }

  • Nginx配置项

$args :请求参数
$content_length :等于请求行的“Content_Length”的值
$content_type :内容编码类型,等同与请求头部的”Content_Type”的值
$host :与请求头部中“Host”行指定的值或是request到达的server的名字(没有Host行)一样
$limit_rate :允许限制的连接速率
$status : 用来记录请求状态;成功是200
$http_referer :用来记录从那个页面链接访问过来的
$http_user_agent :记录客户端浏览器的相关信息
$http_cookie :获取cookie的信息
$time_local : 用来记录访问时间与时区;
$request_body_file :临时文件名
$request_method:请求行为类型,GET/POST/PUT/DELETE等
$remote_addr :用以记录客户端的ip地址
$http_x_forwarded_for :记录客户端的ip地址
$remote_port :记录客户端的端口
$remote_user :用来记录客户端用户名称
$request : 用来记录请求的url与http协议
$request_filename :当前请求的文件的路径名,由root或alias和URI request组合而成
$request_url:含有参数的完整的初始URL
$query_string : 与args一样
$server_protocol :请求协议,使用“HTTP/或“HTTPS/
$server_addr : 请求到达的server的ip,一般获得此变量的值的目的是进行系统调用
$server_name :请求到达的服务器名
$server_port:请求到达的服务器的端口号
$url:等同于当前request中的URL

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值