【问题标题】:How to configure apache as a reverse proxy for asp.net core如何将apache配置为asp.net core的反向代理
【发布时间】:2020-01-07 22:10:49
【问题描述】:

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

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 服务器上运行多个域,因为它为它们提供服务,并且由域名配置,我不知道这是否是问题,但我尝试了所有方法,但没有解决方案:D。 非常感谢。

【问题讨论】:

  • 1.您的ping 127.0.0.1:9009 不起作用。请改用wget http://127.0.0.1:9009 对其进行测试。 2、你开启了apache的代理模块了吗? 3. 有时候127.0.0.1不行,可以尝试让红隼在0.0.0.0上监听opts.ListenAnyIP(9009);
  • 1.谢谢,我用这个试过了,它的反应是好的。
  • 2.我不知道如何启用此模块,但是如果您需要知道 apache 正在其他应用程序上运行,那么如果这是为应用程序提供服务的必须要做的事情,也许它已经完成了,但请告诉我该怎么做
  • “但是告诉我怎么做”:请看stackoverflow.com/questions/56779013/…
  • 3.你想让我把每个127.0.0.1改成0.0.0.0,即使是在apache的配置文件中???

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


【解决方案1】:

我相信问题出在 apache 配置中指定的端口,对于 apache 常规请求来说也是一样的,我将其更改为 90 并且对我来说效果很好,以及答案@itminus 说要更改API opts.ListenAnyIP(9009); 监听服务器中的任何默认端口。非常感谢。

【讨论】:

    猜你喜欢
    • 2015-04-26
    • 2017-02-18
    • 2015-08-07
    • 1970-01-01
    • 2017-10-24
    • 2018-02-14
    • 1970-01-01
    • 2015-07-09
    • 1970-01-01
    相关资源
    最近更新 更多