在CentOS / Linux上正确配置dotnet(ASP.NET Core 2.1)环境

时间:2018-12-02 16:46:05

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

我被困住了,我真的希望有人能提供帮助或至少指向正确的方向。我的最终目标是让我的ASP.NET Core 2.1应用程序在CentOS Linux机器上运行。由于我在实际的应用程序中使用的是mongo db,并希望消除任何可能的问题,因此我发布了纯jasp.net核心2.1 mvc应用程序(无身份验证),并将其部署到centos 7上的虚拟主机中框(由于centos发行版仍部署较早的2.4.6版本,因此通过CoreIT将Apache升级到2.4.37)。

对于这个问题,我认为我只需要确保我的反向代理工作正常,并且需要帮助来确定它。我遵循了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>

1 个答案:

答案 0 :(得分:0)

尽管我不确定在发布时实际上遇到了什么问题,但我认为我已经解决了该问题。最后,我进行了消除和卷曲处理,找到了另一个服务正在运行,并在另一个虚拟主机中使用端口5000-我们正在进行开发,需要测试,暂存和生产虚拟主机集。我还发现我的应用程序(UseUrls)中有一些代码专门说明要使用端口5000,因此在同一环境中的多个端口副本会出现资源冲突。我将向后盘旋并更新哪些环境将使用哪些端口,并希望设置得很好。