Nginx模块之ngx_http_proxy_module
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的更多相关文章
- nginx 模块介绍
nginx模块在编译文件下的odjs目录下 cat 查看ngx_modules.c文件 可以看到一些基本extern模块 常用标准模块 1. 性能相关配置 worker_processes numbe ...
- nginx 模块简介
nginx模块一般分为5类:核心模块.标准http模块.可选http模块.邮件服务模块.第三方模块. 其中核心模块和标准http模块在快速编译之后就包含在了nginx中. 主要看一下核心模块.标准ht ...
- Nginx模块详解
Nginx模块介绍 核心模块:core module 标准模块: HTTP modules: Standard HTTP modules Optional HTTP modules Mail modu ...
- OpenResty / Nginx模块,Lua库和相关资源的列表
OpenResty / Nginx模块,Lua库和相关资源的列表 什么是OpenResty OpenResty是一个成熟的网络平台,它集成了标准的Nginx核心,LuaJIT,许多精心编写的Lua库, ...
- 结合源码看nginx-1.4.0之nginx模块组织结构详解
目录 0. 摘要 1. nginx模块组织结构 2. nginx模块数据结构 3. nginx模块初始化 4. 一个简单的http模块 5. 小结 6. 参考资料 0. 摘要 nginx有五大优点:模 ...
- 【转】Nginx模块开发入门
转自: http://kb.cnblogs.com/page/98352/ 结论:对Nginx模块开发入门做了一个helloworld的示例,简单易懂.也有一定的深度.值得一看. Nginx模块开发入 ...
- Nginx模块开发入门
前言 Nginx是当前最流行的HTTP Server之一,根据W3Techs的统计,目前世界排名(根据Alexa)前100万的网站中,Nginx的占有率为6.8%.与Apache相比,Nginx在高并 ...
- Nginx模块fastcgi_cache的几个注意点 转
Nginx模块fastcgi_cache的几个注意点 去年年底,我对nginx的fastcgi_cache进行摸索使用.在我的测试过程中,发现一些wiki以及网络上没被提到的注意点,这里分享一下. ...
- 开发Nginx模块
开发Nginx模块 前面的哪些话 关于Nginx模块开发的博客资料,网上很多,很多.但是,每篇博客都只提要点,无法"step by step"照着做,对于初次接触Nginx开发的同 ...
随机推荐
- Codeforces 1175F The Number of Subpermutations (思维+rmq)
题意: 求区间[l, r]是一个1~r-l+1的排列的区间个数 n<=3e5 思路: 如果[l,r]是一个排列,首先这里面的数应该各不相同,然后max(l,r)应该等于r-l+1,这就能唯一确定 ...
- 小白学 Python 数据分析(5):Pandas (四)基础操作(1)查看数据
在家为国家做贡献太无聊,不如跟我一起学点 Python 人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Panda ...
- C++ map通过key获取value
c++的map中通过key获取value的方法 一般是value =map[key],或者另一种迭代器的方式 1.在map中,由key查找value时,首先要判断map中是否包含key. 2.如果不 ...
- php curl 检测网页是否被百度收录
<?php /* * 检测百度是否收录网页 curl模式 * @ param string $url传入的url* return int (1 收录 0 不收录) */ function che ...
- Cacti被监控机器 配置 snmp协议
SNMP(Simple Network Management Protocol,简单网络管理协议)的前身是简单网关监控协议(SGMP),用来对通信线路进行管理. snmpd.conf的 ...
- Mybatis随记(一)update动态SQL
<update id="updateUser"> UPDATE user_info SET <if test="gzhOpenId != null an ...
- 5种PHP生成图片验证码实例
5种PHP生成图片验证码实例,包括数字验证码.数字+字母验证码.中文验证码.仿google验证码和算术验证码,PHP生成验证码的原理:通过GD库,生成一张带验证码的图片,并将验证码保存在Session ...
- Html介绍,认识head标签
<head></head>标签位于html文档的头部,主要是用来描述文档的各种属性和信息,包括文档的标题等,当然文档头部包含的数据都不会真正作为内容展示给访客的. 如下的一些标 ...
- POJ 2556 (判断线段相交 + 最短路)
题目: 传送门 题意:在一个左小角坐标为(0, 0),右上角坐标为(10, 10)的房间里,有 n 堵墙,每堵墙都有两个门.每堵墙的输入方式为 x, y1, y2, y3, y4,x 是墙的横坐标,第 ...
- C语言 getchar
C语言 getchar getchar是从标准输入设备读取一个char. 案例 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #in ...