ngx_http_proxy_module模块:

示例:

location / {
proxy_pass http://localhost:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;

proxy_pass: 用户对指定URL的请求都转交给后端另外一台服务器

格式:

 location /url {
    proxy_pass http://back_server:port/newurl;
 }
 
 /url --> /newurl 特殊情况:
  1.如果是 ~ | ~* 模式匹配的url,是可以忽略的,这种情况proxy_pass http://back_server:port/newurl/url;
  2.如果location中使用了重定向的话,代理的url是重定向后的url地址

示例:

location / {
proxy_pass http://192.168.1.103/;
}
location /bbs {
proxy_pass http://192.168.1.103/bbs/;
}
location /forum {
proxy_pass http://192.168.1.103/bbs;
}
location ~* \.(jpg|png|gif)$ {
  proxy_pass http://192.168.1.103;  //这里是模式匹配的情况,图片访问时地址会加到url后面
}

proxy_set_header: 向后端发送特定首部,并且记录真实的客户端IP地址

格式:

location / {
   proxy_set_header Host $host;  // 将$host客户端请求首部的值放到Host变量中
   proxy_set_header X-Real-IP $remote_addr;  //将$remote_addr客户端ip放到X-Real-IP变量中
}

修改后端服务器日志格式:

LogFormat "%{X-Real-IP}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
  %h --> %{X-Real-IP}i

proxy_cache_path: 设置缓存路径及其他缓存参数

格式:

proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=one:10m;  //指定了磁盘空间上存放内容的位置;磁盘上内容的存放结构;内存空间中存放的键名字和大小;
context: http  //proxy_cache_path上下文是http,只能在http配置段中配置
示例:
 proxy_cache_path /cache/nginx/ levels=: keys_zone=mycache:32m;

proxy_cache_methods: 客户端使用哪一类请求才会被缓存,默认是GET和HEAD

格式:

Syntax:    proxy_cache_methods GET | HEAD | POST ...;
Default:
proxy_cache_methods GET HEAD;
Context: http, server, location
This directive appeared in version 0.7.59.

proxy_cache_min_usrs:某一个请求被请求多少次才会被缓存,默认是一次

格式:

Syntax:    proxy_cache_min_uses number;
Default:
proxy_cache_min_uses 1;
Context: http, server, location

proxy_cache_purge: 管理缓存空间中的缓存条目

格式:

Syntax:    proxy_cache_purge string ...;
Default: —
Context: http, server, location
This directive appeared in version 1.5.7.

示例:

proxy_cache_path /data/nginx/cache keys_zone=cache_zone:10m;

map $request_method $purge_method {
PURGE 1;
default 0;
} server {
...
location / {
proxy_pass http://backend;
proxy_cache cache_zone;
proxy_cache_key $uri;
proxy_cache_purge $purge_method;
}

proxy_cache_revalidate: 过期后重新校验缓存

格式:

Syntax:    proxy_cache_revalidate on | off;
Default:
proxy_cache_revalidate off;
Context: http, server, location
This directive appeared in version 1.5.7.

proxy_cache_use_stale: 是否使用已经过期的缓存响应客户请求

格式:

Syntax:    proxy_cache_use_stale error | timeout | invalid_header | updating | http_500 | http_502 | http_503 | http_504 | http_403 | http_404 | http_429 | off ...;
Default:
proxy_cache_use_stale off;
Context: http, server, location

proxy_cache_valid: 对不同响应码设置缓存时间

格式:

Syntax:    proxy_cache_valid [code ...] time;
Default: —
Context: http, server, location

示例:

proxy_cache_valid 200 302 10m;
proxy_cache_valid 301 1h;
proxy_cache_valid any 1m;

proxy_connect_timeout: 向后端发送请求连接的超时时长

格式:

Syntax:    proxy_connect_timeout time;
Default:
proxy_connect_timeout 60s;
Context: http, server, location

proxy_hide_header: proxy向客户端响应请求时隐藏首部

格式:

Syntax:    proxy_hide_header field;
Default: —
Context: http, server, location

proxy_read_timeout: 代理服务器发出响应的超时时间

格式:

Syntax:    proxy_read_timeout time;
Default:
proxy_read_timeout 60s;
Context: http, server, location

proxy_pass_request_headers: 是否将客户端的请求报文中的请求首部原封不动的发到后端  

格式:

Syntax:    proxy_pass_request_headers on | off;
Default:
proxy_pass_request_headers on;
Context: http, server, location

proxy_pass_request_body: 是否将客户端的请求报文中的body发到后端

格式:

Syntax:    proxy_pass_request_body on | off;
Default:
proxy_pass_request_body on;
Context: http, server, location

proxy_buffers: 将代理服务器的响应放到缓冲中

格式:

Syntax:    proxy_buffers number size;
Default:
proxy_buffers 8 4k|8k;
Context: http, server, location

proxy_cache_bypass: 设置在何种情形下nginx将不从cache取数据的

格式:

Syntax:    proxy_cache_bypass string ...;  //string的值调用内建函数:$cookie_nocache,$arg_nocache,$http_authorization
Default: —
Context: http, server, location

Nginx模块之ngx_http_proxy_module的更多相关文章

  1. nginx 模块介绍

    nginx模块在编译文件下的odjs目录下 cat 查看ngx_modules.c文件 可以看到一些基本extern模块 常用标准模块 1. 性能相关配置 worker_processes numbe ...

  2. nginx 模块简介

    nginx模块一般分为5类:核心模块.标准http模块.可选http模块.邮件服务模块.第三方模块. 其中核心模块和标准http模块在快速编译之后就包含在了nginx中. 主要看一下核心模块.标准ht ...

  3. Nginx模块详解

    Nginx模块介绍 核心模块:core module 标准模块: HTTP modules: Standard HTTP modules Optional HTTP modules Mail modu ...

  4. OpenResty / Nginx模块,Lua库和相关资源的列表

    OpenResty / Nginx模块,Lua库和相关资源的列表 什么是OpenResty OpenResty是一个成熟的网络平台,它集成了标准的Nginx核心,LuaJIT,许多精心编写的Lua库, ...

  5. 结合源码看nginx-1.4.0之nginx模块组织结构详解

    目录 0. 摘要 1. nginx模块组织结构 2. nginx模块数据结构 3. nginx模块初始化 4. 一个简单的http模块 5. 小结 6. 参考资料 0. 摘要 nginx有五大优点:模 ...

  6. 【转】Nginx模块开发入门

    转自: http://kb.cnblogs.com/page/98352/ 结论:对Nginx模块开发入门做了一个helloworld的示例,简单易懂.也有一定的深度.值得一看. Nginx模块开发入 ...

  7. Nginx模块开发入门

    前言 Nginx是当前最流行的HTTP Server之一,根据W3Techs的统计,目前世界排名(根据Alexa)前100万的网站中,Nginx的占有率为6.8%.与Apache相比,Nginx在高并 ...

  8. Nginx模块fastcgi_cache的几个注意点 转

    Nginx模块fastcgi_cache的几个注意点   去年年底,我对nginx的fastcgi_cache进行摸索使用.在我的测试过程中,发现一些wiki以及网络上没被提到的注意点,这里分享一下. ...

  9. 开发Nginx模块

    开发Nginx模块 前面的哪些话 关于Nginx模块开发的博客资料,网上很多,很多.但是,每篇博客都只提要点,无法"step by step"照着做,对于初次接触Nginx开发的同 ...

随机推荐

  1. 从Golang中open的实现方式看Golang的语言设计

    Golang有很多优点: 开发高效:(C语言写一个hash查找很麻烦,但是go很简单) 运行高效:(Python的hash查找好写,但比Python高效很多) 很少的系统库依赖:(环境依赖少,一般不依 ...

  2. Spring Boot 2.1.7 启动项目失败,报错: "Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured."

    一开始按照网上的很多解决办法是: 启动类头部声明@SpringBootApplication(exclude= {DataSourceAutoConfiguration.class}),但是这样会排除 ...

  3. ELF文件之一——

    ELF文件整体布局 下图是后来例子中main.o和main.elf的布局. 其中,只有elf header的位置是固定的,固定在文件开始,其它部分的位置都不确定. 比如下面的main.o布局中,.te ...

  4. 在Windows系统中安装Redis和php_redis扩展

    安装Redis (1)下载redis压缩包,git下载地址https://github.com/MSOpenTech/redis/releases 解压文件夹,在文件夹中运行cmd命令: 输入:   ...

  5. width、height为auto或者100%的区别

    一.规则 1. 某div不设置宽度,那么width默认为auto. 2. 某子元素div的width为100%(或者设置为等于父元素宽度的具体值,比如父元素width为100px,子元素width也设 ...

  6. 将jsp页面转化为图片或pdf升级版(二)(qq:1324981084)

    java高级架构师全套vip教学视频,需要的加我qq1324981084 上面我们已经将jsp页面转化成html页面了,那么接下来我们的目标是利用这个html页面形成pdf或图片格式.这里我用到的是w ...

  7. .net core 3 web api jwt 一直 401

    最近在给客户开发 Azure DevOps Exension, 该扩展中某个功能需要调用使用 .NET Core 3 写的 Web Api. 在拜读了 Authenticating requests ...

  8. StackExchange.Redis 之 String 类型示例

    String类型很简单,就不做示例演示了,这里只贴出Helper类 /// <summary> /// 判断key是否存在 /// </summary> /// <par ...

  9. [20200223]关于latch and mutext的优化.txt

    [20200223]关于latch and mutext的优化.txt --//前一段时间一直在测试使用DBMS_SHARED_POOL.MARKHOT标识热对象以及sql语句的优化.--//有别人问 ...

  10. 常量, char[], const char[], char*, const char*, char* const以及const char* const的详解

    注意,这里用char类型只是举了一个例子,其他的int之类的也通用. 1: 常量: 例子: char str[] = "Hello world!"; char ch = 'a'; ...