问题标签 [nginx-reverse-proxy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
31 浏览

nginx - 将我重定向到 :[port]/[whatever I type]

我有一个正在运行的应用程序localhost:8080,我配置了 Nginix 以使其运行localhost/

我还有另一个应用程序正在运行localhost:3000

我想要做的是将我重定向到localhost:3000/[whatever]我最初去的时候localhost/[whatever]

我想做类似的事情:

是否可以配置 Nginx 来执行此行为?如果是这样怎么办?谢谢

PS:运行的应用程序:8080是一个页面,所以:8080/[whatever]现在甚至不存在

0 投票
1 回答
1669 浏览

apache - Nginx 欢迎测试页面而不是主页

服务器配置:Centos 7 + PHP7 + PHP-FPM + MariaDB 10 +Nginx 作为 Apache + Virtualmin 的反向代理

我是设置服务器的新手。我不确定我在哪里搞砸了,我已经尝试根据 Digital Ocean 和许多其他论坛的建议在线搜索和编辑,但仍然没有成功。我总是在进行更改后重新启动 nginx、httpd 和 php-fpm。

我有 2 个虚拟服务器,它们都打开 Nginx 测试页面而不是各自的主页。

我一直在尝试配置,但没有成功。请帮忙。

以下是我的虚拟服务器的配置文件。

1) etc/nginx/conf.d/default.conf

}

2) etc/nginx/conf.d/php-fpm.conf

3)等/nginx/nginx.conf

任何帮助都会非常有帮助。提前致谢。

0 投票
2 回答
1519 浏览

wordpress - nginx 反向代理到 wordpress docker 容器挂起并出现 HTTP 301 错误

我正在尝试使用 nginx 作为运行 wordpress 的多个 docker 容器的反向代理。nginx 实例和 docker 在 Ubuntu 16.04.3 服务器上运行。我一直在我的本地开发环境中使用 Vagrant 对 nginx 使用单独的 Ubuntu 框,对 docker 使用另一个框进行测试。vagrant 配置按预期工作,但是当我尝试在单个物理 Ubuntu 服务器上进行类似配置时,到 wordpress docker 容器的路由挂起并最终返回 HTTP 301 错误。

注意:对侦听不同端口的其他 docker 容器使用类似的 nginx 反向代理配置。例如,在 docker 中运行 Jenkins 并使用该容器的反向代理可以成功。

以下是我在 Vagrant 和物理 Ubuntu 服务器上使用的配置:

Vagrant 和两个独立的 Ubuntu 盒子的工作解决方案

流浪配置

Nginx 在单独的 Ubuntu Box 中运行

设置本地主机文件 /etc/hosts 10.10.45.10 - wp.dev

nginx配置

WordPress 泊坞窗配置

Docker-compose.yml 文件:

运行 docker 容器

码头工人组成 -d

路线

wp.​​dev (10.10.45.10) → docker_wp (10.10.45.11 端口 8080)

卷曲测试: curl wp.dev -- SUCCESS 10.10.45.1 - - [18/Aug/2017:21:38:37 +0000] "GET / HTTP/1.1" 200 51638 "-" "curl/7.54.0"

损坏的配置

/etc/nginx/sites-available/sub1.mydomain.com.conf

wordpress docker 容器的 docker-compose 文件与上面的 vagrant 配置相同。

测试配置和结果

卷曲测试:curl ..com

页面挂起,我在标题中看到 HTTP 301 错误。

卷曲 -v http://

注意:路由继续使用 URL 中的目标端口。我在我的 Vagrant 配置中没有看到这一点。这可能是问题所在。

我尝试了不同的 nginx 配置来隐藏目标端口,但似乎没有任何效果。

以下是一些可能有助于解决此问题的具体问题:

  1. 如何使用 nginx 启用更多调试信息。我正在使用以下“error_log”设置,但想启用“详细”日志记录以确定路由的工作方式。

error_log /var/log/nginx/mydomain_nonssl_error.log 调试;

  1. 为什么当我在同一台机器上运行 nginx 反向代理时,目标端口仍然显示在 URL 中,但是 Vagrant 运行单独的框的类似配置隐藏了端口并在请求中使用原始 URL?

  2. 问题可能出在导致 301 HTTP 错误的 Docker wordpress/Apache 容器中吗?

我已经解决这个问题好几天了,但无法解决这个问题。在此先感谢您的帮助。

**反向代理的Nginx日志文件**

0 投票
1 回答
2971 浏览

nginx - WebSocket 连接到 'ws://..failed:WebSocket 握手期间出错:意外响应代码:502

我正在使用 node,socket.io,nginx 进行基于 http 的简单应用程序的套接字连接。下面是我配置 websockets 的 nginx.conf,我的 socket io 存在于 socket/socket.io 中。奇怪的是,当我在 localhost 和 nginx 中使用端口 80 运行节点应用程序时,相同的配置可以完美运行。不知道为什么它在 linux 中哪个真实 IP 地址失败。

这是chrome中的控制台错误

请提出解决方案。

0 投票
1 回答
653 浏览

node.js - 是否可以通过 NGINX over TLS 中继 WebSocket?

可以这样:

  • 充当 WebSocket 客户端的节点 JS 服务器

  • NGINX 处理 WebSocket 流量

  • JVM 套接字服务器

通过 TLS 工作?

0 投票
2 回答
17314 浏览

node.js - nginx如何获取请求客户端ipaddress

我有 ngnix 代理到 nodejs 服务器。我正在尝试在我的nodejs中读取请求客户端IP地址/主机名,但它总是

但是在我的nginx访问日志中,我可以看到打印的客户端ip地址,不知道为什么我的nodejs服务器无法获取。

0 投票
1 回答
116 浏览

nginx-reverse-proxy - 如何在 nginx 中编辑请求头,然后发送到后端?

现在 nginx 在 ngx_http_request_t 中有一个 headers_in 列表,我的要求是对其中一个标头进行一些更改,例如编码,我需要在源代码中执行此操作,这似乎有点像配置中的 proxy_set_header 命令。直接在 table_elt_t 中设置值似乎很粗鲁,有人知道吗?

0 投票
1 回答
1531 浏览

nginx - 每个浏览器用户会话的 nginx 动态路由

nginx 背后的多个 Web 应用程序。我在 nginx 后面运行了不同的 Web 应用程序。

  1. 主要网站应用程序 --> 这是提供指向不同应用程序的重定向链接的网站。
  2. 不同的应用程序 --> App-1/App-2/App-3
  3. Nginx --> 哪个路由到正确的应用程序。

这是我的下图,我正在使用我的设置来处理多个应用程序。

在此处输入图像描述

如何访问 App-1/App-2/App-3 应用程序

A. 浏览器发送访问主网站的请求,主网站为他们提供 304 重定向和 cookie 值(Device_type=xx 和 IP=45)以​​推迟。

* Device_Type=App-1 或 App-2 --> 要连接的设备。 * IP = 45 ,系统 IP 地址的最后一个八位字节。

因此,只需查看设备类型和 IP 最后八位字节值,就可以重定向到正确的应用程序。

B. 浏览器通过查看设备类型和 IP 最后八位字节值向带有 cookie 和 nginx 的 nginx 发送请求,一个将重定向到正确的应用程序。所有进一步的请求都会根据 nginx 的 cookie 值和规则转到正确的应用程序。

如果每个 APP 只能从一个浏览器访问应用程序(App-1/App-2/App-3),这绝对可以正常工作。

问题:- 不能从同一个浏览器访问两个应用程序。即,如果两个应用程序从同一个浏览器运行,即使不同的选项卡它们会共享 cookie。

现在,如果他们共享 cookie,那么 nginx 大多数时候会重定向到不正确的 APP。

我知道这不是最好的方法,但它是按照以前的方式完成的。

实现:-我想根据每个用户浏览器会话在 nginx 上进行动态路由。这样每次用户请求任何东西时,我都会路由它正确的 APP

我一直在研究 nginx 中的很多内容,但是 nginx 没有任何内容,它持有浏览器会话,以便所有后续请求都发送到同一个 APP 服务器。也在研究ceryx-dynamic-nginx。

  • 如果您认为 Cookie 不是好主意,那么我愿意接受改变它的想法。
0 投票
1 回答
1636 浏览

nginx - 如何将 nginx 配置为站点的反向代理,它位于 squid 代理后面

我需要配置 nginx,它充当我的站点 (myportal.com) 的反向代理。nginx 可以通过 squid 代理连接到实际站点。

客户端 -> nginx -> Squid 代理 -> 网络服务器。

笔记:

一个。客户端假定 nginx 作为 web 服务器(myportal.com)。

湾。nginx 通过 squid 代理从实际服务器 (myportal.com) 获取内容。

谢谢塔伦。当目标 Web 服务器可直接访问时,我们已成功将 nginx 配置为反向代理。但是在连接到网络的同时,在 squid 后面提供服务。我们正面临问题。由于客户端必须连接到 nginx,假设它是目标服务器(因此没有发送代理标头)。——</p>

我们也尝试了以下方法。

0 投票
0 回答
1536 浏览

nginx - 是否可以使用 nginx 在不同的域请求中添加 cookie?

所以这是我的背景:

我在端口 4203 上有一个前端本地应用程序。端口 3000 上的 nginx 服务器会将“/”处的所有请求指向localhost:4203 所有对localhost:3000/api的请求都将代理到https://example.com/api还在我的浏览器上设置一个cookie。获取 cookie 后,对/api/resource等相对路径的每个请求都可以使用标头中包含的 cookie 正常工作。问题是我的前端应用程序上有一些绝对链接,我不想解析它们。因此,我将向https://example.com/api/anotherResource提出请求,由于某种原因我无法在其上应用 cookie,因此它们失败了。

甚至可以在这个绝对路径请求上添加 cookie 吗?

或者也许是一种在 https:/example.com/api/anotherResource 代理请求以首先获取 localhost 上的 cookie 的方法。

这是我的 nginx 配置: