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

php - NGINX + PHP5-FPM 重定向不起作用(index.php/install/)

我一直在为此绞尽脑汁——所以我已经启动并运行了 NGINX,它phpinfo()没有任何问题,但我正在尝试安装一个尝试调用 url 的监视脚本:

http://example.com/index.php/install/

但是我最终找不到 404,因为 nginx 似乎没有尝试运行它,因为index.php/install/这似乎是脚本编码器的预期操作。

我的 nginx conf 段有问题(我几乎肯定这是问题所在):

任何人都可以帮助解决这个非常非常令人沮丧的问题吗?在此之前,它踢出500 SERVER ERROR's,现在我在尝试加载此安装脚本时将其降至404 not found 。我更精通 Apache.htaccess文件,考虑到作者一定是有意的,我可能应该走那条路——无论如何,提前欢呼!

0 投票
1 回答
207 浏览

mod-rewrite - NGINX 重写条件问题

我的 nginx 服务器上有一个位置,例如 /folder/。在该文件夹中有 .jpg 文件和 .php 脚本。

我想要达到的目标如下:

当用户访问如下网址时:http: //mywebsite.com/folder/10-11 nginx 将搜索 10-11 文件、10-11.png 文件、10-11.jpg 文件并显示它(如果文件在服务器上)。这部分工作得很好。

现在,当用户访问相同的 url 时,如果文件不存在,我希望将用户重定向到该 php 脚本。

Bellow 是 nginx 配置的一部分。该文件夹中的所有图像文件都类似于 10-10、21-19、90-20 等(2 位数 - 2 位数)。

其他 nginx 部分应如下所示:

想法是将这条规则结合在一起。我怎样才能做一个 if else 语句或类似的东西?我尝试了几种组合,阅读了很多论坛帖子甚至是这里的答案,但我无法让它发挥作用。

如果您有任何问题,请告诉我!

0 投票
1 回答
307 浏览

nginx - 使 nginx 重定向 /?p=123 样式链接的安全/高性能方法

我正在尝试将 nginx 301 重定向 wordpress 样式foo.com/?p=123样式链接到固定 URL。

If is evil和其他文档中,我收集到危险if的语句是基于参数重定向的唯一方法,我发现这样的配置似乎可以完成工作:

但是,我猜想通过这种配置,nginx 将不得不通过所有这些if语句来解决顶级foo.com/请求,这可能并不理想。

对这样的大量重定向进行硬编码,同时最大限度地减少语句的危险/成本的“正确”方法是if什么?

0 投票
1 回答
263 浏览

nginx - nginx:将 vimbadmin 安装到子文件夹中

我试图将 vimbadmin 安装到子文件夹中,但我不能。无论我使用什么配置,vimbadmin 都无法正常工作。这是我最后的配置

但 nginx 返回我错误:403 -

*14 FastCGI 在 stderr 中发送:“Primary script unknown”,同时从上游读取响应头,客户端:90.154.205.85,服务器:mail.devx.biz,请求:“GET /vimbadmin/ HTTP/1.1”,上游:“fastcgi: //unix:/var/run/php5-fpm.sock:",主机:"mail.example.com"

我无法想象这有多难。是原始的 nginx confiration whick 在域/子域上完美工作。

您能帮我提供一些建议或示例配置吗?

0 投票
1 回答
2732 浏览

nginx - nginx 使用 proxy_pass 重定向

我有一个工作代理服务器配置,用于在我的本地机器上运行的 nginx。它在 docker 中运行,为我的 ghost 博客的本地实例提供服务的 node.js 实例也是如此。

因为我刚刚从旧博客引擎迁移,所以我的 url 现在不同了,所以我想配置 nginx 以将 301(永久)重定向返回到新的 url 方案。我已经尝试过使用这两种方法rewriteproxy_redirect并且在这两种情况下我都会收到 401 错误。这是我的 default.conf

如果我取消注释 rewrite 或 proxy_redirect 指令,则没有任何反应 - 请求被转发到 node.js,我得到 404。

如果我使用这样的多个位置指令:

我从 nginx 得到一个 404 并且请求永远不会到达 node.js。

0 投票
1 回答
650 浏览

nginx - 您可以在搜索 nginx 位置之前从后端服务器检索和存储文件吗?

问题

我正在使用 Nginx Plus 中的 HLS 模块来流式传输 .mp4 文件,使用以下配置:

当 .mp4 文件存在于/var/www/vod/cache. 当客户端请求时http://example.com/hls/file.mp4.m3u8,HLS 模块会即时生成 m3u8 播放列表并将其返回。

但是,我宁愿不将所有 mp4 文件存储在流服务器上,而是将文件存储在后端存储服务器上。理想情况下,mp4 文件只会在客户端请求特定视频时从存储服务器检索并存储在本地(稍后将通过 cron 作业删除)。使用 proxy_store 我可以检索 mp4 文件并使用如下配置将它们存储在本地:

使用proxy_pass的问题是nginx直接返回mp4文件给客户端,而不是m3u8播放列表。

是否可以让 nginx 检索并存储 mp4 文件,然后使用 HLS 模块生成 m3u8 播放列表文件?或者另一种说法,我可以检查 mp4 文件是否存在,如果找不到,则检索并存储它,然后点击将使用 HLS 模块流式传输文件的 /hls 位置?

由于这是 Nginx Plus,我无法编写模块。我只能使用包含的模块,请参见此处https://www.nginx.com/products/technical-specs/

0 投票
1 回答
450 浏览

nginx - 具有多个子目录的 nginx 位置(django i18n)

我得到了这台服务器,我在其中使用 django i18n 处理几种语言,但我不能让 nginx 使用相同的位置服务这些目录。

但这不起作用,也不能满足来自这些 url 的请求。

似乎唯一可行的解​​决方案是我制作4个位置块的解决方案,但这不是最好的解决方案......

那么,真正的解决方案是什么?

0 投票
1 回答
585 浏览

nginx - 为什么我的 nginx“重写”指令会导致重定向循环?

给定以下 http 块,nginx 按预期执行。也就是说,它将重写一个诸如http://localhost/3ba48599-8be8-4326-8bd0-1ac6591c2041/to之类的URLhttp://localhost/modif/3ba48599-8be8-4326-8bd0-1ac6591c2041/并将其传递给uwsgi服务器。

但是,当我以显示的方式添加另一个location块时,事情变得很明显,我得到了ERR_TOO_MANY_REDIRECTS

这里到底发生了什么?我怎样才能解决这个问题?

0 投票
1 回答
382 浏览

node.js - ngnix位置中断节点(帆)路线

我一直在寻找correct nginx configuration to achieve a server location (different from /) and get node routes working

语境

  • 在http://localhost:1337上运行的节点应用程序
  • 具有 proxy_pass 指向节点应用程序的 Nginx 服务器
  • 服务器位置属性/app
  • http请求重定向到https

Nginx 配置文件

问题

导航到www.domain.com/app时,我得到了正确的节点主页。

然后,当请求www.domain.com/app/test时,我希望它会给我带来http://localhost:1337/test。那没有发生,我得到了一个 404 not found 。所以,出于某种原因,the location isn't recognizing node routing.

奇怪的是,如果位置是 / 而不是 /app,那么一切都按预期工作。因此,问题可能与位置有关。

可能的修复

我已经尝试在位置下添加重写但没有运气:


您知道为什么会发生这种情况吗?

0 投票
1 回答
1108 浏览

regex - Nginx 正则表达式 server_name

如何使用正则表达式来做到这一点:

我知道要匹配 *.company.com 我将创建:

但是对于在*.company.com之前匹配的正则表达式,这条规则preprod.allsubdomains.company.com

preprod.*.company.com不工作,这是正常的。

请问你能帮帮我吗?

谢谢。