Опубликованные ASP. NET Основные приложения на Apache могут быть доступны через IP, но не через домен - PullRequest
0 голосов
/ 03 февраля 2020

У меня есть ASP. NET Базовое приложение на Linux с Apache, к которому я могу получить доступ, используя http://[::]:5000, но не через https://example.com/Panel (ошибка 404) или https://example.com:5000 (ошибка закрытого соединения ).

Apache config:

<IfModule mod_ssl.c>
<VirtualHost *:80>
        ServerName example.com
        DocumentRoot /var/www/html
        ServerAdmin me@example.com

        RequestHeader set "X-Forwarded-Proto" expr=%{REQUEST_SCHEME}

        RewriteEngine on
        RewriteCond %{SERVER_NAME} =example.com
        RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

<VirtualHost *:443>
        ServerName example.com
        DocumentRoot /var/www/html
        ServerAdmin me@example.com

        RequestHeader set "X-Forwarded-Proto" expr=%{REQUEST_SCHEME}

        RewriteEngine On
        ErrorLog "/var/log/apache2/rewrite"
        LogLevel alert rewrite:trace6

        ProxyRequests Off
        ProxyVia Off
        ProxyPreserveHost On

        <Proxy *>
                Require all granted
        </Proxy>

        ProxyPass /Panel http://localhost:5000/Panel
        ProxyPassReverse /Panel http://localhost:5000/Panel

        SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
        Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>

Program.cs:

public class Program {
    public static void Main(string[] args) {
        CreateHostBuilder(args).Build().Run();
    }

    public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder => {
                webBuilder.UseUrls("http://*:5000");
                webBuilder.UseStartup<Startup>();
            });
    }

Что нужно сделать, чтобы сделать его доступным через https://example.com/Panel? Я предполагаю, что это связано с Kestrel, я пытался добавить что-то вроде UseUrls("http://*:5000;https://example.com:5000") к Program.cs, но тогда сервер вообще не запустился бы.

Редактировать: я забыл упомянуть, что мой Startup.cs имеет это строка:

app.UsePathBase("/Panel");

Почему это не работает? Я следовал этому руководству шаг за шагом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...