我目前正在工作的Apacheconfiguration一切运行在端口80(通常),但我要添加一个节点代理到前端,这将监听80并转发到其他Web服务器根据主机请求。
这时我的httpd.conf文件是空的,ports.conf文件如下所示
NameVirtualHost *.80 Listen 80
在我的网站内 – 可用我有名为“博客”的configuration文件 – 该文件具有特定的虚拟主机
<VirtualHost *:80> ServerName www.mysite.com:80 DocumentRoot /www/blog.mysite.com/current/static
我应该修改什么,如果我只是想让Apache像现在一样工作 – 除了在9000端口?
下面列出了Apache的信息 – 在Ubuntu 12.04上新安装
root@mybox:/etc/apache2# apache2 -v Server version: Apache/2.2.22 (Ubuntu)
更新1
如果我将每个vhost和ports.conf从80更改为9000并重新启动-apache将不会在该端口上提供任何东西(请注意,端口80仍按照您的预期提供所有内容)
我需要修改文件中的行* .80吗? 如果是的话? 127.0.0.1:9000还是?
更新2
如果我修改NameVirtualHost是所有我的vhosts / ports.conf中的*:9000,我得到下面的错误
root@mybox:/etc/apache2/sites-available# service apache2 restart * Restarting web server apache2 [Sat Jul 21 12:24:56 2012] [warn] _default_ VirtualHost overlap on port 9000, the first has precedence [Sat Jul 21 12:24:56 2012] [warn] _default_ VirtualHost overlap on port 9000, the first has precedence [Sat Jul 21 12:24:56 2012] [warn] NameVirtualHost *:80 has no VirtualHosts ... waiting [Sat Jul 21 12:24:57 2012] [warn] _default_ VirtualHost overlap on port 9000, the first has precedence [Sat Jul 21 12:24:57 2012] [warn] _default_ VirtualHost overlap on port 9000, the first has precedence [Sat Jul 21 12:24:57 2012] [warn] NameVirtualHost *:80 has no VirtualHosts
您应该只是将所有出现的80到9000 ,然后重新启动您的networking服务器。
service apache2 restart
这很简单,把所有的事情都改成80到9000 。 configuration代理时,只需要将其指向端口9000。
完成更改后,请不要忘记重新启动apache服务器:
sudo /etc/init.d/apache2 restart
或者:
加:
export VHOST_PORT_HTTP=9000
到/ etc / apache2 / envvars
更改:
NameVirtualHost *:80 Listen 80
至
NameVirtualHost *:${VHOST_PORT_HTTP} Listen ${VHOST_PORT_HTTP}
在/etc/apache2/ports.conf中
并在每个虚拟主机的顶部,使用:
<VirtualHost *:${VHOST_PORT_HTTP}>
然后,您可以通过更改/ etc / apache2 / envvars中的值并重新启动来同时控制所有虚拟主机的HTTP端口。 方便,如果你需要绕过代理匆忙。