最近在项目中使用nginx反向代理,根据不同的请求路径,将请求分发到不同服务。下面的示例主要完成如下功能

  • /prod/路径的请求分发到prod服务
  • /test/路径的请求分发到test服务

创建文件夹:/root/web/prod,/root/web/test;分别上传一个index.html文件,文件内容分别为:prod, test。

配置反向代理

修改/usr/local/nginx/conf/nginx.conf文件,在http节点下新增如下两个节点:

     //模拟prod服务
server {
listen ;
server_name localhost; location / {
root /root/web/prod;
}
} //模拟test服务
server {
listen ;
server_name localhost; location / {
root /root/web/test;
}
}

nginx反向代理主要使用指令“proxy_pass”,反向代理服务节点配置如下,

 server {
listen ;
server_name localhost; location / {
root html;
index index.html index.htm;
} location /prod/ {
proxy_pass http://localhost:8081/;
} location /test/ {
proxy_pass http://localhost:8082/;
}
}

保存修改后的配置文件,重新加载nginx.conf文件

 /usr/local/nginx/sbin/nginx -s reload;

在浏览器中访问:http://ip/prod, htpp://ip/test, 分别显示prod, test字符串。

proxy_pass根据path路径转发时的"/"问题记录

在nginx中配置proxy_pass时,如果是按照^~匹配路径时,要注意proxy_pass后的url最后的/。当加上了/,相当于是绝对根路径,则nginx不会把location中匹配的路径部分代理走;如果没有/,则会把匹配的路径部分也给代理走

    location /prod/ {
proxy_pass http://localhost:8081/;
}

如上面的配置,如果请求的url是http://ip/prod/1.jpg会被代理成http://localhost:8081/1.jpg

    location /prod/ {
proxy_pass http://localhost:8081;
}

如上面的配置,如果请求的url是http://ip/prod/1.jpg会被代理成http://localhost:8081/prod/1.jpg

在使用proxy_pass进行反向代理配置时,一定要多注意是否需要加"/",该问题已经犯了很多次了,切忌,特别感谢如下参考的文章:proxy_pass根据path路径转发时的"/"问题记录

参考文章

proxy_pass根据path路径转发时的"/"问题记录

nginx反向代理配置的更多相关文章

  1. nginx反向代理配置及优化

    nginx反向代理配置及优化前言: 由于服务器apache抗不住目前的并发.加上前端squid配置后,问题依然无法解决.而页面程序大部分是动态.无法使用fastcgi来处理.因此想使用nginx做为反 ...

  2. nginx反向代理配置实例分享

    nginx反向代理配置一例. 配置内容如下: user www www; worker_processes 8; error_log /usr/local/webserver/nginx/logs/n ...

  3. 使用python自动生成docker nginx反向代理配置

    由于在测试环境上用docker部署了多个应用,而且他们的端口有的相同,有的又不相同,数量也比较多,在使用jenkins发版本的时候,不好配置,于是想要写一个脚本,能在docker 容器创建.停止的时候 ...

  4. Nginx反向代理配置可跨域

    由于业务需要,同一项目中的前端代码放在静态环境中,而后端代码放在tomcat中,但此时问题却出现了:前端使用ajax请求后端获取数据时出现如下报错 XMLHttpRequest cannot load ...

  5. Nginx反向代理配置配置实例

    为了节省支出,公司需要将分布在不同机器的站点都迁移到一台机器,而目前不同机器运行的是不同的web服务,部分是nginx,部分是apache,由于牵涉较多rewrite规则,为了节省修改功夫,打算迁移后 ...

  6. Linux 下的 Nginx 反向代理配置.

    最近实践中遇到了需要利用 nginx 进行反向代理服务器请求的需求,以前没怎么碰触过,因此花了1个多小时,快速阅览了一下nginx官网在反向代理服务中给出的基本定义: 说实话,官网给予的定义是精准的, ...

  7. nginx反向代理配置两个不同服务器

    1.什么是反向代理通常的代理服务器,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中由代理服务器向Inter ...

  8. Nginx反向代理配置教程(php-fpm)

    1.安装nginx http://www.cnblogs.com/lsdb/p/6543441.html 2.安装php-fpm yum install -y php-fpm 3.配置Nginx反向代 ...

  9. nginx 反向代理配置 upstream

    最近项目要写后台,用nodejs写服务接口,然后研究了下nginx反向代理,各种坑下来,也总算把代理配了下来. 我本地用nodejs起了两个服务,一个端口是8888,一个端口是8889,在启动ngin ...

随机推荐

  1. Kali Linux桥接模式配置DNS服务器

    操作环境: 虚拟机操作系统: Kali Linux 2017.2 虚拟化软件: VMWare Workstation 14 pro 操作前的准备: 在设置里将Kali的上网模式设置成"桥接模 ...

  2. Reactor模式的.net版本简单实现--DEMO

    近期在学习DotNetty,遇到不少的问题.由于dotnetty是次netty的.net版本的实现.导致在网上叙述dotnetty的原理,以及实现技巧方面的东西较少,这还是十分恼人的.在此建议学习和使 ...

  3. cmder中文乱码、文字重叠等问题

    对于玩linux的同学来说,win7中的cmd弱爆了,今天我在微博中看到cmder这个工具,自己安装了,觉得不错,就此分享给大家 下载安装到这里http://bliker.github.io/cmde ...

  4. traceback模块

    traceback模块被用来跟踪异常返回信息 如下例所示: import traceback try: raise SyntaxError, "traceback test" ex ...

  5. BZOJ_1100_[POI2007]对称轴osi_KMP+计算几何

    BZOJ_1100_[POI2007]对称轴osi_KMP+计算几何 Description FGD小朋友——一个闻名遐迩的年轻数学家——有一个小MM,yours.FGD小朋友非常喜欢他的MM,所以他 ...

  6. BZOJ_1433_[ZJOI2009]假期的宿舍_二分图匹配

    BZOJ_1433_[ZJOI2009]假期的宿舍_二分图匹配 题意: 学校放假了······有些同学回家了,而有些同学则有以前的好朋友来探访,那么住宿就是一个问题.比如A 和B都是学校的学生,A要回 ...

  7. ffmpeg 获得视频的时间长度, 仅仅学习一下

    public static void main(String[] args) { String result = processFLV("E:\\test\\京视传媒\\体育类\\xiao. ...

  8. Docker 发布 Abp net core web 服务

    Docker 发布 Abp net core web 服务 准备工作:Abp 项目,这个是模板下载地址 https://aspnetboilerplate.com/Templates (本例使用的是S ...

  9. 8天入门docker系列 —— 第四天 使用aspnetcore小案例熟悉端口映射和挂载目录

    到目前为止大家应该对镜像和容器有了一个大概认知,而且也用了docker进行了一个简单化的部署,但仔细一看问题还有很多,所以这篇我们继续完善. 一:如何让外网访问到容器内应用 我们知道容器内拥有自己的子 ...

  10. Nginx+Keepalived 集群方案

    1.Keepalived高可用软件 Keepalived软件起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能.因此,kee ...