#apache #asp.net-core #ubuntu
#apache #asp.net-core #ubuntu
Вопрос:
https://learn.microsoft.com/en-us/aspnet/core/host-and-deploy/linux-apache?view=aspnetcore-2.1
Я последовал приведенному выше руководству и настроил свой компьютер Ubuntu 10.08 для запуска сервера Apache. Я также настроил компьютер для запуска Asp.NET Ядро 2.1 веб — api (MyApp.dll ) и он работает нормально (я могу получить к нему доступ на http://localhost:5000/api/Card ). Я настроил свой сервер Apache следующим образом для прокси:
sudo vi /etc/apache2/conf-enabled/myapp-netcore.conf:
<VirtualHost *:80>
ServerName www.myubuntuvm.com
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:5000/
ProxyPassReverse / http://127.0.0.1:5000/
ErrorLog /var/log/apache2/netcore-error.log
CustomLog /var/log/apache2/netcore-access.log common
</VirtualHost>
Startup.cs веб-Api:
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseMvc();
}
Когда я пытаюсь получить доступ к IP-адресу компьютера (на порту 80) в браузере, я могу увидеть домашнюю страницу Apache (Apache установлен и работает нормально). Согласно приведенной выше конфигурации, если я попытаюсь перейти на
http://<machine_ip>/api /Card, я получаю сообщение об ошибке «Запрошенный URL-адрес не найден на этом сервере».
Правильна ли моя конфигурация? Как мне исправить эту ошибку?
Спасибо за любую помощь.
Редактировать: я также следил за сайтом https://www.c-sharpcorner.com/article/how-to-deploy-net-core-application-on-linux / для настройки моей машины.
Ответ №1:
Я заставил сайт работать, выполнив следующие действия:
-
В моем Startup.cs я прокомментировал строку
app.UseHttpsRedirection(); Редактировать: это никак не повлияло на решение моей проблемы. Так что оставьте это.
-
В моем APache2 /etc/apache2.ports.conf я добавил строку
Прослушивание 8080
-
В моем файле /etc/apache2/conf с поддержкой / myapp-netcore.conf я изменил конфигурацию виртуальных хостов следующим образом (эта конфигурация гарантирует, что запросы, поступающие на порт 8080, перенаправляются на localhost:5000, где мой ASP.NET Основное приложение запущено):
<VirtualHost *:8080> ServerName www.myubuntuvm.com ProxyPreserveHost On ProxyPass / http://127.0.0.1:5000/ ProxyPassReverse / http://127.0.0.1:5000/ ErrorLog /var/log/apache2/netcore-error.log CustomLog /var/log/apache2/netcore-access.log common </VirtualHost>
-
Откройте порты на сервере Ubuntu для портов 80, 5000, 8080
sudo ufw разрешает 80 / tcp sudo ufw разрешает 8080 / tcp sudo ufw разрешает 5000 / tcp