这只是我的项目。它正在成长,我想在同一个域上添加一个新服务器作为子目录。是否可以创建子目录,如:
example.com 127.0.0.1
example.com/project1/ 127.0.0.2
example.com/project2/ 127.0.0.3
我如何配置DNS或Apache以使其正常工作?
答案 0 :(得分:2)
听起来您想要实现可以使用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