问题标签 [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.
node.js - Nginx + nodejs 应用位置
这是一个非常简短的问题,但我不知所措。我需要在 domain.com/nodeapp/ 下运行 nodejs 应用程序。
问题是 - 如果我这样写域名,它就可以正常工作:domain.name/nodeapp/
所以当我要去时domain.name/nodeapp
- 加载损坏的版本。
我需要 nginx 正确重定向到位置/nodeapp/
现在我正在使用下一个配置:
我怎样才能做到正确?谢谢!
nginx - nginx - 如何识别来自特定用户的相同请求
是否可以让 Nginx 配置计算来自特定用户的相同请求并根据处理的请求数量进行相应的行为?
例如,用户向同一个 URL 发出三个请求: http ://example.com/file
在这个特定用户的第一次请求中,我们重定向到: http ://example.com/file/one
在来自该用户的第二次请求重定向到: http ://example.com/file/two
然后 Nginx 以某种方式理解这是来自它重定向到的 SAME 用户 对http://example.com/file的第三个请求: http ://example.com/file/three
那么,有可能吗?
magento - Nginx 定位块和性能
我不是 Nginx 专家,所以我阅读了几篇文章和官方指南以使自己跟上进度。但是,我没有发现任何与位置与重写块性能有关的东西。
我的情况如下:现有网站将其英文 URL 更改为中文,我必须防止多个 URL 的流量丢失。
我想出了两个工作配置,虽然这仅限于几个 URL,而且我无法在任何生产或预生产环境上进行测试以验证有效性。
解决方案 A)
Use n+1 rewrite blocks followed by a permanent flag straight in the server block;
解决方案 B)
Use n+1 exact location blocks with a nested rewrite and permanent flag followed by a break;
两种解决方案都有一条全部规则,重定向到 index.php 文件以允许 Magento 处理请求并产生输出。
我的理解是,解决方案 B 可能更有效,这要归功于 break 指令,该指令将阻止执行额外的重写规则,将重写模块直接转发到位置块。因为我只有其中一个 - 包罗万象 - 这里几乎没有选择。
鉴于上述情况,假设解决方案 B 更正确是否正确?
nginx - Nginx:WebSocket 通配符位置
我在 Go 服务前使用 nginx 实例。
- 我想将端口 80 上的任何内容重定向到 https。[完毕]
- /* 处的所有(非 websocket)https 请求都应该转到https://localhost:8443/ * [完成]
- /ws/* 处的所有 websocket https 请求都应该转到https://localhost:8443/ws/ * [缺失]
我目前的配置:
为什么这是必要的?好吧,据我了解,您必须明确设置升级标头,所以我想您必须指定另一个位置。
理想情况下,我只使用一个位置,但是 websockets 被阻止(因为升级标头永远不会进入 Go 服务......)
我不是 nginx 专家,所以请耐心等待 =)。
[编辑]
我现在开始工作了。我不确定是否可以始终设置_header 升级/连接,即使它不是 websocket 请求,但我的 Go 服务没有给出 ****,所以它对我有用 =]
php - 清理 nginx 上的 URL 和 php 扩展
我在网上查看了许多其他问题和参考资料——根据我的所有计算,我的设置应该有效,但它没有。
我用 php-fpm 安装了 nginx。如果我尝试访问 .php 文件,它会正确运行并且我会得到正确的结果。我在我的配置文件中得到了这个:
现在,我想设置我的网络应用程序,以便/somedir/file
自动执行/somdir/file.php
,同时仍显示/somdir/file
在浏览器的地址栏中。所以我修改了我的配置以包含以下内容:
这种工作,即服务器确实访问 .php 文件。然而,它并没有使用上面的现有块执行它location ~ \.php$
,而是简单地将 php 源代码作为下载内容发送到浏览器中。如果我手动将 .php 附加到请求的 URL,则执行 php。
感觉好像一旦服务器匹配try_files
到$uri.php
,它就不会在位置进行另一次传递以查看它需要对 php 文件做什么。我尝试将 php 块放在 的上方和下方location /
,但这没有区别。
如何让 php 被执行?
git - nginx git 文件夹请求
我使用 nginx 和 git-web,效果很好。我使用 www.mydomain.org 访问我的网站以启动 gitweb。这是我的配置文件:
我想做的是有一个 git 子文件夹而不是 ex: www.mydomain.org/git 来拉起 gitweb 主页。我不太确定如何更改它并且有点卡住了。关于如何做到这一点的任何建议或提示?
谢谢
更新
我通过修改以下内容弄清楚了:
至
linux - Nginx 上游作为 url
我正在尝试使用 ur 作为 proxy_pass 的域,如下所示:
现在 nginx 正在发送域 IP 的请求,并且无法通过 IP 访问它,因此所有请求都失败了。
如何强制 nginx 将请求发送到域本身而不是 IP?
Nginx 访问日志:
谢谢
authentication - Jenkins/Nginx - 双重提示基本身份验证,为什么?为什么有内部 Jenkins 身份验证?
下面是我的 Jenkins 的 nginx 配置文件。其中大部分与我在文档中阅读的完全一致。
配置文件:
}
导航到http://sub.mydomain.net/jenkins时,我收到提示我的基本身份验证服务器说:[....] 请确认识别...。
这是正确的,但是一旦我输入了正确的凭据,我就会再次得到PROMPTED AGAIN进行基本身份验证,但这一次:Server says: Jenkins。
这第二个隐藏的 basic_auth 是从哪里来的?!这对我来说没有任何意义。
在第一个提示上点击CANCEL,然后我正确地收到401 authentication required错误。
在第二个基本身份验证上点击取消( “服务器说:詹金斯”)我得到:
有谁知道可能发生了什么?
nginx - Nginx 无法在 Windows 10 上创建目录并出现错误:nginx: CreateFile()...failed
我需要找到一种方法/设置来允许 Nginx 运行一个 .bat 文件,该文件将通过 WINDOWS 服务创建目录和文件;我的操作系统是Windows 10。目前,我们的 Windows 服务无法使用以下内容创建目录和文件:
CreateFile() "C:\someForlderName\build\distribution.\nginx/logs/error.log" 失败(3:系统找不到指定的路径)
不知何故,Nginx 没有足够的权限来执行写访问操作,例如在 /Nginx/ 目录中创建 /logs/ 和 /temp/ 等目录。
以前有人遇到过这个问题吗?
caching - 如何在 NGINX 中缓存一个特定的反向代理路由?
我使用 nginx 作为反向代理,这是我的配置中的一个片段,它将/api
调用中的任何内容路由到内部 API 服务器:
但现在我想允许一个规则缓存一个特定的反向代理路由(比如/api/foo/bar
TTL = 30 分钟),我尝试了这个:
但是,这是行不通的。做这个的最好方式是什么?
编辑:
完整的服务器配置: