如何将apache配置为asp.net核心的反向代理

时间:2019-09-05 03:48:44

标签: apache asp.net-core centos web-deployment kestrel-http-server

我正在尝试使用Apache作为反向代理将aspo.net核心MVC应用程序部署到linux服务器-centos-到目前为止,我一直在关注此链接

https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/linux-apache?view=aspnetcore-2.2

,我尝试在服务器上运行该应用程序以确保其正常运行,并说正在使用 port 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服务器上有多个域正在运行,因为它们为它们提供服务并按域名进行了配置,我不知道这是否是问题,但我尝试了所有方法,但没有解决方案:D。 非常感谢。

1 个答案:

答案 0 :(得分:0)

我相信问题是在apache配置中指定的端口,对于apache常规请求是相同的,我将其更改为90,对我来说很好用,以及答案@itminus表示要更改该行。 API opts.ListenAnyIP(9009);用于侦听服务器中的任何默认端口。非常感谢。