我使用nginx设置了一个小型Linux实例来代理请求,作为多个应用服务器的负载均衡器。
所有的流量进入https://app.example.com代理到那些上游服务器。负载均衡器的nginx配置示例:
upstream app_servers {
server app-1.example.com;
server app-2.example.com;
}
server {
listen 80;
listen 443 ssl;
include snippets/ssl-app.example.com.conf;
include snippets/ssl-params.conf;
server_name app.example.com;
root /var/www/html;
location / {
# Set proxy headers
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For
$proxy_add_x_forwarded_for;
proxy_pass http://app_servers;
}
location ~ /.well-known {
allow all;
}
}在设置代理之前,我为app.example.com设置了letsencrypt并获得了证书,现在我很难知道如何将nginx配置为将所有东西代理到上游的app_servers,除了任何东西到/.众所周知,因此certbot可以在本地更新运行这个nginx负载平衡器的服务器上的SSL证书。对于如何将app.example.com/.熟知的/路由到本地路径,让certbot能够在更新期间成功地使用和命中,有什么建议吗?
Update确保在/var/www/html (Debian)上存在着众所周知的信息,并在conf中设置根,从而使certbot能够正确地更新。更新nginx conf片段以反映这一点。
发布于 2018-04-22 22:42:59
在Debian /var/www/html上将根设置为默认的nginx,其中certbot最初被配置为指向.知名文件夹解决了这个问题。
upstream app_servers {
server app-1.example.com;
server app-2.example.com;
}
server {
listen 80;
listen 443 ssl;
include snippets/ssl-app.example.com.conf;
include snippets/ssl-params.conf;
server_name app.example.com;
root /var/www/html;
location / {
# Set proxy headers
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For
$proxy_add_x_forwarded_for;
proxy_pass http://app_servers;
}
location ~ /.well-known {
allow all;
}
}https://serverfault.com/questions/908769
复制相似问题