我有一个nginx符合以下要求的网站:
为了满足(1)我的配置中有一个小的 http->https 重定向nginx。为了满足 (2) 我需要修改上述配置,以便我可以使用 webroot Let's Encrypt 身份验证方法。
我试图找出满足这两个要求的最佳解决方案。我想出了以下方法,这很有效。
前:
server {
listen 80;
server_name example.com;
return 301 https://example.com$request_uri;
}
Run Code Online (Sandbox Code Playgroud)
后:
server {
listen 80;
server_name example.com;
location ~ /\.well-known\/acme-challenge {
root /usr/share/nginx/html;
allow all;
}
if ($request_uri !~ /\.well-known) {
return 301 https://example.com$request_uri;
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我希望找到另一种方法。原因如下:
如果是邪恶的。在这种情况下可能不是什么大问题,因为这只是 http->https 重定向,应该是非常低的流量。
更重要的是,避免if将更容易将 webroot 身份验证绑定到我后面运行的所有站点,nginx因为我可以将该location指令放入 a 中.conf,然后我可以在我所有的 …