如何在 Apache 网站内托管 ASP.NET Core Web 应用程序?

2024-03-20

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

我正在开发使用新的 API 项目ASP.NET MVC Core需要可以访问http://somedomain.com/v2/.

那么,是否可以举办dotnet core应用程序内部Apache网站并让它们同时工作?如果是,我该如何实现?


您可以添加反向代理来执行此操作。比方说你的ASP.NET Core应用程序运行于http://127.0.0.1:5000/ by:

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    |                    |
+-------+                   +--------------------+

首先,配置代理模块取消注释这些行 in 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:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Apache 网站内托管 ASP.NET Core Web 应用程序? 的相关文章

随机推荐