问题标签 [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 投票
0 回答
400 浏览

nginx - nginx配置index.html不同路径

我对 nginx 配置发疯了。

我有这个目录树站点

同样在我的 index.html 中,我有类似的路径

所以,如果我是对的,我的根目录应该是转译目录。

为我的站点提供服务的有效 nginx 配置是什么?

添加了conf示例

我不知道 nginx,但我读过一些关于 try_files 的内容。try_files 指令应该将文件 $uri 搜索到 transpiled/$uri。所以如果我有app/app.js尝试文件应该在transpiled/app/app.js中搜索文件

这行不通

0 投票
2 回答
1188 浏览

ruby-on-rails - Rails + Passenger + Nginx 错误 Request Origin (domainname.com) 与 Request Base_url (IP Address) 不匹配

设置:Rails 5.1.3,带有Passenger 和Nginx 的Dreamhost VPS。由于它是 VPS,我没有 root 访问权限来执行任何需要 root 权限的功能。

情况:目前,我用 ActionCable 功能重做了一个以前的 rails 应用程序。早期的配置是使用 Apache 而不是 Nginx 用于 http 服务器。除了websockets,一切都很好,我读了很多文章,都确认action cable + apache不起作用。

那时,我切换到 NginX。使用 NginX,我的第一个观察是应用程序不断尝试“get cable/”过程并且无法升级到 websocket。在阅读了各种讨论后,我设法解决了这个问题:

由于我没有 root 权限来访问通常的 dt/etc/nginx/.../***.conf 文件,使用 dreamhost VPS 包,我可以在 /home/username/nginx/(appname.conf) 中添加一个文件。 com)/(any-file-name.conf) ,这将添加到 nginx“服务器块”,根据 dreamhost 文档。

^^因此,仅在该目录中名为“redis.conf”的文件中的上述代码块就对动作电缆问题进行了排序。它成功地开始在频道上流式传输一切都很好。

我后来意识到,主要问题是我无法执行任何创建、更新、销毁操作 - 任何需要 POST 或 DELETE 方法的操作,因为它会导致真实性令牌错误,说“请求来源(http://siik .io -这是应用程序和域名)与 request.base_url (http://127.0.0.1) 不匹配。

详细错误:

但是,当我通过 http://siik.io:8000 访问该站点时,一切正常,即使是 websockets 位也不需要 redis.conf 文件。

我经历了一周的各种修复和文档,但未能找到解决方案。我认为基本要求是将更多标头添加到 location / {} 块以添加到 nginx.conf 文件中...(我在下面列出了一些我尝试过的示例。)

..所以我基本上是在尝试上述值的各种组合和排列,以查看什么有效,因为很明显,我不知道这是如何工作的——我对反向代理和 http 服务器有一些概念性的知识。

是的,我知道 request.origin == request.base_url 来自于 rails 的protect_from_forgery 位,我不认为将其关闭是一个解决方案,尽管我确实在某处读过包含正确的标题将解决这个问题。我已经尝试了这个标头集的一些变体,但都没有奏效,我想知道是否包含正确的标头应该达到 http 源标头将从 domainname.io 更改为 IP 地址或 request.base_url 将从域名的IP地址??

哦,是的,当我在 redis.conf 旁边的新文件 proxy.conf 中添加 location / {} 块时,它完全中断了。通过 domainname.io 的网站拒绝连接,而 domainname.io:8000 完美运行。即使是 location / 下的空块也会破坏它 - 我正在测试是否有任何特定的 proxy_set 命令导致它破坏 - 但没有。只是“位置/{}”位打破了它 - 也许这是预期的?

为什么当我通过 siik.io:8000 使用明确的端口号访问它时,它可以完美地工作?

非常感谢任何帮助!!!!

0 投票
3 回答
15681 浏览

nginx - Nginx反向代理:将所有http请求重定向到https

我有一个反向代理,Nginx 在端口 5000 上运行,我想将所有进入端口 5000 的请求作为 https 请求重定向。

现在我收到错误:400 Bad Request The plain HTTP request was sent to HTTPS port

好吧,我尝试添加

似乎没有什么能解决问题。我应该怎么做才能解决这个问题?

0 投票
2 回答
3728 浏览

nginx - 允许使用 NGINX 从一个域访问

我正在寻找一种解决方案来防止与 NGINX for JWPlayer 进行热链接。假设我有一个配置为反向代理的 NGINX 服务器http://mydomain1.com,我将获取 urlhttp://mydomain1.com/file.mp4放在托管在另一个 VPS 上的我的网站上http://mydomain2.com。如何限制文件,使其http://mydomain2.com只能在其他地方播放,而不能在其他地方播放?

我尝试allow & deny了指令,但后来我意识到这是一个 HTML5 流,因此指令将阻止流向用户。

0 投票
1 回答
13601 浏览

rest - 如何为 RESTful API 配置 nginx?

我有一个 RESTful Web 服务,它公开了一个接口,例如:

  • GET /api/v1/films/:id/thumb
  • PUT /api/v1/films/:id/thumb
  • ...

Web 服务器由 nginx 反向代理后面的 nodejs 集群组成。

我现在正在尝试配置 nginx 代理和客户端缓冲区。为此,我设置了指令

此配置完成了这项工作,但并不令人满意,因为它配置proxy_buffers 3mPUT不必要且浪费资源的请求,并且client_max_body_size 3mGET.

因此,我正在寻找一种基于 URI 之外的 http 方法配置路由的方法。

感谢所有愿意分享一点经验的人。

0 投票
1 回答
4316 浏览

nginx - 如何编写用于替换查询字符串中的查询参数的 nginx 重写规则

伙计们!

我们有以下http请求:

http://185.xxx.x.xx/auth/realms/master-realm/protocol/openid-connect/auth?response_type=code&client_id=regportal&redirect_uri=http%3A%2F%2Fsome.domain.com%2Fregportal%2Fsso% 2Flogin&state=a49a02d5-f873-453f-9148-61793f11ecf3&login=true&scope=openid

我们想redirect_uri从“some.domain.com”替换为“other.domain.com”。

怎么做?

谢谢

0 投票
1 回答
1262 浏览

node.js - 日志未通过 Nginx 反向代理(Nginx 配置问题?)

我们有 Node.js 应用程序将日志发送到指向我的 Nginx 反向代理服务器的 URL。

我在 docker 容器中设置了 nginx 反向代理服务器,然后有一组用于 Fluentd、ElasticSearch 和 Kibana 的容器,用于接收、收集和显示这些日志。运行这些容器(包括 nginx 反向代理)的服务器上保持打开的唯一端口是 8080(http)和 443(https)。

正如我已经测试并确认的那样,日志是从应用程序正确生成的。此外,如果我在 docker 容器中没有 nginx 反向代理的情况下进行整个设置,那么一切运行正常。

相同的 nginx 反向代理也被用于代理其他服务器,它们都运行良好。

唯一的问题似乎是 nginx 反向代理设置无法接收 JSON 格式的 Node.js 应用程序日志。但是 Http 和 https 请求正在通过。

我正在使用 LetsEncrypt 自动生成 SSL 证书并相应地自动生成此 nginx 配置。

我在此处附加了我的 nginx 配置文件:

0 投票
0 回答
2776 浏览

nginx - 如何配置 NGINX 在 https 中分发 PWA

我正在尝试将已经可以运行的 APP 重定向到 https。

该应用程序是在 8080 端口上本地运行的 PWA。

我知道这是我的配置中的内容,因为根可以正常工作,但子应用程序不能。

根目录只是一个包含子应用程序路由的 html。

这是我试图重定向的应用程序:https ://github.com/PolymerLabs/multitenant-prpl

这是我的配置文件,我通过四处搜索并将其混合到主 nginx 配置文件中。

可能缺少什么。

提前致谢。

图片:

根工作。

在此处输入图像描述

502

打开开发工具的另一条路线,错误有点长。

获取 502

0 投票
1 回答
427 浏览

caching - Nginx自动删除设置为有效期更长的缓存?

我设置了一个 Nginx 反向代理服务器,提供托管在另一台服务器上的 mp4 文件。现在一切正常,除了缓存。虽然我proxy_cache_valid设置为 1 天(proxy_cache_valid any 1d),但缓存会在很短的时间(我认为是 5-10 分钟)后自动删除。我的文件大小范围为 200 - 1500MB(平均 700MB)。

我无法弄清楚配置有什么问题。任何事情都可能有所帮助。

以下是配置

0 投票
1 回答
1615 浏览

ssl - 通过 Cloudflare 到 Jetty 应用服务器的 Nginx 反向代理

我有一个使用 Cloudflare 保护和代理该网站的网站。

我在我的原始 nginx 网络服务器上使用 Cloudflare SSL 证书,以便所有请求都通过 HTTPS 处理,这可以根据需要工作。

我已经设置了一个 Node.js 服务器和一个基于 Jetty 的应用程序服务器,在托管我的 Nginx 网络服务器的同一物理服务器上运行 Xwiki。

我通过我的 nginx.conf 文件设置了 nginx 反向代理,以便 nginx 在请求相应的 URL 时指向相应的“应用程序”服务器,例如

这个反向代理到我的 node.js 服务器在本地主机上的端口 3001 上运行,使用我的 nginx.conf 文件中的以下位置设置...

这可以根据需要工作,并且 node.js 页面通过我的站点公共 URL 和 CloudFlares 服务通过 HTTPS 提供。

当我尝试对在端口 8080 上 localhost 上的 Jetty (Java) 应用程序服务器上运行的 Xwiki 站点执行相同操作时,例如

我收到以下错误:

我不明白为什么会发生这种情况,因为我希望节点反向代理请求也会发生同样的事情。

我能想到的唯一区别是 Xwiki 与 nginx 和节点服务在同一主机上的 Jetty 应用程序服务器中运行,这意味着 nginx 和 Jetty 不能/不能以与 nginx 和节点相同的方式握手当涉及到反向代理...

如果我将我的站点真实 IP 地址和 Xwiki 端口号放在我的 nginx.conf 文件的代理重定向部分,例如

这与 Xwiki 默认页面加载一样多,但 URL 更改为我服务器的真实外部 IP,并且不使用 SSL。我知道这是因为 Jetty 服务器通过端口 8080 并完全通过 nginx 为页面提供服务。

所以我的实际问题是,如何使用 Nginx 反向代理将基于 Jetty 的 Xwiki 服务加载到我的 Cloudflare 代理网站中的某个位置,或者你能帮助我了解我哪里出了问题......

我怀疑我需要在 Jetty 服务器上安装安装在我的 nginx 服务器上的 SSL 证书,以便 nginx 将 Jetty 服务器视为本地资源 - 但我对此非常不确定......