这只是我的项目。它正在成长,我想在同一域上添加一个新服务器作为子目录。是否可以制作子目录,如:
示例.com 127.0.0.1
example.com/project1/127.0.0.2
example.com/project2/127.0.0.3
我如何配置 DNS 或 Apache 以使其工作?
听起来你想实现一个可以用mod_proxy完成的代理。我假设这些网站已经在运行,127.0.0.2
并且127.0.0.3
公共前端正在运行127.0.0.1
您需要127.0.0.1
在主配置(对于单个站点)或虚拟主机的虚拟主机块中编辑配置文件,添加ProxyPass配置:
ProxyPass /project1/ http://127.0.0.2/
ProxyPass /project2/ http://127.0.0.3/
这会将所有请求从 发送/project1/
到http://127.0.0.2/
,如果您想隐藏此服务器,或者公众无法访问它(例如内部网络地址),您将需要设置反向代理,以便结果通过您的公众反馈给用户前端,因此您需要添加ProxyPassReverse配置:
ProxyPassReverse /project1/ http://127.0.0.2/
ProxyPassReverse /project2/ http://127.0.0.3/
除此之外,您还需要在配置文件中启用代理模块,这些是我为基本反向代理启用的
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
根据您的情况,还有一些其他模块可能很重要
mod_proxy_connect This handles the CONNECT function if connecting to https:// servers
mod_proxy_ftp This handles connections to FTP servers
mod_proxy_ajp This handles connections to tomcat/AJP servers
mod_headers This can modify response and request headers
mod_deflate This negotiates compression with backends
mod_proxy_html This is a 3rd party module which will rewrite HTML links to the proxy address space