常用变量

demo uri

www.example.com/mock/interface?param1=203&param2=test

$args

uri中的参数值 ?后面的部分 param1=203&param2=test

可以通过

if ($args != '')

判断参数值是否为空

$uri

域名后面部分不带参数 /mock/interface

$1 $2 … ...

任何正常匹配表达式都会更新这些值...

$host $http_host

$host www.example.com

$http_host 可能带端口号

$remote_addr

本机ip

$proxy_add_x_forwarded_for

增加上自己IP的 x_forwared_for

location支持的匹配规则(按优先级排序)

精确匹配 =

location = /mock … … 无法匹配 /mock/interface

只有 location = /mock/interface 才能匹配

前缀匹配 (同级 按最大匹配原则)^~

location ^~ /mock

location ^~/mock/interface 都能匹配到 但是后者生效

按文件顺序匹配 ~

就是简单的正则匹配 但是同级之间 无最大匹配原则

location ~ ^/mock

location ~ interface 都能匹配 具体匹配哪一个就看在conf文件里的位置

不带任何修饰符的前缀匹配

location /mock/ 之类

location / 通用匹配

rewrite

重写uri rewrite之后 $uri的值会跟着修改

last 相当于重新发起一次请求 匹配所有的location

break马上只匹配 之前存在的location (如果在location内 则不包括自己)

redirect 302

permanent 301 直接让客户端重新返回

反向代理常用配置

location / {
proxy_pass http://upstream_name; # 也可以是具体的ip/域名
proxy_set_header Host $host; # 设置发送到真正服务时http请求的host
proxy_set_header X-Real-IP $remote_addr; # 设置真正的请求IP 但是似乎不是标准
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 在http请求打上代理机器的ip
proxy_connect_timeout 30s; # 后端服务器连接超时时间
proxy_send_timeout 30s; # 代理发送超时时间
proxy_read_timeout 30s; # 代理接收超时时间 proxy_redirect off; # 对后端服务器重定向 host改写关闭 可配
client_max_body_size 10m; # 允许客户端请求的最大单文件字节数
client_body_buffer_size 128k; # 缓冲区代理缓冲用户端请求的最大字节数
proxy_buffer_size 4k; # nginx保存响应header的缓冲区大小
proxy_buffers 4 32k; # 缓存区个数 和 大小
proxy_busy_buffers_size 64k; # 高负荷时专门向客户端发送数据的缓冲区大小,来自于以上两块缓冲区,一般建议proxy_buffers*2
proxy_temp_file_write_size 64k; # 设定缓存文件夹大小,大于这个值,将从upstream服务器直接传到客户端
}

nginx配置比较杂乱的总结的更多相关文章

  1. nginx配置反向代理或跳转出现400问题处理记录

    午休完上班后,同事说测试站点访问接口出现400 Bad Request  Request Header Or Cookie Too Large提示,心想还好是测试服务器出现问题,影响不大,不过也赶紧上 ...

  2. Windos环境用Nginx配置反向代理和负载均衡

    Windos环境用Nginx配置反向代理和负载均衡 引言:在前后端分离架构下,难免会遇到跨域问题.目前的解决方案大致有JSONP,反向代理,CORS这三种方式.JSONP兼容性良好,最大的缺点是只支持 ...

  3. Windows下Nginx配置SSL实现Https访问(包含证书生成)

    Vincent.李   Windows下Nginx配置SSL实现Https访问(包含证书生成) Windows下Nginx配置SSL实现Https访问(包含证书生成) 首先要说明为什么要实现https ...

  4. Nginx 配置简述

    不论是本地开发,还是远程到 Server 开发,还是给提供 demo 给人看效果,我们时常需要对 Nginx 做配置,Nginx 的配置项相当多,如果考虑性能配置起来会比较麻烦.不过,我们往往只是需要 ...

  5. Nginx配置详解

    序言 Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的.从2004年发布至今,凭借开源的力量,已经接近成熟与完善. Nginx功能丰富,可作为HTTP服务器,也 ...

  6. Nginx配置Https

    1.申请证书: https://console.qcloud.com/ssl?utm_source=yingyongbao&utm_medium=ssl&utm_campaign=qc ...

  7. nginx配置为windows服务中的坑

    网上搜索“nginx 配置为windows服务”,很容易搜索到使用windows server warpper来配置,于是按照网上的方法我从github上的链接下载了1.17版本,前面都很顺利,很容易 ...

  8. 【nginx配置】nginx做非80端口转发

    一个场景 最近在使用PHP重写一个使用JAVA写的项目,因为需要查看之前的项目,所以要在本地搭建一个Tomcat来跑JAVA的项目.搭建成功后,因为Tomcat监听的端口是8080,因此,访问的URL ...

  9. Apache、nginx配置的网站127.0.0.1可以正常访问,内外网的ip地址无法访问,谁的锅?

    最近做开发,发现一个比较尴尬的问题.因为我是一个web开发者,经常要用到Apache或者nginx等服务器软件,经过我测试发现,只要我打开了adsafe,我便不能通过ip地址访问我本地的网站了,比如我 ...

随机推荐

  1. rbenv mac&&linux 安装简单说明

    mac 可以通过brew linux 官方提供了运行脚本 # with curl curl -fsSL https://github.com/rbenv/rbenv-installer/raw/mas ...

  2. tbls ci 友好的数据库文档化工具

    tbls 是用golang 编写的数据库文档化工具,当前支持的数据库有pg.mysql.bigquery 此工具同时提供了变更对比.lint 校验,生成是markdown格式的 简单使用 安装 mac ...

  3. walk

    一个go做gui的包, 可以配置程序图标 编译运行需要...fest文件 rsrc

  4. vue echarts 给双饼图添加点击事件

    在用 echarts 画旭双饼图( https://www.echartsjs.com/examples/zh/editor.html?c=pie-nest )的时候,经常会伴随着点击事件 如果想要在 ...

  5. Alapha冲刺(3/6)

    队名:無駄無駄 组长博客 作业博客 组员情况 张越洋 过去两天完成了哪些任务 摸鱼 提交记录(全组共用) 接下来的计划 沟通前后端成员,监督.提醒他们尽快完成各自的进度 学习如何评估代码质量 准备Al ...

  6. 【POJ2251】Dungeon Master

    本题传送门 本题知识点:宽度优先搜索 题意简单.在一个L层高的楼里,去走迷宫,就是问从S走到E的最短路径.每走一格每上或者下一层都算1步. 一开始以为这个"立体迷宫"有点吓到我(题 ...

  7. lintcode-80.中位数

    80. 中位数(简单题) 给定一个未排序的整数数组,找到其中位数. 中位数是排序后数组的中间值,如果数组的个数是偶数个,则返回排序后数组的第N/2个数. 样例 给出数组[4, 5, 1, 2, 3], ...

  8. ORACLE多条件的统计查询(case when)

    前几天要做一个统计查询的功能,因为涉及多张表,多种条件的统计分析.一开始便想到了UNION和IF语句,然后写了1000多行代码,就为了查30条数据觉得不应该. 然后就开始百度,多种条件下的统计.然后有 ...

  9. 行业大秀:EasyEarth Show!

    EasyEarth三维可视化地理信息云平台是由北京四维益友信息技术有限公司自主研发的新一代面向三维可视化应用领域的基础信息系统平台. EasyEarth以数据管理为核心,围绕7大类基础数据,提供综合管 ...

  10. mybatis or的用法

    @Test public void test3(){ CaseSmallListExample caseSmallListExample = new CaseSmallListExample(); c ...