问题标签 [nginx]

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 投票
10 回答
90295 浏览

regex - 在每个 url 的末尾添加斜杠(需要为 nginx 重写规则)

我尝试在每个网址末尾添加一个“/”:

example.com/art

应该

example.com/art/

我使用 nginx 作为网络服务器。

我需要为此重写规则..

为了更好地理解,请检查:

http://3much.schnickschnack.info/art/projekte

如果您按下大图片下的小缩略图,它会重新加载并显示此网址:

http://3much.schnickschnack.info/art/projekte/#0

如果我现在在所有 url 上都有一个斜线(最后),它可以在不重新加载网站的情况下工作。

现在我在 nginx-http.conf 中有这个设置:

如何配置 nginx 以添加斜杠?(我认为我应该重写规则?)

0 投票
2 回答
6285 浏览

nginx - Best method of post processing Nginx reverse proxy response

I'm doing some researching on switching from Apache to Nginx as a reverse proxy in front of a Grails application on the backend. I'm playing around with some URL rewriting and have run into an issue with the response being sent back from my back end. I can handle the location header rewrite but I'm wondering what the best way to process the actually content is for link and such.

Is nginx_substitutions_filter the preferred method or is there another module that folks use to do content replacement in the response body?

I've thought about creating a Grails plugin to handle rendering the correct content based on additional request headers but now I'm thinking that would be best handled outside the application to allow for the most flexibility and loose coupling.

Are there any articles about best practices for doing URL rewriting/response post processing for reverse proxy scenarios?

0 投票
3 回答
1276 浏览

apache - Apache/nginx 细粒度(每个文件)权限?

是否可以使用 Apache 或 nginx 设置细粒度的权限?给定大量文件和大量用户,指定每个经过身份验证的用户只能访问他/她自己的文件的好方法是什么?

这些是静态的只读文件(大部分)。想象一下类似访问控制但使用 http 的文件系统。没有 web-dav;这是网络应用程序的一部分;图像将作为浏览器中用户页面的一部分显示。我想确保没有其他人可以看到图像,即使他们可以找到它的 url。

0 投票
2 回答
1049 浏览

php - 奇怪的 http gzip 问题

这里有一个奇怪的:

我已经使用 mod_php 向 apache 2 发送了 nginx 反向代理请求。

一位用户(使用 firefox 3.1b3)报告说,最近他开始偶尔出现“firefox 应该如何处理这个文件?” 正常导航期间的弹出窗口。我们还没有关于这个问题的任何其他报告,也无法自己重现它。

我检查了 Nginx 和 apache 的日志。错误日志中没有任何内容,它们都显示请求的正常 HTTP 200。

我让他把下载的文件发给我,它生成了 HTML,它应该是——除了它有一些尾随和前导字节。

开头的字节序列是神奇的 gzip 头:1F8B08

以下是开头字符,为方便起见,使用 C 转义:

文件以:

当我通过 wget 获取相同的 URL 时,它按预期开始;神秘的开始和结束字节无处可寻。

有没有人见过类似的东西?这可能是 FF 3.1b3 的错误吗?

0 投票
4 回答
2221 浏览

django - 用于 django 应用程序的 nginx + FastCGI --- 运行两个网络服务器还是一个?

我即将在 nginx Web 服务器上部署一个 Django 应用程序,并希望确保我正确构建了系统。

如果您在 apache 服务器上部署 Django,那么您仍然应该在应用程序前面放置一个 nginx 服务器来提供静态文件,这似乎是一种普遍的看法,在这种情况下,nginx 的性能更高。

如果不是 apache 用于 Django 代码,我想使用 nginx + FastCGI 来托管 Django 应用程序,是否有任何理由将第二个 nginx 安装配置为位于提供动态内容的 nginx 服务器前面,以处理静态内容以及重定向到动态内容?

具体来说,静态和动态内容是否会有不同的配置参数,这会让我想要将服务器分开,或者我可以将它们全部托管在单个 nginx 安装中,其中一些 URL 被映射到 django 内容,并且休息被映射到从同一个 nginx 安装服务的静态内容?

谢谢你的建议!

0 投票
2 回答
532 浏览

django - 如何使用 fastcgi 在一台服务器上运行多个 Django 站点?

我在设置了十几个虚拟主机的服务器上运行 Django。我整理的第一个 Django 站点运行良好,但我即将建立第二个站点。我需要运行第二个 fastcgi 进程吗?

对于第一个站点,我以这种方式运行 fcgi:

域的 nginx 配置指向该 fcgi 进程(fastcgi_pass 127.0.0.1:8081)。

对于第二个站点,我是否需要运行 fcgi 的另一个副本,就像每个站点一个 fcgi 一样?:

然后将 nginx 配置引导到该进程(fastcgi_pass 127.0.0.1:8082)?

或者有什么方法可以用一个 fastcgi 处理多个 Django 站点?是否有设置多 Django 服务器的最佳实践?

0 投票
1 回答
4632 浏览

ssl - HAProxy 可以在一个 IP 和端口上同时处理 Web 服务器和 SSL VPN 吗?

我需要一个反向代理,通过坐在一个 IP/端口上来支持 Lablz Web 服务器和 SSL VPN Adito(SSL Explorer 分支)。使用 Nginx 无法实现这一点。未能将 Adito 用作通用反向 HTTP 代理。

如果 HAProxy 无法感知 HTTP 流量,它是否可以回退为 TCP 代理?换句话说,如果它的第 7 层检查确定这不是 HTTP 流量,它是否可以退回到第 4 层?

这是我的设置

  • 具有一个公共 IP(弹性 IP)的 EC2 机器。
  • 只有一个端口是开放的——443。
  • Stunnel 位于 443 并将流量传递给 HAProxy(我不喜欢使用 Stunnel,但 HAProxy 还没有完全支持 SSL,这与 Nginx 不同)。
  • HAProxy 必须配置为将一些 HTTP 流量传递到一台服务器(位于 SVN 服务器前面的 Apache 服务器),并将其余 HTTP 流量传递到我们的 Lablz Web/App 服务器。
  • 所有非 HTTP 流量都必须转发到 Adito VPN。
    • 这个流量是:
      • VNC、NX、SMB
      • ...以及 Adito 支持的所有其他协议

我不能依赖源 IP 地址或端口将流量拆分为 HTTP 和非 HTTP。

那么,这样的配置可以在 HAProxy 中完成吗?可以为此使用任何其他反向代理吗?如果我对 HAProxy 的想法不正确,请告诉我,并且可以使用替代方法。

顺便说一句,Adito SSL VPN 很棒,如果此设置有效,我们将能够为 Lablz 开发人员提供出色的一键式单点登录安全 VNC-over-HTTPS 访问他们在云中的盒子。

没有解决方案,但通过 Adito - 请证明我错了。但请不要说 VNC over SSH 更好。是的,VNC-over-SSH 更快、更安全,但也更难(对于我们的目标用户群)设置并假定用户位于允许端口 22 上的出站流量的防火墙后面(并非总是如此)。

此外,Adito 不仅仅是远程访问网关——它是一个成熟的浏览器内 VPN、一个软件分发平台等等。我与 Adito 的人没有联系 - 请参阅我们 Lablz 博客上的 Adito 帖子

0 投票
2 回答
2074 浏览

nginx - 在 nginx.conf 文件中查找强度的长度

我的 $memcached_keys 在 nginx 的 .conf 文件中太长时遇到问题。我正在使用 memcached 模块,但我的一些网址太长了。我正在尝试使用 URL 的 MD5 哈希值,但同时我只是想知道是否有一种方法可以检查存储在变量中的字符串的长度。

所以:

0 投票
6 回答
25976 浏览

nginx - nginx无法启动

当我们尝试启动 Nginx(在 Ubuntu 上)“”正在启动 nginx“/usr/local/nginx/on”“没有这样的文件或目录”“”时,我们遇到了以下错误

它开始突然出现。

有没有人遇到过这种情况?任何指针?

提前致谢

0 投票
3 回答
132453 浏览

nginx - 如何使用 NGINX 直接提供所有现有的静态文件,但将其余的代理到后端服务器。

以上将直接使用 Nginx 提供所有现有文件(例如 Nginx 仅显示 PHP 源代码),否则将请求转发给 Apache。我需要从规则中排除 *.php 文件,以便对 *.php 的请求也传递给 Apache 并进行处理。

我希望 Nginx 处理所有静态文件,而 Apache 处理所有动态文件。

编辑:有白名单方法,但不是很优雅,查看所有这些扩展,我不想要这个。

编辑 2:在 Nginx 的较新版本上try_files使用http://wiki.nginx.org/HttpCoreModule#try_files