【问题标题】:How to host ASP.NET Core web-app inside an Apache website?如何在 Apache 网站内托管 ASP.NET Core Web 应用程序?
【发布时间】:2019-06-26 18:26:55
【问题描述】:

我有一个旧的php 应用程序使用Yii2 框架开发,该框架托管在Centos 服务器上,路径为/var/www/html。此应用程序可通过http://somedomain.com/ 访问。

我正在开发使用 ASP.NET MVC Core 开发的新 API 项目,该项目需要通过 http://somedomain.com/v2/ 访问。

那么,是否可以在 Apache 站点内托管 dotnet core 应用程序并让它们同时工作?如果是,我该如何完成?

【问题讨论】:

  • 您想将两者都托管在同一台服务器上?
  • @Amir 是的,我想将两者托管在同一台服务器上。

标签: apache asp.net-core .net-core yii2 centos7


【解决方案1】:

您可以添加反向代理来执行此操作。假设您的 ASP.NET Core 应用在 http://127.0.0.1:5000/ 上运行:

dotnet run --urls=http://localhost:5000

如果请求以http://somedomain.com/v2/ 开头,则代理到ASP.NET Core App

+-------+
|       +----------------------------------------+
|       |                                        |
|       |           PHP module                   |
|       |                                        |
|       +----------------------------------------+
|Apache2|
|       |
|  (80) |                   +--------------------+
|       | start with /v2/   |                    |
|       |                   |   Asp.Net Core App |
|       +------------------->                    |
|       |                   |     (5000)         |
|       |  reverse proxy    |                    |
+-------+                   +--------------------+

首先,通过在httpd.conf取消注释这些行来配置代理模块:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_http2_module modules/mod_proxy_http2.so

然后为以/v2/开头的请求添加以下反向代理设置

<VirtualHost *:80>
    ProxyPreserveHost On
    ProxyPass /v2/ http://127.0.0.1:5000/
    ProxyPassReverse / http://somedomain.com/
    ServerName somedomain.com
    ErrorLog ${APACHE_LOG_DIR}webapp1-error.log
    CustomLog ${APACHE_LOG_DIR}webapp1-access.log common
</VirtualHost>

现在它应该可以按预期工作了。

一个有效的演示

这是一个监听 8089 而不是 80 的演示:

【讨论】:

  • 非常感谢您的精彩回答。我能够在开发和登台服务器上成功实现这一点。但是,生产服务器正在运行 HTTPS 站点,即使按照这些步骤操作,我也会收到 404。我们需要在这里做任何额外的步骤吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-11-27
  • 1970-01-01
  • 1970-01-01
  • 2020-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多