我有一个文件,我想显示为托管,但我没有。所以我在我的 nginx 服务器块中写了这个:
location /d-p27.js {
proxy_pass https://data.example.com/p/piwik.js;
}
Run Code Online (Sandbox Code Playgroud)
重新加载 Nginx 的配置后,当我用 测试它时curl -I https://another.example.com/d-p27.js
,我得到 404。 Nginx 日志没有说更多。
所以我试试这个:
location /d-p27.js {
rewrite ^/d-p27.js$ /p/piwik.js break;
proxy_pass https://data.example.com/;
}
Run Code Online (Sandbox Code Playgroud)
这也是404的。有什么建议?
感谢@RichardSmith,解决方案只是使用精确匹配来避免与其他正则表达式混淆:
location = /d-p27.js {
proxy_pass https://data.example.com/p/piwik.js;
}
Run Code Online (Sandbox Code Playgroud) 我们使用 puppet 来分发我们自己的软件(即我们写的东西,我们希望在我们自己的服务器上运行)。所以我们必须在某个地方编译这个软件。
对我来说,我可以 git pull 并在 puppet master 上编译它是有道理的。编译一次,分发,我们的机器是同构的,二进制文件在它们的受膏主机上运行。
但是当我们升级主机时,各种库都会发生变化,我们会发现自己需要为新的库集重新编译。
似乎正确的做法是打包我们的软件,为我们自己提供这些 deb,然后在 puppet 中使用包指令。
Q1:这听起来对吗/我错过了什么重要的事情吗?
Q2:那么deb是如何打包上传的呢?这是手动发布过程吗?这意味着我们将测试服务器升级到新的操作系统和库版本以进行编译和打包。
Q2B:现在假设我安装了 CI 服务器,我一直告诉我的团队我会开始安装。据我所知,CI 服务器对 dist-upgrades 一无所知。那么这部分是否必须保持手动?