问题标签 [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.
nginx - 如何重写路径、转发参数和添加参数?
这个 SO disucssion说,在使用return
代码重写 url 时转发参数应该类似于这个
到目前为止,一切都很好。但是如何在查询字符串中添加任意新参数呢?例如id=1
.
解决方案必须至少涵盖以下三种情况:
- 原始请求没有查询参数
- 原始请求有查询参数,但没有添加的参数
- 原始请求已经添加了查询参数
nginx - nginx 服务器为不同的子文件夹使用多个 fastcgi 后端
StackOverflow 上有多个问题如何使用具有不同 fastcgi 后端的子文件夹或类似但没有任何工作正常的问题 - 经过数小时的尝试和阅读文档(可能缺少一个小细节)我放弃了。
我有以下要求:
- 在
/
php 5.6 应用程序上运行(fastcgi 后端127.0.0.1:9000
) - 在
/crm
php 7.0 应用程序上运行,它必须相信它正在运行/
(fastcgi 后端127.0.0.1:9001
) - 事实上,后端很少,但是有了这两个,我可以自己制作它们
在尝试删除/crm
前缀之前,我尝试先为位置前缀定义单独的 php 上下文。但似乎我做错了什么,因为/crm
每次都使用 .php 的 php 上下文/
。
我实际的精简配置,删除了所有不相关的内容和所有失败的测试:
apache - Nginx 虚拟主机文件中的白名单 IP 国家阻止
在 Nginx 中,我正在检查 IP 是否来自被封锁的国家。如果是,那么访问者会收到 403。我需要添加列入白名单的 IP 以允许他们进入,即使他们是被封锁国家的一部分。
我更愿意将 nginx.conf 位置的 IP 列入白名单,这样我就不需要更新 30 多个虚拟主机文件。我怎样才能做到这一点?
在 /etc/nginx/sites-enabled 中的每个 nginx 虚拟主机文件中
国家/地区列表在 /etc/nginx/nginx.conf 中创建
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 文件。
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”查找视频文件?
nginx - Nginx - 特定位置的另一个根
我在下面有一些静态 html 文件:
这个项目的 Nginx 配置是:
我的目标是使用 nginx,以便当用户输入此网址时:
Nginx 使用另一个根,我试过:
但这不起作用。关于如何实现这一目标的任何想法?
nginx - nginx proxy_pass 路由到错误的后端位置
我在跑步
我想要实现的是;
- 请求来自http://my.frontend.com/goto/mytoken
- 我希望它由http://my.backend.com:5202/goto/mytoken处理
- 限制是只有 /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/,则相同的场景效果很好。
真的很感激这里的提示。
ssl - Nginx 在位置使用占位符(nginx.conf)
我想使用 nginx 作为反向 ssl 代理。
我有一个带有多个 api 的重置服务,我想在位置配置中有一个占位符并在 proxy_pass 中使用它
知道我该怎么做吗?
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 服务器的请求分配给不同的端口(通过正则表达式提取) .
php - Nginx 动态请求
我在 有一个页面example.com/fruit.php
。该页面用于ISSET()
解析参数以决定向用户显示什么。例如,example.com/fruit.php?name=apple&color=red
. 这很容易做到,但我宁愿请求像这样进入页面:
因为我知道只有两个参数,所以我可以轻松地解析 url 来构建我的页面。但是,我如何配置 nginx,以便example.com/fruit
将 url 后面的任何请求发送到fruit.php,以便页面本身可以解析 url。这是我在我的位置块中尝试过的:
这对我不起作用,我花了大约一天的时间试图弄清楚。任何帮助,将不胜感激。