[英]ASP.NET CORE2.1: Host on Ubuntu18.04/Apache2: Proxy not working
https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/linux-apache?view=aspnetcore-2.1
我按照上面的教程配置了我的 Ubuntu 10.08 機器來運行 Apache 服務器。 我還將機器配置為運行 Asp.NET Core 2.1 web api (MyApp.dll) 並且它運行良好(我可以在 http://localhost:5000/api/Card 上訪問它)。 我為代理配置了我的 Apache 服務器,如下所示:
須藤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>
Web Api 的 Startup.cs:
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/來配置我的機器。
我按照以下步驟使網站正常工作:
在我的 Startup.cs 中,我注釋掉了這一行
app.UseHttpsRedirection(); 編輯:這對我解決問題沒有任何影響。 所以,留着吧。
在我的 APache2 /etc/apache2.ports.conf 中,我添加了這一行
聽8080
在我的 /etc/apache2/conf-enabled/myapp-netcore.conf 文件中,我修改了 VirtualHosts 配置如下(此配置確保進入端口 8080 的請求被重定向到我的 ASP.NET Core 應用程序所在的 localhost:5000在跑):
<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 打開端口
須藤 ufw 允許 80/tcp 須藤 ufw 允許 8080/tcp 須藤 ufw 允許 5000/tcp
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.