Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何将Nginx配置为反向代理来执行此网络模式?_Node.js_Wordpress_Docker_Nginx_Nginx Reverse Proxy - Fatal编程技术网

Node.js 如何将Nginx配置为反向代理来执行此网络模式?

Node.js 如何将Nginx配置为反向代理来执行此网络模式?,node.js,wordpress,docker,nginx,nginx-reverse-proxy,Node.js,Wordpress,Docker,Nginx,Nginx Reverse Proxy,我有两个Docker实例在同一台机器上分别运行Wordpress和我的Nodejs应用程序 现在我想将Nginx设置为仅在我的域(mydomain.com)上接受连接。因此,如果用户访问mydomain.com/他们应该被重定向到wordpress容器,如果他们访问mydomain.com/customer,请求应该被重定向到Nodejs应用程序容器 这个模式解释了这个想法: 我不太擅长Nginx,编辑配置对我来说太难了。文件以匹配该架构。我也没有找到任何实现这种配置的示例或文档。这么奇怪吗?

我有两个Docker实例在同一台机器上分别运行Wordpress和我的Nodejs应用程序

现在我想将Nginx设置为仅在我的域(mydomain.com)上接受连接。因此,如果用户访问mydomain.com/他们应该被重定向到wordpress容器,如果他们访问mydomain.com/customer,请求应该被重定向到Nodejs应用程序容器

这个模式解释了这个想法:


我不太擅长Nginx,编辑配置对我来说太难了。文件以匹配该架构。我也没有找到任何实现这种配置的示例或文档。这么奇怪吗?

这是非常常见的nginx使用示例。您需要的最基本的设置是

服务器{
听80;
服务器名称mydomain.com;
代理_集头主机$Host;
代理集头X-Real-IP$remote\u addr;
proxy\u set\u header X-Forwarded-For$proxy\u add\u X\u Forwarded\u For;
地点/{
代理传递http://;
}
地点/客户{
代理传递http://;
}
}
服务器{
#这将是所有请求的默认服务器
#其中HTTP主机标头缺失或不等于“mydomain.com”
监听80个默认_服务器;
#立即关闭连接
返回444;
}

谢谢!有没有办法不用硬编码docker容器的IP就可以做到这一点?如果您的nginx正在另一个docker容器中运行,并且所有这些都由docker compose管理,那么您可以(应该)使用容器名称。如果nginx在主机上运行,您可以在nginx启动时使用解析为所需docker地址的任何域名。还值得一提的是,如果您需要在NodeJS应用程序中使用WebSockets协议,与NodeJS相关的位置将更加复杂。这就是一个例子。