我有一个在 Docker 容器中运行的 ASP.NET 应用程序,该容器由 NGINX 反向代理提供服务,该代理也在 Docker 容器中。
我对 NGINX 或托管一点经验都没有,所以请原谅我的无知。我花了一段时间才让它工作起来,但除了图像之外,一切都运行良好。
我检查了<img>
浏览器的标签,发现 src 属性中填充的是upstream-name/images/logo.png
而不是my-domain.com/images/logo.png
。这些图像是在运行时构建的,因为它们以二进制文件的形式存储在数据库中,所以我假设容器中没有我应该映射的文件夹(没有 NGINX 也可以正常工作)。
有人可以帮忙吗?
这是我的 nginx.conf 文件:
worker_processes 1;
events { worker_connections 1024; }
http {
sendfile on;
upstream webapp{
server container;
}
server {
listen [::]:80;
listen 80;
server_name my-domain.com;
return 301 https://$host$request_uri;
}
server {
listen [::]:443 ssl http2;
listen 443 ssl http2;
server_name my-domain.com;
ssl_certificate /ssl/cert.pem;
ssl_certificate_key /ssl/key.pem;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Proto https;
proxy_pass http://webapp/;
}
}
}
答案1
我失踪了proxy_set_header Host {hostname};