nginx代理(正向代理和反向代理)
正向代理

是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端(目的是为了保护客户端用户)
配置文件:
server {
# 配置DNS解析IP地址,比如 Google Public DNS,以及超时时间(5秒)
resolver 8.8.8.8; # 必需
resolver_timeout 5s;
# 监听端口
listen ;
access_log /home/reistlin/logs/proxy.access.log;
error_log /home/reistlin/logs/proxy.error.log;
location / {
# 配置正向代理参数
proxy_pass $scheme://$host$request_uri;
# 解决如果URL中带"."后Nginx 503错误
proxy_set_header Host $http_host;
# 配置缓存大小
proxy_buffers 4k;
# 关闭磁盘缓存读写减少I/O
proxy_max_temp_file_size ;
# 代理连接超时时间
proxy_connect_timeout ;
# 配置代理服务器HTTP状态缓存时间
proxy_cache_valid 10m;
proxy_cache_valid 1h;
proxy_cache_valid any 1m;
}
}
注意: 1.不要设置server_name指令
2.我们测试的时候可以使用谷歌浏览器,在谷歌浏览器的高级设置里面设置代理,代理地址就是我们nginx的 http://ip:端口号
反向代理

反向代理也是在客户端和服务器端的一个代理服务器,但是这个代理服务器的目的是用来保护服务器端的,当外网客户端来访问我们的服务器时为了避免暴露应用服务器的实际ip地址,我们会让客端访问代理服务器,然后代理服务器再根据客户端的请求去实际的应用服务器获取响应内容并返回客户端。
- proxy_pass
proxy_pass URL
设置代理服务器的地址,可以是主机名称、IP地址加端口号等形式。
注意:1.当代理的是一组服务器时可以使用 upstream 指令来设置。
2. 当URL中含有uri时,(例如 "http://127.0.0.1:8080/"、"http://127.0.0.1:8080/demo.html")不管客户端访问的是地址中的uri是什么,代理服务器都会代理到 URL的地址;当URL中不包含uri时(例如:"http://127.0.0.1:8080"),那么当客户端访问服务器时,代理服务器会根据客户端请求的uri来访问具体的URL地址。
- proxy_pass_request_body
proxy_pass_request_body on|off
用于配置是否将客户端的请求的请求体发送给代理服务器。
- proxy_pass_request_headers
proxy_pass_request_headers on|off
用于配置是否将客户端的请求的头信息发送给代理服务器。
- proxy_set_header
proxy_set_header field value
可以更改nginx接收到的客户端请求的请求头信息,然后将新的请求头信息发送给被代理的服务器。
- proxy_set_body
proxy_set_body value
ngin接收到客户端的请求后使用该指令可以修改request中的body体,然后将请求转发给代理服务器
- proxy_connect_timeout
proxy_connect_timeout time
nginx服务器与被代理服务器之间尝试建立连接的的超时时间,默认为60s。
- proxy_read_timeout
proxy_read_timeot time
nginx服务器接收被代理服务器数据时最大的等待时间,默认为60s。
- proxy_send_timeout
proxy_send_timeout time
nginx服务器发送数据至被代理服务器的最大等待时间,例如60s内没有发出一个字节则默认断开连接,默认60s。
- proxy_http_version
proxy_http_version 1.0|1.1
nginx 服务器提供代理服务的http协议版本
- proxy_method
proxy_method method
nginx服务器设置请求被代理服务器时使用的请求方法,一般为POST或者GET
- proxy_ignore_client_abort
proxy_ignore_client_abort on|off
当客户端中断网络请求时,nginx服务是否中断对代理服务器的请求,默认off
- proxy_ignore_headers
proxy_ignore_headers field...
nginx服务器接收到被代理服务器的响应数据后,不会处理被设置的头域
- proxy_redirect
proxy_redirect redirect replacement; #使用replacement替换redirect
proxy_redirect default; #使用location块的uri替换掉 proxy_pass 后的变量
proxy_redirect off; #当前作用域下所有 proxy_redirect 指令全部失效如果需要修改从被代理服务器传来的应答头中的"Location"和"Refresh"字段,可以用这个指令设置
- proxy_intercept_errors
proxy_intercept_errors on|off
该指令开启时,当被代理服务器返回http状态码为400或者大于400时,nginx服务器会使用自己定义(使用error_page指令)的响应错误页面,如果为off时直接返回状态码
- proxy_next_upstream
proxy_next_upstream status
当被代理的服务器是一个 使用upstream指令配置的一组服务器时,服务器组中的服务器遵循upstream指令配置的的轮训规则,同时也可以使用该指令来设置发生哪些异常时使用组内的下一个服务器处理请求。可选值:error | timeout | invalid_header | http_500 | http_502 | http_503 | http_504 | http_403 | http_404 | off ...;其中off指无法将请求发送给被代理服务器
- proxy_ssl_session_reuse
proxy_ssl_session_reuse on|off
用于配置是否使用基于SSL安全协议的的会话连接(https://)被代理服务器,默认为开启状态
nginx代理(正向代理和反向代理)的更多相关文章
- 正向代理 forward proxy、反向代理 reverse proxy、透明代理 transparent proxy nginx反向代理原理和配置讲解 防止外部客户机获取内部内容服务器的重定向 URL 缓存命中
[大型网站技术实践]初级篇:借助Nginx搭建反向代理服务器 - Edison Chou - 博客园http://www.cnblogs.com/edisonchou/p/4126742.html 图 ...
- 前nginx后Apache+Node反向代理
前几天一直在被一个问题困扰,机器上跑的站点太多了,Apache上面有十几个,NodeJS的也有一堆,记端口号都要烦死,于是萌生了使用反向代理的想法.出发点貌似太low了,完全不是出于负载均衡.高并发什 ...
- Nginx服务器部署 负载均衡 反向代理
Nginx服务器部署负载均衡反向代理 LVS Nginx HAProxy的优缺点 三种负载均衡器的优缺点说明如下: LVS的优点: 1.抗负载能力强.工作在第4层仅作分发之用,没有流量的产生,这个特点 ...
- 使用Nginx对.NetCore站点进行反向代理
前言 之前的博客我已经在Linux上部署好了.NetCore站点且通过Supervisor对站点进行了进程守护,同时也安装好了Nginx.Nginx的用处非常大,还是简单说下,它最大的功能就是方便我们 ...
- nginx监听端口和反向代理端口的权限问题
Linux的SELinux安全性控制除作用于文件系统外还作用于端口,这使得那些作为服务启动的进程只能在规定的几个端口上监听.为叙述方便我们称之为受控端口. nginx监听端口 要查看当前有哪些受控端口 ...
- Centos 7 上使用nginx为Node.js配置反向代理时错误:(13: Permission denied) while connecting to upstream
错误来源:Centos 7 上使用nginx为Node.js配置反向代理时产生(13: Permission denied) while connecting to upstream的错误 nginx ...
- nginx服务器开启缓存、反向代理
一.反向代理配置 1.反向代理服务器配置如下 反向代理就是需要这一行proxy_pass来完成.当我们要访问后端web服务器的时候,我们只需要访问代理服务器就可以了,此时代理服务器就充当后端web服务 ...
- Nginx 反向代理功能-实现http反向代理
Nginx 反向代理功能-实现http反向代理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.
- nginx配置虚拟主机、反向代理和负载均衡
为了实现这个功能,需要修改nginx的配置文件,将nginx.conf清理一下,使结构更清晰. worker_processes ; events { worker_connections ; } h ...
- 正向代理 forward proxy、反向代理 reverse proxy、透明代理 transparent proxy
https://zh.wikipedia.org/wiki/反向代理 反向代理在计算机网络中是代理服务器的一种.服务器根据客户端的请求,从其关系的一组或多组后端服务器(如Web服务器)上获取资源,然后 ...
随机推荐
- 主外键 设置 on update cascade 和on delete cascade 的区别
on update cascade 和on delete cascade 的区别 这是数据库外键定义的一个可选项,用来设置当主键表中的被参考列的数据发生变化时,外键表中响应字段的变换规则的.updat ...
- [原][资料整理][osg]osgDB文件读取插件,工作机制,支持格式,自定义插件
参考: osgPlugins相关 osg读取文件的原理(插件工作机制) 当使用osgDB读取文件时,会自动根据文件的扩展名来到插件目录中寻找相应的插件,来实现. 比如: osgviewer cow.o ...
- shell编程系列10--文本处理三剑客之sed利用sed查询特定内容
shell编程系列10--文本处理三剑客之sed利用sed查询特定内容 利用sed查找文件内容: pattern种类: .8p .,10p .,+5p ./regexp/p .,/regexp/p . ...
- 深入Resource实现多语言支持的应用详解
首先为假设有一个应用程序CAStudy,接着右键添加一个资源文件Resource1.resx. Resource1.resx里面如下: Main函数如下:static void Main(){ ...
- ubuntu 关于curses头文件问题
执行编译gcc -o badterm badterm.c -lcurses后报错情报如下:term.h: 没有那个文件或目录curses.h: 没有那个文件或目录很明显,程序找不到term.h和cur ...
- java.io.IOException: Connection reset by peer at sun.nio.ch.FileDispatcherImpl.read0(Native Method) at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39)
报错: java.io.IOException: Connection reset by peer at sun.nio.ch.FileDispatcherImpl.read0(Native Meth ...
- 线程或进程绑定到特定的cpu
常用的宏定义有: 1) 对cpu集进行初始化, 将其设置为空集 void CPU_ZERO(cpu_set_t *set); 2) 将指定的cpu加入到cpu集中 void CPU_SET(int c ...
- 【433】COMP9024 复习
目录: 01. Week01 - Lec02 - Revision and setting the scene 02. Week02 - Lec01 - Data structures - memor ...
- AnyCAD三维控件(转)
在WinForm中可以方便的集成AnyCAD.Net三维控件,只需要以下几部即可完成. 一.添加DLL程序集 AnyCAD.Foundation.Net.dll AnyCAD.Presentation ...
- Suspended Animation——《The Economist》阅读积累(考研英语二·2010 Reading Text 1)
[知识小百科] Damien Hirst(达米恩●赫斯特):生于1965年,是新一代英国艺术家的主要代表人物之一.他主导了90年代英国艺术发展并享有很高的国际声誉.赫斯特在1986年9月就读于伦敦大学 ...