我知道这个问题有很多答案,但不知何故,没有一个能帮助我。我有一个 Ubuntu,运行 3 个 Web 应用程序,每个都在不同的端口 (8080-8282) 上 - jira、confluence 和另一个。现在我购买了一个域名,并将三个子域与我的服务器的 IP 地址绑定,问题是它们都指向同一个 IP 地址和端口 80。所以我想我现在需要 Apache 服务器。现在我希望 apache 执行的是重定向:
- wiki.mydomain.com 至http://wiki.mydomain.com:8080
- jira.mydomain.com 至http://jira.mydomain.com:8181
- myapp.mydomain.com 至http://myapp.mydomain.com:8282
最好不要显示端口。据我所知,我应该在 /etc/apache2/httpd.conf 中添加几行,所以我尝试了(这实际上是我的整个 /etc/apache2/httpd.conf):
RewriteEngine on
RewriteCond %{HTTP_HOST} http://jira.mydomain.com/
RewriteRule ^(.*)$ http://jira.mydomain.com:8181 [L,R]
RewriteCond %{HTTP_HOST} http://wiki.mydomain.com/
RewriteRule ^(.*)$ http://wiki.mydomain.com:8080 [L,R]
但它不起作用(每当我尝试例如 wiki.mydomain.com 时,我都会得到默认的 Apache 站点)。那么我在这里遗漏了什么?(我知道为了能够隐藏端口号,我必须使用代理,但首先我只想启用重定向)。
答案1
我会尝试以这种方式使用 apache
使用 Vhosts 和 mod_proxy
它很粗糙(不要指望剪切和粘贴):)
<VirtualHost jira.mydomain.com:*>
ProxyPreserveHost On
ProxyPass / http://jira.mydomain.com:8181/
ProxyPassReverse / http://jira.mydomain.com:8181/
ServerName jira.mydomain.com
</VirtualHost>
<VirtualHost wiki.mydomain.com:*>
ProxyPreserveHost On
ProxyPass / http://wiki.mydomain.com:8080/
ProxyPassReverse / http://wiki.mydomain.com:8080/
ServerName wiki.mydomain.com
</VirtualHost>