nginx的代理服务

正向代理和反向代理

正向代理服务器就是用来让局域网的客户端接入外网访问外网资源,反向代理就是让外网的客户端接入局域网中的站点以访问点中的资源

正向代理

我是一个用户,我访问不了某网站,但是我能访问一个代理服务器

这个代理服务器呢,他能访问那个我不能访问的网站

于是我先连上代理服务器,告诉他我需要那个无法访问网站的内容

代理服务器去取回来,然后返回给我

从网站的角度,只在代理服务器来取内容的时候有一次记录

有时候并不知道是用户的请求,也隐藏了用户的资料,这取决于代理告不告诉网站

结论就是 正向代理 是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理

反向代理

对于客户端而言它就像是原始服务器,并且客户端不需要进行任何特别的设置。客户端向反向代理 的命名空间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将获得的内容返回给客户端,就像这些内容 原本就是它自己的一样。

1)Proxy_pass指令用来设置代理服务器的地址,

例子:#反向代理服务的指令

upsteam westos {
server 172.25.254.1:80;
server 172.25.254.2:80;
}
server {
listen 80;
server_name www.mimi.com
location / {
proxy_pass http://westos;
}
}

例子2)

[root@wish1 408]# cat 5
server {
listen 80
server_name www.myweb.name;
location /server/
{
#配置1 proxy_pass http://192.168.1.1;
#配置2 proxy_pass http://192.168.1.1/; } }

在该配置中,location块中使用’/server/来作作为uri变量的值匹配URI”/server”中请求的URL。这时配置1和2就不一样了,配置1指令中的URL变量不包含URI,nginx服务器将不改变源地址的URI;使用配置2的时候,指令中包含了URI“/” nginx服务器会将源地址的URI替换成/

比如客户端的请求URL为http://www.,myweb.name/server/index.html,将会被实例2 中的location成功匹配,使用配置1的时候,转向的URL为http://192.168.1.1/server/index.html,原地址的URI/server未被改变,但使用配置2的时候,转向的URI为http://192.168.1.1/index.html,可以看到原地址的URI /server/被替换成/

nginx的缓存机制

Nginx服务器的这一种缓存主要还是依靠自身的proxy store功能对404错误的进行重定向来实现的,当nginx服务器在处理客户端请求的时候,发现请求的资源不存在,会产生404错误,然后服务器捕捉这个错误,进一步向后端服务器转交请求数据,最后将后端服务器的响应数据传回给客户端,同时在本地进行缓存。

最新文章

  1. Eclipse导入Tomcat源码(转)
  2. JAVA设计模式 之 观察者模式
  3. Java常量字符串String理解
  4. CodeForces Gym 100500A A. Poetry Challenge DFS
  5. wcf+linq to sql中关联查询返回数据问题
  6. spring 切面 前置后置通知 环绕通知demo
  7. Hibernate--基本映射标签和属性介绍
  8. windows server 2003 64x 读取office数据终极解决办法 The 'Microsoft.Jet.OLEDB.4.0' provider is not registered
  9. STL之优先级队列priority_queue
  10. malloc without free, what happens?
  11. 利用Java提供的Observer接口和Observable类实现观察者模式
  12. HDU--2011
  13. git 学习笔记(常用命令)
  14. Spring 的IOC和AOP总结
  15. 【转】Oracle之索引
  16. Docker系列08—搭建使用私有docker registry
  17. WebGIS中以version方式实现代码更新后前端自动读取更新代码的方法
  18. mybatis循环、mybatis传map
  19. WinEdt 和 Sumatra 双向关联设置
  20. 五种常见的ASP.NET安全缺陷

热门文章

  1. linux (一)
  2. OpenCV学习笔记(10)——图像梯度
  3. leetcode 139 单词拆分(word break)
  4. Go语言程序结构
  5. P1141 01迷宫(连通块模板)
  6. mapreduce的shufflue过程
  7. Logistic回归基础篇之梯度上升算法
  8. Akka系列(八):Akka persistence设计理念之CQRS
  9. CSS:文字水平居中的写法
  10. Vector和ArrayList的区别联系,Hashtable和HashMap的区别联系