问题描述
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服务器:
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>
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://
感谢您的帮助。
编辑:我还跟随站点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上的请求重定向到localhost:5000,其中我的ASP.NET Core应用正在运行):
<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