当前位置: 首页 > 知识库问答 >
问题:

相对链路不与nginx反向代理一起工作

程仲卿
2023-03-14
events {}
http {
    upstream nextjs_upstream {
        server localhost:3000;
    }

    server {
        listen 8080 default_server;

        server_name _;

        server_tokens off;

        location / {
            proxy_pass http://nextjs_upstream/us/;
        }
        location /_next/static {
            proxy_pass http://nextjs_upstream/_next/static;
        }
    }
}

而且,如果我添加这样的内容:

<Link href='/about-us'>
  <a>NextJs Link</a>
</Link>

单击它,我将正确地发送到http://localhost:8080/about-us,它显示http://localhost:3000/us/about-us中的内容。

这一切都按预期进行,而且非常完美。

<a href="/about-us">
  Normal link
</a>

我在这里做错了什么?我需要重写请求路径吗?

共有1个答案

沃楷
2023-03-14

像这样的成像:

1/如果我的链接是:http://localhost:8080/us/about-us

2/它将发送给您的代理,并满足第一个条件:

location / {
    proxy_pass http://nextjs_upstream/us/;
}
if ($request_uri ~ ^(.*)/us/) {
    rewrite (.*)/us/(.*)$ $1/$2;
}
events {}
http {
    upstream nextjs_upstream {
        server localhost:3000;
    }

    server {
        listen 8080 default_server;

        server_name _;

        server_tokens off;
        
        if ($request_uri ~ ^(.*)/us/){
            rewrite (.*)/us/(.*)$ $1/$2;
        }
        location / {
            proxy_pass http://nextjs_upstream/us/;
        }
        location /_next/static {
            proxy_pass http://nextjs_upstream/_next/static;
        }
    }
}
 类似资料:
  • 我有一个带有Express和Socket.io(Ubuntu18.04)的Nodejs服务器应用程序。在nGinx(1.14)反向代理进入场景之前,它总是工作得很好。nginx服务器运行在Node.js应用程序的不同机器上,每个应用程序都在同一网络中的自己的虚拟机上。 2.1.1版本上的服务器和客户端。 我还尝试删除path选项,并为socket.io东西配置了一个特定的/位置(出于测试目的):

  • 据我所知,问题必须与Ngnix反向代理和websockets如何路由有关。服务器对ping请求的答复似乎没有发送到客户端。但我似乎无法确定原因。任何帮助都是非常感谢的。

  • 本文向大家介绍nginx正向代理与反向代理详解,包括了nginx正向代理与反向代理详解的使用技巧和注意事项,需要的朋友参考一下 正向代理 就是假设有一个内网 内网有两台机器,这两台机器只有 a 可以上网 b 不能上网,但是 a 和 b 通过网络相连接 这时如果 b 想访问外网,就可以通过 a 来正向代理访问外网 正向代理就是在内网中模拟目标服务器,把内网中其它机器的请求 转发给外网中的真正的目标服

  • 主要内容:1. 代理服务器介绍,2. 将请求传递给代理的服务器,3. 传递请求标头,4. 配置缓冲区,5. 选择传出IP地址本文介绍代理服务器的基本配置。 您将学习如何通过不同协议将NGINX请求传递给代理的服务器,修改发送到代理服务器的客户端请求标头,以及配置来自代理服务器的响应缓冲。 代理服务器的基本配置目录 代理服务器介绍 将请求传递给代理的服务器 传递请求标头 配置缓冲区 选择传出IP地址 1. 代理服务器介绍 代理通常用于在多个服务器之间分配负载,无缝地显示来自不同网站的内容,或者通过

  • Nginx 是一个高性能的 HTTP 和反向代理服务器,代码完全用 C 实现,基于它的高性能以及诸多优点,我们可以把它设置为 hyperf 的前置服务器,实现负载均衡或 HTTPS 前置服务器等。 配置 Http 代理 # 至少需要一个 Hyperf 节点,多个配置多行 upstream hyperf { # Hyperf HTTP Server 的 IP 及 端口 server

  • 我试图使用Apache创建一个反向代理。我正在使用Apache为一个php应用程序提供服务,并在node中编写了一个使用Express的API。 在我的PHP应用程序中,我使用AJAX调用node来检索JSON。我希望使用端口80进行PHP应用程序中的调用,并使用Apache来表达一个反向代理。