我有一个服务器,有多个服务和工具,基于Web的用户界面(rundeck,jenkins,sonarqube,...),我希望devteam可以使用正确的URL访问,而不是服务器IP和端口。 IE: - companyName-rundeck.com - companyName-jenkins.com - companyName-sonarqube.com
这样做的最佳方法是什么?
答案 0 :(得分:1)
最常用于此目的的是某种reverse proxy。我将描述简单的Apache设置,但使用nginx或HAProxy配置它应该很容易。
出于示例目的,我们假设您在服务器上运行了3个服务:
首先,为了仅通过使用域名来区分服务,您需要在DNS中创建多个条目,将名称指向服务器IP地址:
jenkins.example.com A 192.0.2.2
sonar.example.com A 192.0.2.2
rundeck.example.com A 192.0.2.2
接下来,(如果您还没有这样做)安装Apache HTTP服务器:
yum install httpd
创建文件/etc/httpd/conf.d/proxy.conf
:
<VirtualHost *:80>
ServerName jenkins.example.com
ProxyPreserveHost On
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
</VirtualHost>
<VirtualHost *:80>
ServerName sonar.example.com
ProxyPreserveHost On
ProxyPass / http://localhost:9000/
ProxyPassReverse / http://localhost:9000/
</VirtualHost>
<VirtualHost *:80>
ServerName rundeck.example.com
ProxyPreserveHost On
ProxyPass / http://localhost:4440/
ProxyPassReverse / http://localhost:4440/
</VirtualHost>
(逻辑应该非常清楚,详细解释,请看the docs)
之后,只需启动httpd服务:service httpd start
。
setenforce 0
&amp;&amp; service httpd restart
)