如何将 apache 配置为 asp.net 核心的反向代理
How to configure apache as a reverse proxy for asp.net core
我正在尝试将 aspo.net 核心 MVC 应用程序部署到 linux 服务器 - centos - 使用 apache 作为反向代理,到目前为止我一直在关注这个 link
https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/linux-apache?view=aspnetcore-2.2
我尝试 运行 服务器上的应用程序以确保它正常工作,它说 端口 5000 正在使用中,所以我更改了通过 program.cs 文件中的此代码移植 ...
public static void Main(string[] args)
{
BuildWebHost(args).Run();
}
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.UseKestrel(options =>
{
options.Listen(IPAddress.Loopback, 9009);
})
.UseContentRoot(Directory.GetCurrentDirectory())
.Build();
它运行 在服务器的 9009 端口
但问题是我无法访问它。
我尝试通过 IP 地址 138.201.131.247:9009 访问
并尝试通过域名http://medicalrecords.host:9009访问
甚至我试图通过
通过终端 ping 到它
ping 127.0.0.1:9009
显示此消息
[root@server ~]# ping 127.0.0.1:9009
ping: 127.0.0.1:9009: Name or service not known
但没有任何效果
我尝试通过此代码将 Apache 配置为作为反向代理工作
<VirtualHost *:*>
RequestHeader set "X-Forwarded-Proto" expr=%{REQUEST_SCHEME}
</VirtualHost>
<VirtualHost *:80>
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:9009/
ProxyPassReverse / http://127.0.0.1:9009/
ServerName medicalrecords.host
ServerAlias medicalrecords.host
ErrorLog /var/log/apache2/testapp-error.log
CustomLog /var/log/apache2/testapp-access.log common
</VirtualHost>
也没有工作。
* 请注意,* 此 apache 服务器上有多个域 运行ning,因为它为它们提供服务并通过域名配置,我不知道这是问题所在还是不是,但我尝试了一切,但没有解决方案:D。
非常感谢。
我相信问题出在 apache 配置中指定的端口,它与 apache 一般请求相同,我将其更改为 90,它对我来说工作正常,连同@itminus 的回答说要更改该行在 API opts.ListenAnyIP(9009);
中监听服务器中的任何默认端口。非常感谢。
我正在尝试将 aspo.net 核心 MVC 应用程序部署到 linux 服务器 - centos - 使用 apache 作为反向代理,到目前为止我一直在关注这个 link
https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/linux-apache?view=aspnetcore-2.2
我尝试 运行 服务器上的应用程序以确保它正常工作,它说 端口 5000 正在使用中,所以我更改了通过 program.cs 文件中的此代码移植 ...
public static void Main(string[] args)
{
BuildWebHost(args).Run();
}
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.UseKestrel(options =>
{
options.Listen(IPAddress.Loopback, 9009);
})
.UseContentRoot(Directory.GetCurrentDirectory())
.Build();
它运行 在服务器的 9009 端口 但问题是我无法访问它。 我尝试通过 IP 地址 138.201.131.247:9009 访问 并尝试通过域名http://medicalrecords.host:9009访问 甚至我试图通过
通过终端 ping 到它ping 127.0.0.1:9009
显示此消息
[root@server ~]# ping 127.0.0.1:9009
ping: 127.0.0.1:9009: Name or service not known
但没有任何效果 我尝试通过此代码将 Apache 配置为作为反向代理工作
<VirtualHost *:*>
RequestHeader set "X-Forwarded-Proto" expr=%{REQUEST_SCHEME}
</VirtualHost>
<VirtualHost *:80>
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:9009/
ProxyPassReverse / http://127.0.0.1:9009/
ServerName medicalrecords.host
ServerAlias medicalrecords.host
ErrorLog /var/log/apache2/testapp-error.log
CustomLog /var/log/apache2/testapp-access.log common
</VirtualHost>
也没有工作。 * 请注意,* 此 apache 服务器上有多个域 运行ning,因为它为它们提供服务并通过域名配置,我不知道这是问题所在还是不是,但我尝试了一切,但没有解决方案:D。 非常感谢。
我相信问题出在 apache 配置中指定的端口,它与 apache 一般请求相同,我将其更改为 90,它对我来说工作正常,连同@itminus 的回答说要更改该行在 API opts.ListenAnyIP(9009);
中监听服务器中的任何默认端口。非常感谢。