nginx反向代理转发_打野二师兄的博客-程序员宝宝_nginx反向代理转发

技术标签: nginx  

转载:Nginx实现请求转发

反向代理适用于很多场合,负载均衡是最普遍的用法。

nginx 作为目前最流行的web服务器之一,可以很方便地实现反向代理。

nginx 反向代理官方文档: NGINX REVERSE PROXY

当在一台主机上部署了多个不同的web服务器,并且需要能在80端口同时访问这些web服务器时,可以使用 nginx 的反向代理功能: 用 nginx 在80端口监听所有请求,并依据转发规则(比较常见的是以 URI 来转发)转发到对应的web服务器上。

例如有 webmail , webcom 以及 webdefault 三个服务器分别运行在 portmail , portcom , portdefault 端口,要实现从80端口同时访问这三个web服务器,则可以在80端口运行 nginx, 然后将 /mail 下的请求转发到 webmail 服务器, 将 /com下的请求转发到 webcom 服务器, 将其他所有请求转发到 webdefault 服务器。

假设服务器域名为example.com,则对应的 nginx http配置如下:

http {
    server {
            server_name example.com;

            location /mail/ {
                    proxy_pass http://example.com:protmail/;
            }

            location /com/ {
                    proxy_pass http://example.com:portcom/main/;
            }

            location / {
                    proxy_pass http://example.com:portdefault;
            }
    }
}

以上的配置会按以下规则转发请求( GET 和 POST 请求都会转发):

http://example.com/mail/ 下的请求转发到 http://example.com:portmail/
http://example.com/com/ 下的请求转发到 http://example.com:portcom/main/
将其它所有请求转发到 http://example.com:portdefault/
需要注意的是,在以上的配置中,webdefault 的代理服务器设置是没有指定URI的,而 webmail 和 webcom 的代理服务器设置是指定了URI的(分别为 / 和 /main/)。
如果代理服务器地址中是带有URI的,此URI会替换掉 location 所匹配的URI部分。
而如果代理服务器地址中是不带有URI的,则会用完整的请求URL来转发到代理服务器。

以上配置的转发示例:

http://example.com/mail/index.html -> http://example.com:portmail/index.html
http://example.com/com/index.html -> http://example.com:portcom/main/index.html
http://example.com/mail/static/a.jpg -> http://example.com:portmail/static/a.jpg
http://example.com/com/static/b.css -> http://example.com:portcom/main/static/b.css
http://example.com/other/index.htm -> http://example.com:portdefault/other/index.htm
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_25385555/article/details/90482360

智能推荐

外星人笔记本 键盘灯不亮解决 Alienware 13_god_7z1的博客-程序员宝宝

首先保证安装了外星人的必需安装的驱动其次测试:按FN+F12键..  在任务栏右下角右键外星人图标把"仅在电池模式变暗光照区"勾上..灯立马亮了..    (我的是这个解决的)解决大全:http://dell.benyouhui.it168.com/thread-1765377-1-1.html

win10+centos7双系统安装,设置基础软件仓库时出错,分区配置方案,接受许可证后进不了桌面_day_day_grow的博客-程序员宝宝

本想安装win10+centos7双系统以学习鸟哥的那本书,但是安装双系统并不像安装虚拟机那么顺利,期间碰到很多问题,花了很多时间。在参考很多资料后,终于解决问题,安装成功。现对期间碰到的问题以及解决办法做个记录,以回馈那些花费的大量时间,同时帮助有需要的人。问题1:分配磁盘问题2:设置bios问题3:设置基础软件仓库时出错本人一开始使用的是软碟通启动盘制作工具,但是安装过程中出现如下问题:设置基础软件仓库时出错。在网上找了很多帖子,试了很多种办法,都没有解决这个问题。然后我把启动盘制作工具换成了

干货|靶场|工具|字典 分享_zhangge3663的博客-程序员宝宝

字典集合项目地址:https://github.com/epony4c/Exploit-Dictionary网盘地址:链接:https://pan.baidu.com/s/1GL2olkn0nCsGmYYpZWCypA提取码:sbkuvulstudy靶机集合vulstudy是专门收集当下流行的漏洞学习平台,并将其制作成搬运工镜像,方便大家快速搭建环境,节省搭建时间,专注于的漏洞学习上目前。vulstudy包含以下漏洞学习平台:序号 漏洞平台 包含.

百度云生态分享日 | AI技术实践与应用沙龙活动成功举办_百度智能云的博客-程序员宝宝

2017年7月29日,百度云生态分享日首场活动,以“百度云AI技术实践与应用”为主题的沙龙活动在北京车库咖啡成功举办。300多位企业CTO、CIO及开发者参加本次活动,聆听并积极与演讲嘉...

CAD如何转换成PDF格式文件的两大方法_普通网友的博客-程序员宝宝

平时大家需编辑好CAD格式文件后,若是需要将其发送给其他人查看,大多会先将其转换成PDF文件,毕竟大多数人电脑上一般没有安装到CAD编辑查看软件。那么,接下来就要来和大家讲讲怎么将CAD转换成PDF格式文件了。方法一、在线转换1、CAD转换成PDF有一个比较简单的方法,就是进行在线转换。打开以下平台后,找到“CAD转PDF”选项。2、点击该功能,进入到文件添加界

ubuntu上搭建postfix+extmail(实战笔记) _scnjl007的博客-程序员宝宝

 sudo aptitube install postfix-mysql courier-authlib-mysql courier-pop libsasl2-modules-sql maildrop apache2-suexec-custom libunix-syslog-perl rsync mailgraph ntpdate apache2 libapache2-mod-fcgid sa...

随便推点

基于Promise 自己实现一个 async,await。从此异步编程变得更简单!_Changlon的博客-程序员宝宝_promise如何实现async awaot

碎碎念:亲爱的读者:你好!我叫 Changlon —— 一个非科班程序员、一个致力于前端的开发者、一个热爱生活且又时有忧郁的思考者。 如果我的文章能给你带来一些收获,你的点赞收藏将是对我莫大的鼓励!我的邮箱:[email protected]我的Github: https://github.com/Changlon参考文章:Generator 函数的含义与用法MDN Generatorgithub源码地址:myasync自从有了Promise这个好用的技术,我们的..

gpio_jason_jdsn的博客-程序员宝宝

General Purpose Input Output (通用输入/输出)简称为GPIO,或总线扩展器,人们利用工业标准I2C、SMBus或SPI接口简化了I/O口的扩展。当微控制器或芯片组没有足够的I/O端口,或当系统需要采用远端串行通信或控制时,GPIO产品能够提供额外的控制和监视功能。分类:硬件/嵌入开发驱动开发/核心开发每个GPIO端口可通过软件分别配置成输入或输出。Maxim的

株洲所实习的第二十天(有关未来五年数字行业发展和期望(双语))_代码绝缘体程序员的博客-程序员宝宝_实习第20天

I learn a lot from school’s website overview. I think user experience is really important, in my opinion, it seems to me that UX must come first. Every single software is inseparable from the user exp...

jenkins构建java项目找不到命令mvn,java的解决方法_weixin_30776863的博客-程序员宝宝

jenkins构建java项目时出现的报错情况:$ mvn clean installFATAL: command execution failedjava.io.IOException: error=2, No such file or directory at java.lang.UNIXProcess.forkAndExec(Native Method) at java....

layui劝退_Sherlock_Holmes_lv的博客-程序员宝宝_layui react

之前没有接触过layui, 这次项目中尝试了一下,巨坑。而且 现在 react、vue大行其道,心得:作为程序员应该尝试流行的技术需求:上传图片的时候需要检查图片的宽高比,使用layui的upload模块,即使拦截了,也会上传,而且无需请求后端。我怀着急躁的心情只好在后端检测了layui:upload.render({ elem: '#layuiadmin-upload-list' , url: '/books/uploadImg' .

推荐文章

热门文章

相关标签