我对Nginx .well-known/acme-challenge的配置以及它如何与Django的代理一起工作感到非常困惑。以下是我的前端配置:
server {
listen 80;
server_name myserve.com;
root /var/www/html/myapp_frontend/myapp/;
index index.html;
location / {
try_files $uri$args $uri$args/ /index.html;
}
location /.well-known/acme-challenge {
allow all;
root /var/www/html/myapp_frontend/myapp/;
}
return 301 https://myserver.com$request_uri;
}
因此,在前端,我可以毫无问题地定义:我的应用程序的前端/我的应用程序/
现在,我可以像这样运行acme脚本:
/root/.acme.sh/acme.sh --issue -d myserver.com -w /var/www/html/myapp_frontend/myapp/
它运行得很好。但是我的Django后端有问题,因为nginx配置使用了一个代理:
upstream myapp {
server backend:8000;
}
server {
listen 80;
server_name api.myserver.com;
location / {
proxy_pass http://myapp;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_redirect off;
}
return 301 https://api.myserver.com$request_uri;
}
请注意,我实际上并没有像前端配置中那样对文件夹“/var/www/html/myapp_backend/myapp/”进行配置,因为我现在使用的是代理。
现在我不能像这样运行acme脚本:
/root/.acme.sh/acme.sh --issue -d myserver.com -w /var/www/html/myapp_backend/myapp/
如何配置SSL提供程序的文件夹,使其能够检查我的后端?
1条答案
按热度按时间0vvn1miw1#
我不知道是否可以只在Nginx配置中实现,但我得出结论,使用代理,Django应该创建一个url到/.well-known/acme-challenge/
我基本上设置了一个URL,如下所示:
和
请注意,要接受多个文件名,我使用以下代码:(?P <file_name>[\w-]+)$
而我的看法是这样的:
我在《 Docker 》中卷到:/myapp/.知名/acme-challenge/
安装到:/var/www/html/我的应用程序后端/我的应用程序/