问题标签 [nginx-config]
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 - 了解 NGINX 默认缓存
我有一个不同位置的 NGINX 配置。他们都返回一个人index.html
。index.html
s 是随每个部署构建的。它们包括script
JavaScript 文件的标签,这些文件在文件名中带有内容哈希,以破坏缓存。
我的问题是,在部署之后,一些必需的脚本正在运行,404
因为下载index.html
的 JS 文件名中有旧的内容哈希。好像是送的方式有问题index.html
,因为是index.html
客户端下载的老版本。
这是我的 NGINX 配置中的一个示例位置:
当我检查响应标头时,我看到所有 index.html 文件的 ETag。还不足以确保所有index.html
文件的正确缓存行为吗?
我的下一个方法是添加一个Cache-Control
标题。但我不知道它是否能解决我的问题,因为我无法准确解释为什么它会是正确的解决方案(但我想了解它)。
docker - Docker 舞会/Prometheus 容器退出
当我运行此命令时,它会创建 docker 容器,但显示为退出状态,我无法启动它
我的目标是能够用自定义 prometheus.yml 替换 prometheus.yml 文件,以监控在http://localhost:70/nginx_status运行的 nginx
这是我的 prometheus.yml 文件
nginx - 使用 Flask 重定向在浏览器中保留 URL
我在 Heroku 上部署了一个 Bokeh 服务器应用程序,具有多种样式,导致 URL 很麻烦。例如:https ://invlabs-bokehserver.herokuapp.com/avyview?style=snowpacktracker
我正在使用部署在 Heroku 上的 Flask 从一个简单的自定义域 ( www.snowpacktracker.com ) 获取扩展,并重定向到运行 Bokeh 服务器并返回 html 内容的第二个 Heroku 应用程序。相关的 Flask 应用代码:
我希望在 Flask 重定向发生时原始 URL 保持不变。Flask 中是否有执行此操作的选项?或者我可以配置网络服务器来完成这个吗?
更新和更多细节:
我无法让 nginx 代理正常工作。我现在的情况:
www.snowpacktracker.com设置为运行 nginx + gunicorn + Flask 的 Heroku 应用程序的自定义域(使用 Heroku 提供的 DNS 目标)(这是一个可用于查看当前行为的工作链接)。这个 Heroku 应用程序的基础 URL 是https://snowpacktracker.herokuapp.com。
当第一个 Heroku 应用程序收到请求时,Flask 应用程序重定向到运行 Bokeh 服务器的第二个 Heroku 应用程序。按照目前的实现,您可以在浏览器中看到 URL 切换到https://invlabs-bokehserver.herokuapp.com/avyview?style=snowpacktracker。
www.snowpacktracker.com和www.snowpacktracker.com/btac都重定向到同一个 URL。我用www.snowpacktracker.com/btac/historic定义了第二种样式,它重定向到https://invlabs-bokehserver.herokuapp.com/avyview。
我的目标是让www.snowpacktracker.com的页面加载(以及任何扩展名:/btac 或 /btac/historic)通过 Flask 重定向,如当前实现的那样,但原始 URL 保持不变。
我一直在尝试根据@Fian 的答案中的链接编辑配置文件location
中的块nginx.conf.erb
,但我没有运气。
proxy_pass
块中用于或proxy_redirect
(或rewrite
?)的正确语句是什么location
来完成这种期望的行为?
我当前的 nginx 配置文件(在Heroku nginx 构建包中提供):
nginx - Nginx 仅在子目录中提供静态文件
我有图像路径/uploads/{some user id}/0a17f689-b7d5-4592-a16a-85feb1ae00c7.gif
。我想用 nginx 服务这种路径。如何让 nginx 在与此模式匹配的所有目录中查找文件,但我不想在 url 中有 {some user id}。所以我想要这样的网址/uploads/0a17f689-b7d5-4592-a16a-85feb1ae00c7.gif
。
这是我的 nginx.conf 位置:
nginx - 如果上游启动,Nginx 绕过缓存,如果关闭则使用缓存
为了在上游启动时绕过缓存(max-age 1)并在关闭时使用缓存(proxy_cache_use_stale),我创建了以下配置:
但是当上游关闭并且客户端仅获得 504 Gateway Timeout 时,不使用缓存。我已经阅读了以下文章:
https://nginx.org/ru/docs/http/ngx_http_proxy_module.html#proxy_cache_use_stale
如何配置 NginX 仅在后端关闭时提供缓存内容(5xx 响应代码)?
https://serverfault.com/questions/752838/nginx-use-proxy-cache-if-backend-is-down
它不像我预期的那样工作。任何帮助表示赞赏。
php - 允许 php 值仅在子目录中工作
在我的 php.ini 中,我禁用了 allow_url_fopen。我想为我的 /example 目录启用它,如下所示,但它不起作用。但是,如果我将指令从 /example 移动到它上面的 ~.php$ 位置,那么它可以正常工作。我在想 /example 位置块永远不会被处理。任何想法如何允许 url fopen 仅在 /example 目录中工作?
reactjs - nginx配置提供动态错误页面
我有一个 nginx 服务器设置,用于代理和提供静态内容。静态内容基于多个反应应用程序。我想要做的是替换来自 nginx 的默认错误页面并从 React 应用程序提供错误页面。
React 应用程序根据 url 处理错误页面。http://localhost/401.html
将为应用程序提供标准的 401 HTTP 错误页面,依此类推。问题是如何在nginx中正确配置这个,因为实际上没有401.html
页面。只有一个 html 文件,即 `index.html'。React 应用程序根据使用 React Router 的 URL 处理所有自己的。
我尝试过error_page
使用 nginx 进行一些配置,但没有成功。
以下是错误页面配置的样子:```
```
这就是我将它包含在我的nginx.conf
:
是否可以在 nginx 中提供这样的错误页面?因为它仍然给了我来自 nginx 的标准 404 not found 错误页面,因为我认为它正在尝试401.html
在该文件夹中查找页面。
nginx-config - nginx 配置 - 否定条件
我在 nginx 配置中为所有文件进行 HTTP 授权,不包括 index.php:
于是,nginx 不再执行 PHP 文件,而是开始给他们下载。没有location ~ /(?! index.php)
- 文件通常会被执行。
如何正确地做出否定条件?
javascript - 如何更改角度应用程序的 nginx 配置文件
我的 Angular 应用程序正在 nginx 服务器上运行。当我输入http://**.8.100.248:30749
它时,显示 nginx 正在运行。(显示默认 index.html)。但是我的应用程序存在于html
具有文件夹名称的文件夹中test
。所以我的应用程序出现在“html”中——> 测试——> index.html”;;
因此,当我在浏览器上键入http://**.8.100.248:30749/test/index.html
我的应用程序时,但是当我从一个页面路由到另一个页面时,reload
我的页面给了我404
.
当我重新加载我的角度路由页面时,Nginx 给了我 404。所以我改变了nginx配置但仍然没有成功
任何更新
php - 在子目录中使用 nginx 安装 Laravel
我尝试只为一个子目录(laravel 目录)启用 PHP,但我没有设法让它工作。NGINX 总是说 404 File not found 或 php 说“没有指定输入文件”。我究竟做错了什么?
这是我的位置配置:
UDPATE 1:似乎 nginx 没有正确评估我的位置表达式:
2018/09/12 16:30:44 [error] 26476#24408: *1 CreateFile() "C:/Server/nginx/html/index.php" 失败(2:系统找不到指定的文件),客户端:127.0.0.1,服务器:localhost,请求:“GET /laravel/ HTTP/1.1”,主机:“localhost”
这是错误的路径,至少是 / 位置的根:
我试图移动块但没有任何变化。
更新 2:似乎 nginx 非常有问题。该文档指出:
按指定顺序检查文件是否存在,并使用第一个找到的文件进行请求处理;处理在当前上下文中执行。文件的路径是根据根和别名指令从文件参数构造的。可以通过在名称末尾指定斜杠来检查目录是否存在,例如“$uri/”。如果没有找到任何文件,则内部重定向到最后一个参数中指定的 uri。
正如我的错误日志所示,try_files 指令不尊重根路径,因为它试图打开相对于另一个位置块的文件。