Apache Apache / 2.4.7(Ubuntu)ProxyPass

时间:2015-07-24 14:07:58

标签: apache reverse-proxy apache2.4

我正在尝试使用这个文件(尽可能简单)配置一个简单的ProxyPass链接在/ etc / apache2 / sites-enable表单sites-avalable(同样的文件似乎可以在apache 2.2上工作但是我可能已经完成了在以前的安装上的其他配置,我不记得那些配置) 注意我使用IPADDRESS而不是服务器名称,但我认为这不是问题。 注2:我不是apache web服务器专家:)!

ServerName IP_SERVER_ADDRESS

# Redmine
ProxyPass        /redmine   http://IP_SERVER_ADDRESS:8555/redmine

# test1
ProxyPass        "/test1"   "http://IP_SERVER_ADDRESS:9180/test1/"
ProxyPassReverse "/test1"   "http://IP_SERVER_ADDRESS:9180/test1/"

# test2
ProxyPass        /test2   http://IP_SERVER_ADDRESS:8880/test2
ProxyPassReverse /test2   http://IP_SERVER_ADDRESS:8880/test2

DocumentRoot /var/www

但它不起作用,所以网址

http://IP_SERVER_ADDRESS:8880/test2

工作正常,但代理网址

http://IP_SERVER_ADDRESS/test2

无效,错误

Not Found

The requested URL /redmine was not found on this server

apache2ctl -S的输出似乎很奇怪,因为显然没有使用VirtualHost配置(?)

VirtualHost configuration:
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex proxy: using_defaults
Mutex default: dir="/var/lock/apache2" mechanism=fcntl
Mutex watchdog-callback: using_defaults
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="www-data" id=33
Group: name="www-data" id=33

很确定我错过了一些简单的事情,但我找不到它!

1 个答案:

答案 0 :(得分:1)

这个答案在Apache Apache / 2.4.7(Debian)ProxyPass中进行了测试。

请参阅/etc/apache2/apache2.conf:

# Include the virtual host configurations:
IncludeOptional sites-enabled/*.conf

以前的版本是

# Include the virtual host configurations:
Include sites-enabled/

所以基本上在apache 2.4(Debian和派生)中你必须使用带有.conf扩展名的文件来限制头痛...... 在Apache 2.2中,不需要文件名中的.conf扩展名。

其他细节:

  1. 在启用网站的配置文件(指向网站的软链接)中必须有一个扩展名.conf所以WHATEVER_YOU_WANT。 conf
  2. 您必须使用a2ensite来启用配置,因为如果站点中的文件可用没有“正确”扩展名“.conf”,则说“ERROR:Site WHATEVER_YOU_WANT不存在!”。因此,例如,如果您使用名为 mysite 的文件并尝试使用命令“a2ensite mysite”启用配置mysite,则会收到错误消息。如果您使用名为 myfile.conf 的文件,则相同的命令将正常工作...如果您在启用了站点的情况下手动创建一个软链接到没有“conf”扩展名的conf文件,该网站将不会工作!!
  3. 您可以在站点中创建一个软链接 - 具有正确的扩展名(.conf)到一个文件,没有在站点可用的正确扩展名alredy。在这种情况下,配置将起作用,但如果您使用a2dissite来禁用该站点,则会显示“ERROR:Site WHATEVER_YOU_WANT不存在!”
  4. 找到解决方案后,我找到了一些链接 https://www.linode.com/docs/security/upgrading/updating-virtual-host-settings-from-apache-2-2-to-apache-2-4