该模块允许将请求传递给另⼀一台服务器器
指令:
1 ,proxy_pass
设置代理理服务器器的协议和地址以及应映射位置的可
选 URI 。作为协议,可以指定“ http 或 https 。可
以将地址指定为域名或IP地址,以及可选端⼝口
Syntax: proxy_pass URL;
Default: —
Context: location, if in location,
limit_except
如果 proxy_pass 后⾯面指定了了 uri ,则其会
将 location 指定的 uri 给替换掉
location /bbs/ {
proxy_pass http://192.168.0.1/fo
rum/
}
客户端访问:http://www.a.com/bbs/
代理理服务器器:http://192.168.0.1/forum/
如果 proxy_pass 后⾯面没有指定 uri ,则会
将 location 指定的 uri 附加 proxy_pass 后⾯面
location /bbs/ {
proxy_pass http://192.168.0.1 #
如果是附加,地址最后⾯面不不要写"/"符号
}
客户端访问:http://www.a.com/bbs/
代理理服务器器:http://192.168.0.1/bbs/
动静分离
server {
listen 80 ;
server_name www.a.com ;
root /data/web1/ ;
location / {
proxy_pass http://192.168.0.
1 ;
}
location ~*\.php$ {
proxy_pass http://192.168.0.
1 ;
}
}
2, proxy_set_header
设定发往后端主机的请求报⽂文的请求⾸首部的值
Syntax: proxy_set_header field
value;
Default:
proxy_set_header Host $proxy_host;
proxy_set_header Connection close;
Context: http, server, location
设置后端服务器器得到是真实的客服端IP,如果要在
后端服务器器⽇日志中看到客户端IP,还需要调整后端
服务器器的⽇日志格式
location / {
proxy_pass http://192.168.0.1 ;
proxy_set_header X-Real-IP $remo
te_addr ; # "X-Real-IP"是⼀一个⾃自定义名

}
3, proxy_cache_path
设置缓存的路路径和其他参数。缓存数据存储在⽂文件
中,缓存中的⽂文件名是将MD5功能应⽤用于缓存键的
结果。该 levels 参数定义⾼高速缓存的层次结构级
别:从1到3,每个级别接受值1或2
Syntax: proxy_cache_path path
[levels=levels]
[use_temp_path=on|off]
keys_zone=name:size [inactive=time]
[max_size=size]
[manager_files=number]
[manager_sleep=time]
[manager_threshold=time]
[loader_files=number]
[loader_sleep=time]
[loader_threshold=time]
[purger=on|off] [purger_files=number]
[purger_sleep=time]
[purger_threshold=time];
Default: —
Context: http
proxy_cache_path /data/nginx/cache l
evels = 1:2 keys_zone = one:10m;
缓存中的⽂文件名如下所示:
/data/nginx/cache/c/29/b7f54b2df7773
722d382f4809d650 29c
4, proxy_cache
指明调⽤用的缓存,或关闭缓存机制
Syntax: proxy_cache zone | off;
Default: proxy_cache off;
Context: http, server, location
5, proxy_cache_key
定义缓存的键,也就对谁做MD5哈希来得到缓存⽂文
件的名
Syntax: proxy_cache_key string;
Default: proxy_cache_key
$scheme$proxy_host$request_uri;
Context: http, server, location
6, proxy_cache_valid
对特定响应码的响应内容的缓存时⻓长定义
在 http{...} 中
Syntax: proxy_cache_valid [code ...]
time;
Default: —
Context: http, server, location
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
8, proxy_cache_methods
对哪些客户端请求⽅方法对应的响应进⾏行行缓存, GET
和 HEAD ⽅方法总是被缓存
Syntax: proxy_cache_methods GET |
HEAD | POST ...;
Default: proxy_cache_methods GET
HEAD;
Context: http, server, location
9, proxy_hide_header
默认nginx响应报⽂文时,不不传递后端服务器器的⾸首部字
段 Date , Server , X-Pad , X-Accel-等 ,⽤用于
隐藏后端服务器器特定的响应⾸首部
Syntax: proxy_hide_header field;
Default: —
Context: http, server, location
10, proxy_connect_timeout
定义与后端服务器器建⽴立连接的超时时⻓长,如超时会
出现 502 错误,默认为60s,⼀一般不不建议超出75s
Syntax: proxy_connect_timeout time;
Default: proxy_connect_timeout 60s;
Context: http, server, location
11, proxy_send_timeout
将请求发送给后端服务器器的超时时⻓长;默认为60s
Syntax: proxy_send_timeout time;
Default: proxy_send_timeout 60s;
Context: http, server, location
12, proxy_read_timeout
等待后端服务器器发送响应报⽂文的超时时⻓长, 默认为
60s
Syntax: proxy_read_timeout time;
Default: proxy_read_timeout 60s;
Context: http, server, location
定义缓存:
http{
proxy_cache_path /var/cache/ngin
x/proxy_cache levels=1:1:1 keys_zone
=proxycache:20m inactive=120s max_si
ze=1g;
}
调⽤用缓存功能:
proxy_cache proxycache;
proxy_cache_key $request_uri;
proxy_cache_valid 200 302 301 1h;
proxy_cache_valid any 1m;

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

  1. nginx中Geoip_module模块的使用

    nginx中Geoip_module模块的使用 .安装模块,nginx也是通过yum安装 yum install nginx-module-geoip -y # 可以看到模块的链接库文件 [root@ ...

  2. 21、nginx之ngx_http_proxy_module模块

    Nginx 的代理功能是通过 ngx_http_proxy_module 模块来实现的.默认在安装 Nginx 时已经安装了ngx_http_proxy_module模 块,因此可直接使用 ngx_h ...

  3. nginx中ngx_http_core_module模块

    http核⼼心模块指令:套接字相关的配置3.1 server{ }设置虚拟服务器器的配置Syntax: server { ... }Default: —Context: httpserver {lis ...

  4. Nginx中location模块的详细配置(含示例)

    题记 此前在配置Nginx location模块的时候玩出了一些bug,折腾了一段时间.后来网上也查阅了相关的资料,看着也比较混乱.周末有空想着好好整理一下location模块的配置,结合自己的亲手实 ...

  5. nginx中ngx_http_ssl_module模块

    此模块为HTTPS提供必要的⽀支持worker_processes auto;http {...server {listen 443 ssl;keepalive_timeout 70;ssl_prot ...

  6. nginx中ngx_http_gzip_module模块

    ⽤用gzip⽅方法压缩响应数据,节约带宽gzip on;gzip_min_length 1000;gzip_proxied expired no-cache no-store private auth ...

  7. nginx中的模块分类及常见核心模块有哪些

    1.模块分类 核心模块:是 Nginx 服务器正常运行必不可少的模块,提供错误日志记录 .配置文件解析 .事件驱动机制 .进程管理等核心功能 标准HTTP模块:提供 HTTP 协议解析相关的功能,比如 ...

  8. Nginx中ngx_http_upstream_module模块

    用于将多个服务器器定义成服务器器组,⽽而由 proxy_pass , fastcgi_pass 等指令进⾏行行引⽤用upstream backend {server backend1.example. ...

  9. Nginx中ngx_http_log_module模块

    指定⽇日志格式记录请求指令: access_log设置缓冲⽇日志写⼊入的路路径,格式和配置Syntax: access_log path [format[buffer=size] [gzip[=lev ...

随机推荐

  1. Jenkins简单入门:下载-安装-配置-构建

    Jenkins简单配置流程 官网下载地址:https://jenkins.io/index.html 1.下载安装Jenkins (1)点击Download Jenkins进入下载页 (2)根据自己运 ...

  2. (模板)poj1113(graham扫描法求凸包)

    题目链接:https://vjudge.net/problem/POJ-1113 题意:简化下题意即求凸包的周长+2×PI×r. 思路:用graham求凸包,模板是kuangbin的. AC code ...

  3. [转帖]最佳 Linux 发行版汇总

    最佳 Linux 发行版汇总 https://cloud.tencent.com/developer/article/1505186 以后说不定用的到. Linux入门 Ubuntu Ubuntu是一 ...

  4. [转帖]为微软效力15年的微软前员工解释Windows 10为什么问题这么多

    为微软效力15年的微软前员工解释Windows 10为什么问题这么多 https://www.cnbeta.com/articles/tech/892109.htm . 测试团队已经被裁撤 . 自动化 ...

  5. 缓存利器之Ehcache

    EhCache 是一个纯Java的进程内缓存框架,具有快速.精干等特点.是一种广泛使用的开源Java分布式缓存.主要面向通用缓存,Java EE和轻量级容器.另外Spring 提供了对缓存功能的抽象: ...

  6. java日志框架系列(6):logback框架encoder详解

    1.Encoder 1.encoder功能 Encoder 负责两件事,一是把事件转换为字节数组,二是把字节数组写入输出流. 注意:在logback 0.9.19 版之前没有 encoder. 在之前 ...

  7. 5-9 c语言之【初识win32编程】

    ---恢复内容开始--- 今天学习了win32的相关知识,首先win32是指是指可以在32位或以上Windows系统中运行的程序,我学习的主要利用c/c++语言编写的win32程序, 首先在win32 ...

  8. c++学习总结(一)------类结构学习

    基类的构造函数并没有被派生类继承 析构函数和拷贝赋值操作符同样也没有 类的设计者通过把成员函数声明为 const 以表明它们不修改类对象 把一个修改类数据成员的函数声明为 const 是非法的 (51 ...

  9. hdu 5900 区间dp

    题意:给你n对pair 里面有两个值,分别是key 和 val .你可以取相邻的两个pair 获得其中的val,前提是两个pair 的key 的 gcd 不为 1.当然你把相邻的两个取走了之后原本不相 ...

  10. dockerfile相关命令

    官方dockerfile:https://github.com/play-with-docker/play-with-docker 可以根据一直的镜像,学习dockerfile的编写 dockerfi ...