繁体   English   中英

无法在 NGINX 代理后面的 Blazor 服务器上加载 static 文件

[英]Can't load static files on Blazor server behind NGINX proxy

我在 Ubuntu 20.04 上托管了一个使用 .NET5 创建的 BlazorServerSide。 当我直接使用 dotnet 命令启动应用程序时,它工作正常。 但是,当它由 systemd 服务启动时,不会加载 static 文件。 wwwroot 目录及其内容确实存在。 顺便说一句,我已经删除了/etc/nginx/sites-enabled/中默认文件的符号链接。 这是原因吗?

nginx 配置:

server {
        server_name {My_FQDN} www.{My_FQDN};

        location / {
                proxy_pass         http://localhost:5000;
                proxy_http_version 1.1;
                proxy_set_header   Upgrade $http_upgrade;
                proxy_set_header   Connection keep-alive;
                proxy_set_header   Host $host;
                proxy_cache_bypass $http_upgrade;
                proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header   X-Forwarded-Proto $scheme;
        }

    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/www.{My_FQDN}/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/www.{My_FQDN}/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot


}
server {
    if ($host = {My_FQDN}) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    if ($host = www.{My_FQDN}) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


        server_name {My_FQDN}
        listen 80;
    return 404; # managed by Certbot
}

服务文件:

[Unit]
Description=MyBlazorApp.
After=local-fs.target

[Service]
Type=simple
ExecStart=/usr/bin/dotnet /home/{username}/{MY_BLAZOR_APP_DIR}/{MY_APP_NAME}.dll
RemainingAfterExit=yes
RestartSec=10
KillSignal=SIGINT
User=www-data
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false

[Install]
WantedBy=multi-user.target
using Microsoft.AspNetCore.HttpOverrides;

...

app.UseForwardedHeaders(new ForwardedHeadersOptions
{
    ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto
});

app.UseAuthentication();

并通过将应用程序目录设置为/var/www/{AppDir}来解决。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM