【问题标题】:Properly configuring a dotnet (ASP.NET Core 2.1) environment on CentOS / Linux在 CentOS / Linux 上正确配置 dotnet (ASP.NET Core 2.1) 环境
【发布时间】:2018-12-02 16:46:05
【问题描述】:

我被困住了,我真的希望有人可以帮助或至少为我指明正确的方向。我的最终目标是让我的 ASP.NET Core 2.1 应用程序在 CentOS Linux 机器上运行。由于我在我的实际应用程序中使用 mongo db 并希望消除任何可能的问题,我发布了一个纯 jane asp.net core 2.1 mvc 应用程序,没有身份验证,并将其部署到我的 centos 7 上的虚拟主机box(apache 通过 CoreIT 升级到 2.4.37,因为 centos 发行版仍然部署旧的 2.4.6 版本)。

对于这个问题的范围,我想我只需要确保我的反向代理工作正常,并且需要帮助来确定这一点。我已按照here 的说明和here 的 Microsoft 设置文档进行操作。这两个链接是我主要使用的。

当我的应用服务运行时,我可以执行 curl localhost:5000 并查看返回的主页的正确 html。当我再次从命令行尝试使用 test.mydomain.com 或 test.mydomain.com:5000 时,它就会超时。如果我转到我的应用程序的 conf(/etc/httpd/sites-available 中的 test.mydomain.com.conf)并删除 ProxyPass、ProxyPassReverse 和 ProxyPreserveHost 行,那么我可以使用浏览器从外部点击 test.mydomain.com,然后获取我的 index.html 文件并正确显示(这只是一个 index.html 文件,而不是 dotnet 应用程序的一部分)。只有当我将以下内容添加回我的 conf 文件时,它才会在我尝试点击 URL 时挂起。我不确定要在 journalctl 中查找什么,或者我应该跟踪一个特定的日志文件以找出它在等待什么以及为什么要花这么长时间。

ProxyPreserveHost On
ProxyPass / http://127.0.0.1:5000/
ProxyPassReverse / http://127.0.0.1:5000/

不知何故,我的反向代理似乎没有设置为从框外访问。

我的应用程序的其余配置如下。

<VirtualHost *:*>
        RequestHeader set "X-Forwarded-Proto" expr=%{REQUEST_SCHEME}</VirtualHost>

<VirtualHost *:80>
    ServerName test.mydomain.com
    DocumentRoot /var/www/test.mydomain.com/public_html
    ErrorLog logs/dashboard.crtv1.com.errorlog
    CustomLog logs/dashboard.crtv1.com.access_log combined
</VirtualHost>

【问题讨论】:

    标签: c# linux apache asp.net-core centos7


    【解决方案1】:

    我想我已经解决了这个问题,尽管我不确定我在发帖时实际上遇到了什么问题。我最终通过消除过程和 curl 发现另一个服务正在运行并在另一个虚拟主机中使用端口 5000 - 我们正在进行开发并且需要一组测试、暂存和生产虚拟主机。此外,我发现我的应用程序(UseUrls)中有一些代码专门声明使用端口 5000,因此同一环境中的多个副本存在资源冲突。我会回过头来更新哪些环境将使用哪些端口,并希望有一个很好的设置。

    【讨论】:

      猜你喜欢
      • 2018-03-07
      • 1970-01-01
      • 2019-06-26
      • 2019-07-20
      • 2018-12-01
      • 2021-04-30
      • 2021-02-15
      • 2020-03-22
      • 1970-01-01
      相关资源
      最近更新 更多