首页 > nginx > nginx反向代理配置

nginx反向代理配置

2013年5月2日 发表评论 阅读评论

nginx作为web服务器一个重要的功能就是反向代理。

当然你也可以使用nginx配置正向代理,本是介绍如何配置nginx的反向代理。

nginx反向代理的指令不需要新增额外的模块,默认自带proxy_pass指令,只需要修改配置文件就可以实现反向代理。

什么是反向代理服务器

反向代理功能是nginx的三大主要功能之一(静态web服务器、反向代理、负载均衡)。nginx一般同时做为静态web服务器和反向代理服务器,做为web服务器访问静态文件图片、css、js、html等文件,做为反向代理服务器把请求发给后端业务处理服务,如果有多个后端处理节点,会配置负载均衡功能。

反向代理服务器是一种代理服务器,用于管理从外部网络到内部网络的连接或任何特定请求。它保护、路由和管理从外部网络到内部网络、Web服务器或专用网络的流量。

外网客户机:我们平时打开浏览器输入网址访问blog.redis.com.cn的场景中,我们的笔记本就可以理解为一个外网客户机。

nginx反向代理服务:浏览器输入网址并回车后,会发起一个http请求给nginx(反向代理服务器),这个请求如果是访问静态文件,那么nginx作为web服务器直接返回请求的内容,如果是访问的后台服务逻辑,那么nginx把请求转发给后端的服务处理。

内网web服务:后端的服务可以是很多种类型,LNMP环境下的php-fpm进程,Java环境下的tomcat、jetty等容器,通过程序逻辑处理http请求,生成html页面或者json串返回给客户端。对于小型应用,后端服务可以和nginx部署在同一台机器上。

反向代理服务器的好处

nginx反向代理重要的作用是配合upstream实现负载均衡

同时增加安全性,客户端不能直接访问后端服务,多了一个中间的屏障。

提升性能,通过异步非阻塞的方式把请求传给后端,提升了并发处理能力。

也可利用缓存、压缩响应提高响应速度。

nginx如何配置反向代理

nginx反向代理不需要编译额外的模块,默认自带proxy_pass和fastcgi_pass指令,通过在location配置块中增加指令就可以实现反向代理功能。

以blog.redis.com.cn为例,这个网站用的wordpress程序,wordpress是php语言编写,那么需要通过php运行环境,可以选择apache的php扩展或者php-fpm环境,主流的选择是php-fpm,php-fpm设置为Unix socket模式或者ip:端口模式 。

Unix socket后端服务配置

ip端口后端服务配置

proxy_pass和fastcgi_pass区别

对于上面介绍的两种情况下proxy_pass和fastcgi_pass可以互相替代使用,不过两者还是有区别的,从名字我们就可以看出来,fastcgi_pass是用来反向代理fastcgi协议,proxy_pass可以代理包括fastcgi协议在内的其它协议。

例如镜像一个网站,这种情况下就需要proxy_pass:

分类: nginx 标签: ,
  1. 2020年12月8日17:51 | #1

    ddddd :没说为啥要这么做

  2. mood
    2019年5月30日11:15 | #2

    @网友1
    是的

  3. 2018年10月28日16:05 | #3

    这是哪个版本的NGINX啊

  4. 网友1
    2018年10月15日13:10 | #4

    @chenhe
    大哥说白了,反代的作用就是负载均衡,在NG+tomcat 的 组合上来说。只是 前段的nginx 顶并发的效果更好。

  5. 2017年11月9日18:11 | #5

    @mood
    大神,加了。你同意一下吧。

  6. 2017年11月6日11:06 | #6

    我不怎么看的懂,能不能给你的一个联系方式。可以具体的问你一下

  7. 111
    2017年9月29日10:20 | #8

    没图看不懂

  8. raptorf22
    2017年7月19日14:40 | #9

    写的实在是垃圾至极!!!

  9. dddddddddd
    2017年7月13日00:07 | #10

    写得一坨屎

  10. zzm
    2017年6月22日10:16 | #11
  11. 2017年5月18日12:42 | #12

    nice job!

  12. 2017年3月31日15:57 | #13

    @常常乐乐
    老哥稳。

  13. 2017年2月17日11:39 | #14

    @常常乐乐
    你连这都看不懂还出来指责别人。。。悲哀

  14. weifan
    2017年1月12日20:00 | #15

    @常常乐乐
    前面的理解了再学后面的就不会这样提问题了

  15. 111
    2017年1月10日11:01 | #16

    然后就可以新建一个vhost.conf,加入如下内容,记得修改ip和域名为你的ip和域名。

    这个不是Apache虚拟域名设置的吗?
    你这个设置要怎么搭配?

  16. 2016年11月24日16:10 | #17

    修改nginx.conf,添加 include quancha.conf 到http{}段, reload nginx就可以了。

    quancha.conf 文件是从哪里冒出来的?内容是什么?reload nginx如何reload?
    就这水平还写教程?你以为刚学的都像你一样这么懂?那还看你这教程搞毛线?

  17. 建华
    2016年11月3日11:52 | #19

    被搞蒙了,感觉这不就是负载均衡么,弄得我以为要载入两个server。。。果然我还是太小白了

  18. 2015年10月9日23:28 | #20

  19. 2015年6月26日10:04 | #21

    写的不错

  20. 2015年6月8日20:14 | #22

    打回去重写~

    • 2015年6月8日22:56 | #23

      嘿嘿,反想代理时nginx最基本的配置,如果对nginx的配置了解很容易,最好指出来哪里不容易理解,这样我好修改,嘿嘿

      • oldmtn
        2015年8月13日09:17 | #24

        步骤不清晰,流程不完善,没有测试方法。

  21. 2014年11月24日16:10 | #25

    说的不太清晰啊

  22. 2014年9月25日11:40 | #26

    你好,请问下nginx作文件上传反向代理时候 由于proxy_buffer_size的问题 后端程序获取到的数据有问题, 查了很多 都么有介绍关闭buffer功能。能否关闭 proxy_buffer_size呢?

  23. 2014年1月23日12:03 | #27

    教程可以写得这样,看了跟没看一样,也算是难为你了。

  24. 2013年11月25日15:48 | #30

    没有缓存相关配置么,我的怎么配置了 动态页面缓存不了 把php.ini中session.cache_limiter=nocache 修改为public就可以,但是所有的页面都缓存了

  25. laoshe
    2013年10月22日19:10 | #31

    使用nginx做反向代理带来性能大幅下降 怎么办 这是webbench做的压力测试
    Speed=306596 pages/min, 2227931 bytes/sec.

    这是不用代理是的性能

    使用ngnix反向代理后

    Speed=7298 pages/min, 47969 bytes/sec.

    • 2013年10月24日15:39 | #32

      如果单单用反向代理,就有点类似脱裤子放屁。反向代理的背后是负载均衡。

  26. 2013年9月17日10:06 | #33

    可以写清楚点, ,反向代理的实际应用是个啥。

  27. 2013年9月11日17:53 | #34

    打回去重写

    • 2013年9月11日20:15 | #35

      嘿嘿,哪里有问题呢?
      这个只是基本配置,对于普通用户来不可能大而全,能用上我觉得就可以,碰到具体问题具体分析。
      如果有更好的教程,欢迎指教。

  28. 2013年8月15日16:34 | #36

    对了,一台是ubuntu,一台是centos6.4 .

  29. 2013年8月15日16:29 | #37

    nginx版本1.0.6

  30. 2013年8月15日16:29 | #38

    我的nginx做反向代理后端的8089端口(这个原来的运维做的),然后我想再做一个nginx弄HA,现在是我的nginx搭建好了,配置文件全部copy那台nginx的,80端口代理的能正常访问,8089端口代理的不能访问,原来那台还配置了memcached,是不是因为这个的问题呢?

  31. ddddd
    2013年6月25日16:42 | #40

    没说为啥要这么做

  1. 2013年6月19日14:18 | #1
  2. 2013年7月30日05:49 | #2
  3. 2013年10月9日11:22 | #3
  4. 2013年10月9日11:26 | #4
  5. 2014年9月2日11:28 | #5
  6. 2014年9月2日11:29 | #6
  7. 2015年6月16日11:55 | #7
  8. 2015年8月16日12:19 | #8
  9. 2015年9月9日14:01 | #9
  10. 2015年10月19日10:19 | #10
  11. 2018年4月12日21:08 | #11
  12. 2018年10月30日19:41 | #12
  13. 2019年4月20日16:21 | #13
  14. 2019年5月19日09:04 | #14