Nginx学习1:通过访问路径代理不同二级http服务

这篇具有很好参考价值的文章主要介绍了Nginx学习1:通过访问路径代理不同二级http服务。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 目的

  • 通过nginx实现代理,前端HTML5只需要对接一个http端口,即可与后台多个二级http服务进行对接,方法是在nginx中通过不同的路径代理不同的二级http服务。
  • 静态页面依然使用nginx一级服务器返回。

2.Nginx服务器配置

配置nginx,访问路径为button1时转发到3002端口,访问路径为button2时转发到3003端口。

    server {
        listen       8081;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;
		
		location / {
            root   html;
			index  index.html index.htm;
        }
        location /button1 {
            proxy_pass   http://127.0.0.1:3002;
        }
		location /button2 {
            proxy_pass   http://127.0.0.1:3003;
        }

3. ngnix静态网页编写

ngnix中静态文件目录

nginx 二级路径,Web开发,服务器,nginx,运维

index.html文件代码

<form action="http://127.0.0.1:8081/button1/login.php" method="post">
    <input type="submit"/>
</form>
<form action="http://127.0.0.1:8081/button2/login.php" method="post">
    <input type="submit"/>
</form>

4. 二级服务器搭建

使用nodejs搭建两个http服务器,分别监听3002、3003端口,代码如下:

// 1. 加载http核心模块
let http = require("http");

// 2. 使用http.createServer()方法创建一个web服务器,通过server接收
let server = http.createServer();

// 3. 服务器要做的事:提供服务,发送、接收、处理请求,并发送响应
/** server.on注册request请求事件,客户端请求时会自动触发服务器的request请求事件;
	回调函数对请求进行处理,参数介绍:
	req提供了请求的详细信息。通过它可以访问请求头和请求的数据.
	res用于构造要返回给客户端的数据。
*/
server.on("request", function (req, res) {
  // 这里的回调事件根据需要编写即可,这里给出简单示例
    
  // 3.1 收到请求时,打印请求的路径
  console.log(`收到客户端的请求了,请求路径是${req.url}`);
  // 3.2 设置响应头中的Content-Type为plain普通文本模式,否则中文无法正常展示
  res.setHeader("Content-Type", "text/plain; charset=utf-8");
  let url = req.url;
  // 3.3 根据不同的url展示不同内容
  if (url == "/") {
    // res.write--在页面内写入内容 
    res.write("首页");
  } else if (url == "/login") {
    res.write("登录");
  }
});
// 4.绑定端口号;
server.listen(3002, function () {
  console.log("服务器启动成功,可以通过http:127.0.0.1:3002/来进行访问");
});

服务器文件目录:

nginx 二级路径,Web开发,服务器,nginx,运维

在命令行运行两个服务

nginx 二级路径,Web开发,服务器,nginx,运维

nginx 二级路径,Web开发,服务器,nginx,运维

 5. 测试验证

浏览器打开显示效果如下,该页面使用ngnix返回html/index.html文件

nginx 二级路径,Web开发,服务器,nginx,运维

 点击第1个按钮,消息转发到3002服务,点击第2个按钮消息转发到3003服务

nginx 二级路径,Web开发,服务器,nginx,运维

nginx 二级路径,Web开发,服务器,nginx,运维

6. proxy_pass设置

proxy_pass代理地址端口后无任何字符,转发后地址:代理地址+访问URL目录部分

proxy_pass代理地址端口后有目录(包括 / ),转发后地址:代理地址+访问URL目录部分去除location匹配目录(示例中的"v1"或"v1/")

代理地址为 http://127.0.0.1:3002

按钮(http://127.0.0.1:8081/button1/login.php)URL目录地址为:button1/test/login.php

因此以下没有加/ 的访问地址为:http://127.0.0.1:3002/button1/login.php

 location /button1 {
     proxy_pass   http://127.0.0.1:3002;
 }

以下加/的访问地址为: http://127.0.0.1:3002/login.php

location /button1 {
     proxy_pass   http://127.0.0.1:3002/;
}

实际测试如下:

nginx 二级路径,Web开发,服务器,nginx,运维

 文章来源地址https://www.toymoban.com/news/detail-659782.html

 

到了这里,关于Nginx学习1:通过访问路径代理不同二级http服务的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • linux环境下docker中搭建 jenkins 及自定义访问路径,利用nginx反向代理

    前两天发布了完整的 linux服务器上Docker中安装jenkins 在实际的开发中,可能我们并不能直接开放8081或者8080端口给jenkins使用,常常是通过nginx方向代理来实现的,这里我们来配置一下。 如果你还没有安装 可以参考我这篇文章 linux服务器上Docker中安装jenkins 看到目录: 创建一个

    2024年02月16日
    浏览(47)
  • 通过nginx将https协议反向代理到http协议请求上

    目前一个系统仅支持https协议访问,因后端服务基于ssl协议,前端在请求是也需要支持ssl协议的https请求来访问。目前的代理服务器是nginx,现在想要 通过http访问系统 ,需通过nginx的 反向代理 或者 重定向方式 将https请求代理为http请求。可实现的做法有如下几种: 1、使后端

    2024年02月08日
    浏览(33)
  • 记录hutool http通过代理模式proxy访问外面的链接

    效果: 代码:  如何获取代理端口:  

    2024年02月10日
    浏览(46)
  • 如何通过nginx代理实现外网访问内网mysql或oracle数据库

            项目开发部署中经常会遇到MySQL或Oracle数据库安装在内网,而我们的应用服务只能部署在外网,如果实现外网服务访问连接内网的数据库呢?本次介绍如何通过Nginx配置实现外网访问内网数据库。 1、前置机服务器         首先要保证有一台前置机服务器既可以访

    2024年02月15日
    浏览(34)
  • 通过nginx的upstream配置域名进行http/htts的访问最佳实践方案(406/404问题解决)

    ​ 最近,开发部门有一个访问需求,被访问方给了我们两个https的域名访问接口,这里假设为: ​ 这两个域名解析出来的地址和接口信息都是一样的,但是根据要求,需要将两个域名访问接口作为主备的方式进行配置,在https://aaa.target.com/mytarget/login/出现异常不能使用的时候

    2024年01月19日
    浏览(37)
  • 使用Nginx反向代理,将React项目打包后部署到服务器的二级子目录

    我们上线一个项目的时候如果服务器上只有这一个项目的话可以直接将打包后的代码部署到服务器指定的根目录,然后直接上线看就可以看到,不用配置其他项。 但是,如果服务器有多个项目的话,我们就需要将代码部署到服务器根目录里边的子目录了,而放到子目录的话,

    2024年03月26日
    浏览(40)
  • Vue3:通过路由写多个页面,通过不同的路径可以进入不同的页面

    Vue3:想通过路由写2个页面,不同的路径可以进入不同的页面 1、创建Vue3项目 通过脚手架创建一个Vue3的项目,然后在此基础上对文件进行增删改,修改成自己需要的项目框架 2、views文件夹 对应 页面文件 如果需要写2个页面,则在views文件夹里面创建2个.vue文件 可以在.vue文件

    2024年02月11日
    浏览(31)
  • nginx vue2+webpack 和 vue3+vite 配置二级目录访问

    我们开发中会遇到这样的需求,让我们用服务器nginx部署一个用域名的二级目录来访问项目 https:xxx/二级目录/ 来放访问项目 目录 思路 1、nginx配置(vue2 和 vue3配置的nginx相同) 2、vue2+webpack的配置 (1)vue.config.js配置 (2)router配置 3、vue3+vite的配置 (1)vite.config.js配置 (

    2024年02月09日
    浏览(46)
  • 配置nginx的地址和路径的代理

    1.配置ip地址,为实现负载均衡通过配置upstream将请求进行分发到部署的server节点,可以为server节点配置weight权重,进行节点的流量控制,server 192.168.1.1:8808 weight=2; 若没有部署多个服务器节点,只是简单的做ip地址转发,proxy_pass配置的值直接就是IP地址加端口:proxy_pass http://

    2024年02月11日
    浏览(29)
  • Linux上使用nginx将不同域名代理到同一IP的不同端口

    目录 一.nginx正反向代理简介 1.正向代理 2.反向代理 二.nginx正反向代理的优点 1.正向代理 2.反向代理 三.nginx反向代理配置 1.基于源码安装的nginx环境下修改nginx.conf 2.通过管理员身份运行windows powershell修改hosts文件并测试 3.设备2和设备3上查看日志,可以访问看到来源都是代理服

    2024年02月15日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包