我正在运行最新版本的 ubuntu,12.04。
我正在尝试通过虚假域访问我的 ruby on rails 应用程序,如我的 /etc/hosts 文件中所指定:
127.0.0.1 myapp.vhost
127.0.0.1 www.myapp.vhost
就 apache 而言,我添加了虚拟主机配置:
<VirtualHost *:80>
ServerName myapp.vhost
ServerAlias *.myapp.vhost
ProxyPass / http://localhost:3001/
ProxyPassReverse / http://localhost:3001/
ProxyPreserveHost on
</VirtualHost>
到文件 /etc/apache2/sites-available/myapp.conf
在 /etc/apache2/apache2.conf 中,我添加了
Include sites-available/
Include sites-available/myapp.conf
到文件底部。
我可以使用以下命令重新启动 apache,fin 并且不会出现错误:
sudo /etc/init.d/apache2 force-reload
问题是当我导航到http://myapp.vhost在我的浏览器中,出现 404 错误。
我在这里做错了什么?
注意:我的 ruby on rails 服务器在端口 3001 上运行,使用 script/server 的 -p3001 选项
答案1
从 /etc/apache2/apache2.conf 中删除“Include sites-available/myapp.conf”行,并将 /etc/apache2/sites-available/myapp.conf 重命名为 /etc/apache2/sites-available/myapp(即删除“.conf”后缀)。
然后发出sudo a2ensite myapp进而sudo 服务 apache2 重启。
这应该可以让你工作。
您可能还想更改您的 *ServerAlias.myapp.vhost线服务器别名 www.myapp.vhost然后尝试连接到http://www.myapp.vhost因为这是 /etc/hosts 中的条目,而不仅仅是域名。