我有一台服务器,有 2 个 IP 地址。
我在 .net 中有多个应用程序(webapi、控制台应用程序等(和一个特定的使用在 apache 上运行的 PHP 应用程序(w/xampp(。
我将 IIS 配置为在默认端口 80 上运行,而 xampp 正在使用端口 8080。
正如我之前所说,我有两个IP地址和两个域(例如:domain1.com 和 domain2.com(。
我需要将 domain1.com.br 精确定位到 IIS 应用程序(正在运行(,但我的 php 应用程序从未被访问,因为所有请求都定向到端口 80(IIS 控制(。
- 我能做些什么来解决这个问题?
- 我知道我可以将两个 ip 都指向端口 80,但是每当他收到来自特定域/主机(在本例中为 domain2.com.br(的请求时,如何告诉 IIS 重定向到端口 8080?
由于 apache 的重定向功能,您可能需要让 apache 接管控制权。主要思想是设置Apache,使用apache的重定向功能(vhost,如果你喜欢这样称呼它(将特殊请求定向到你的IIS服务器。
-
更改侦听端口 8080 的 IIS(例如,将域设置为域,域 1.com(。让你的阿帕奇听 80。
-
在 apache 配置文件 (http.conf( 中启用以下模块:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
并启用:
Include conf/extra/httpd-vhosts.conf
3. 下一步是设置虚拟主机。编辑配置文件conf extrahttpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot "x:TheDirtoYourPhpSite"
ServerName domain2.com.br
ErrorLog "logs/domain2-error.log"
CustomLog "logs/domain2-access.log" common
</VirtualHost>
重新启动您的 apache 服务器,按域名访问您的网站,您的 php 站点将正常工作。domain2.com.br
如果步骤按预期工作,这将是最后一步。
<VirtualHost *:80> ServerName your.net.site.domain.com ProxyPreserveHost On ProxyPass "/" "http://127.0.0.1:8080/" ProxyPassReverse "/" "http://127.0.0.1:8080/" ErrorLog "logs/domain1-error.log" CustomLog "logs/domain1-access.log" common </VirtualHost>
现在它应该按照您的预期工作。
使用
反向代理方法
什么是反向代理方法
- 反向代理服务器是一种通常位于专用网络中的防火墙后面并引导客户端请求到相应的后端服务器。反向代理提供额外的抽象和控制级别,以确保流畅的流程客户端和服务器之间的网络流量。
请参阅 NGINX 文档以了解有关反向代理的更多信息。
您可以在IIS或Apache(Xampp(服务器上使用反向代理。但是由于您有Windows服务器,因此建议您在IIS服务器上执行反向代理。
示例:在 IIS 中重写或反向代理