问题标签 [nginx-location]

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 回答
1435 浏览

nginx - 如何重写路径、转发参数和添加参数?

这个 SO disucssion说,在使用return代码重写 url 时转发参数应该类似于这个

到目前为止,一切都很好。但是如何在查询字符串中添加任意新参数呢?例如id=1.

解决方案必须至少涵盖以下三种情况:

  1. 原始请求没有查询参数
  2. 原始请求有查询参数,但没有添加的参数
  3. 原始请求已经添加了查询参数
0 投票
2 回答
4846 浏览

nginx - nginx 服务器为不同的子文件夹使用多个 fastcgi 后端

StackOverflow 上有多个问题如何使用具有不同 fastcgi 后端的子文件夹或类似但没有任何工作正常的问题 - 经过数小时的尝试和阅读文档(可能缺少一个小细节)我放弃了。

我有以下要求:

  • /php 5.6 应用程序上运行(fastcgi 后端127.0.0.1:9000
  • /crmphp 7.0 应用程序上运行,它必须相信它正在运行/(fastcgi 后端127.0.0.1:9001
  • 事实上,后端很少,但是有了这两个,我可以自己制作它们

在尝试删除/crm前缀之前,我尝试先为位置前缀定义单独的 php 上下文。但似乎我做错了什么,因为/crm每次都使用 .php 的 php 上下文/

我实际的精简配置,删除了所有不相关的内容和所有失败的测试:

0 投票
1 回答
1437 浏览

apache - Nginx 虚拟主机文件中的白名单 IP 国家阻止

在 Nginx 中,我正在检查 IP 是否来自被封锁的国家。如果是,那么访问者会收到 403。我需要添加列入白名单的 IP 以允许他们进入,即使他们是被封锁国家的一部分。

我更愿意将 nginx.conf 位置的 IP 列入白名单,这样我就不需要更新 30 多个虚拟主机文件。我怎样才能做到这一点?

在 /etc/nginx/sites-enabled 中的每个 nginx 虚拟主机文件中

国家/地区列表在 /etc/nginx/nginx.conf 中创建

0 投票
1 回答
1680 浏览

nginx - Nginx 不在特定目录中执行 php

这是我的 nginx 配置文件

问题是在api目录下没有执行php文件。当我连接到http://localhost:90/api/v2/init时,我得到了我的 main.php 文件的源代码,该文件由重写规则调用

位置 ~* /api {

}

我在主根目录下创建了 test.php 文件,它可以工作,所以该重写规则肯定有问题。通常我希望像 /api/v2/entry/23224 这样的每个 api 调用都被传递给 /api/v2/main.php 文件。

0 投票
0 回答
508 浏览

windows - 为什么不能覆盖 Nginx 位置根目录(Windows)?

我想将视频流与 nginx 一起用于 windows 服务器。我有这个 nginx 配置:

此配置中最重要的是:

我发送请求http://host:port/!/scorms.ecp/27/TESTC/1/1/images/pravilo2.mp4。在 error.log 我有:

我不明白为什么 nginx 会尝试查找“D:\PAPISDK_4_T\nginx-1.10.0/html/TESTC/pravilo11.mp4”而不是“D:\video/TESTC/pravilo11.mp4”。我尝试使用“root D:\video;” 并收到同样的错误。我也尝试使用“别名”而不是“根”,但我收到了下一个错误:

如何调整 Windows 的 nginx 配置以通过以下路径“D:\video/TESTC/pravilo11.mp4”而不是“D:\PAPISDK_4_T\nginx-1.10.0/html/TESTC/pravilo11.mp4”查找视频文件?

0 投票
1 回答
3702 浏览

nginx - Nginx - 特定位置的另一个根

我在下面有一些静态 html 文件:

这个项目的 Nginx 配置是:

我的目标是使用 nginx,以便当用户输入此网址时:

Nginx 使用另一个根,我试过:

但这不起作用。关于如何实现这一目标的任何想法?

0 投票
1 回答
953 浏览

nginx - nginx proxy_pass 路由到错误的后端位置

我在跑步

我想要实现的是;

  1. 请求来自http://my.frontend.com/goto/mytoken
  2. 我希望它由http://my.backend.com:5202/goto/mytoken处理
  3. 限制是只有 /goto/ 流量被转发到后端,没有 /goto/ 在前端 url 中,它应该是 404 返回即甚至http://my.frontend.com

goto是静态的,每个请求的mytoken都不同(后端已知)。

我对这种情况的服务器定义是;

但问题是;虽然根据 access.log 我的 URI /goto/mytoken 似乎构造正常,但后端返回 404

xxxx - - [27/May/2016:13:01:56 +0000] "GET /goto/7328372837182382938 HTTP/1.1" 404 69 " http://mywebsite.com/index.html " "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, 像 Gecko) Chrome/50.0.2661.102 Safari/537.36"

如果我在以下位置没有/goto/,则相同的场景效果很好。

真的很感激这里的提示。

0 投票
0 回答
1310 浏览

ssl - Nginx 在位置使用占位符(nginx.conf)

我想使用 nginx 作为反向 ssl 代理。

我有一个带有多个 api 的重置服务,我想在位置配置中有一个占位符并在 proxy_pass 中使用它

知道我该怎么做吗?

0 投票
2 回答
4419 浏览

reverse-proxy - 使用 nginx 正则表达式位置匹配将 URI 动态映射到多个反向代理的不同端口

我正在使用 nginx 为可能位于防火墙后面的 Web 应用程序创建反向代理。对于我最初的概念证明,我使用了以下位置块来确保它有效。

我在我的网络应用程序上使用ssh -f -N -T -R2222:localhost:443 user@nginx-ip. 这完全符合我的喜好。我在我nginx-ip的浏览器中输入我的内容,我从我的网络应用程序中获得了 https 流量,但被nginx-ip等混淆了。

我希望通过几千个端口(而不是在上述情况下只有 2222)允许潜在的几千个反向隧道。阅读 nginx,我想使用正则表达式来动态使用包含端口号的 URI 来 proxy_pass 到该特定端口。

也就是说,我愿意并且https://nginx-ip/2222/proxy_pass https://localhost:2222;愿意https://nginx-ip/1111/proxy_pass https://localhost:1111;

我已经尝试了很多变体,但据我所知,我认为这应该可行:

它没有。我在浏览器中收到 502 Bad Gateway,错误日志显示:

2016/05/31 21:02:36 [错误] 6188#0: *3584 没有定义解析器来解析本地主机,客户端:{my-client-ip},服务器:本地主机,请求:“GET /2222/HTTP/1.1 ", 主机: "{nginx-ip}"

当我使用127.0.0.1而不是localhost我得到一个 404. 网页说

未找到 在此服务器上未找到请求的 URL /2222/。

我正在尝试使用 nginx 配置吗?

重申一下,我希望能够通过 nginx Web 服务器启动许多(数千个)独特的反向隧道。我最初的想法是根据我想要代理的其他 Web 应用程序来改变 nginx 服务器的传出端口,并通过 URI 中的端口将对我的 nginx 服务器的请求分配给不同的端口(通过正则表达式提取) .

0 投票
1 回答
151 浏览

php - Nginx 动态请求

我在 有一个页面example.com/fruit.php。该页面用于ISSET()解析参数以决定向用户显示什么。例如,example.com/fruit.php?name=apple&color=red. 这很容易做到,但我宁愿请求像这样进入页面:

因为我知道只有两个参数,所以我可以轻松地解析 url 来构建我的页面。但是,我如何配置 nginx,以便example.com/fruit将 url 后面的任何请求发送到fruit.php,以便页面本身可以解析 url。这是我在我的位置块中尝试过的:

这对我不起作用,我花了大约一天的时间试图弄清楚。任何帮助,将不胜感激。