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

nginx服务器阻止docker,前后如何通信

罗诚
2023-03-14

我的应用程序分为后端和前端docker容器,它们运行在数字海洋服务器中。我购买了一个域名,并将从数字海洋提供的路由插入到我的命名堆DNS中。我使用nginx服务器块路由我的前端到服务器,并希望它通信到我的后端docker容器。我目前正在观看法拉第的这个教程。

我的前端容器在localhost:3000上运行,我的后端在localhost:5000上运行;我已经将端口设置为在位置为server\u name/时运行。我的nginx服务器块如何知道它是在将前端还是后端加载到域中,因为它们都应该在位置/运行proxy_pass?

我想在提供的服务器名称上显示前端,但仍然可以访问后端

server{
    server_name newlife.life;
    access_log /var/log/nginx/st-access.log
    error_log /var/log/nginx/st-error.log debug
    
    location / {
        proxy_pass http://localhost:3000;
    }
    location / {
        proxy_pass http://localhost:5000;
    }

}

共有1个答案

詹高畅
2023-03-14

前端可以在不同的子路径上进行后端调用。这些请求将到达nginx,然后nginx可以通过使用http\u rewrite模块重写URL将它们代理到后端。

看https://nginx.org/en/docs/http/ngx_http_rewrite_module.html

例子:

location /backend {
    proxy_pass localhost:5000;
    rewrite  ^/backend/(.*)  /$1 break;
}
 类似资料:
  • 每次启动Farming Valley服务器时,都会出现以下错误: 我基本上没有这方面的经验,我不明白这是怎么回事。如有任何帮助,我们将不胜感激!提前道谢。知道我从OVH那里买了一台服务器可能会很好

  • 问题内容: 我正在尝试将nginx的dockerized版本用作我的节点(ExpressJS)应用程序的代理服务器。没有对nginx进行任何配置并为容器发布端口80,我可以看到默认的nginx登陆页面。所以我知道很多工作。 现在,我可以挂载包含站点配置的启用站点的目录。我的节点应用程序在本地运行(不在任何Docker容器中),并且可以通过端口3000(即)访问它。但是,我假设在运行nginx容器,

  • 我试过用这个问题,但似乎于事无补。除非我做了什么完全错误的事。

  • 我在y服务器上运行了这两个dockers: 哪些端口是 哪些端口是 我想要做的是响应所有对Nginx服务器的请求,从开始到java Docker。因此,我为我的Nginx docker使用了一个配置文件,如下所示: 但是,当我从浏览器向URL中包含的Nginx服务器发送请求(如)时,我得到404个未找到的响应。 我的配置文件有什么问题吗?我基本上使用了错误的解决方案吗?我该怎么做才能解决这个问题?

  • 问题内容: 我显然正在运行一个实例,因为当我尝试通过输入来启动新服务器时,遇到了以下问题: 我不知道如何停止此服务器并启动新服务器。 在CLI中键入命令时,可以追加任何命令吗? 我的操作系统是Ubuntu 10.04。 问题答案: 连接到节点实例并使用shutdown命令,或者如果您在ubuntu上,则可以尝试通过init.d重新启动Redis服务器: 或停止/启动它: 在Mac上

  • 问题内容: 知道如何防止对node.js应用程序进行XSS攻击吗?在那里处理删除href,onclick属性等中的javascript的任何库。从发布的数据? 我不想为所有这些写正则表达式:) 有什么建议? 问题答案: 建议从GoogleCaja借用JS中基于白名单的JS中的HTML清理器,据我快速浏览可知,该实现器不依赖HTML来实现HTML SAX解析器。浏览器的DOM。 更新: 另外,请记住