Nginx反向代理配置之proxy_pass

举报
彭世瑜 发表于 2021/08/14 00:08:29 2021/08/14
【摘要】 一、环境准备 使用express准备解析路径的应用 本来准备使用Flask, 不过没找到路由通配符的实现方法 1、server.js const express = require("express"); const app = express(); app.get("*", (request, response) => { response.send(...

一、环境准备

使用express准备解析路径的应用
本来准备使用Flask, 不过没找到路由通配符的实现方法

1、server.js

const express = require("express");

const app = express();

app.get("*", (request, response) => { response.send(request.path)
})

const port = 8081;

app.listen(port, () => { console.log(`server at: http://127.0.0.1:${port}`);
})

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

访问:http://127.0.0.1:8081/

2、配置本地DNS
/etc/hosts

127.0.0.1 www.demo.com

  
 
  • 1

3、配置Nginx
demo.com.conf

server {
  listen 80; server_name www.demo.com; location / { proxy_pass http://127.0.0.1:8081/;
  }
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

访问:http://www.demo.com/

二、简单示例

location匹配的网址

location / # 普通 location
location ^~ /   # ^表示 “非”,~ 表示 “正则”,意思是:不要继续匹配正则 

  
 
  • 1
  • 2

先看一个简单的例子:
配置1:

location /api { proxy_pass http://127.0.0.1:8081/;
}

# 访问 | 返回两个路径
http://www.demo.com/api   /
http://www.demo.com/api/  //

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

配置2:

location /api/ { proxy_pass http://127.0.0.1:8081/;
}

# 访问 | 返回一个路径
http://www.demo.com/api   /   # 网址会自动加/
http://www.demo.com/api/  /

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

所以,为了减少变量,配置location的地址,都在结尾加上/

三、测试

访问的地址都是:
http://www.demo.com/api/index.html

proxy_pass return
http://127.0.0.1:8081 /api/index.html
http://127.0.0.1:8081/ /index.html
http://127.0.0.1:8081/admin /adminindex.html
http://127.0.0.1:8081/admin/ /admin/index.html

所以,还是proxy_pass以/ 结尾比较容易记忆

参考
nginx 反向代理之 proxy_pass

文章来源: pengshiyu.blog.csdn.net,作者:彭世瑜,版权归原作者所有,如需转载,请联系作者。

原文链接:pengshiyu.blog.csdn.net/article/details/105010864

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。