目标是使用nodejs侦听端口80,而不会杀死apache。
我必须说我在网络中的知识是非常基本的。
更新
我正在尝试在我的本地计算机上使用ProxyPass
ProxyPassReverse
但是出了点问题。
Alias /test /media/www-dev/public/test
<Directory /media/www-dev/public/test>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
ProxyRequests off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
<Location />
ProxyPass /test http://localhost:3000/
ProxyPassReverse /test http://localhost:3000/
</Location>
当我在浏览器上启动http://localhost/test
时,我收到一条消息Cannot GET /test/
,如果我停止收听端口3000,那么我得到503 Service Temporarily Unavailable
我的节点应用正在侦听港口3000。
如果选择“代理”行,我可以再次访问网址http://localhost/test
。
为什么我无法访问网址http://localhost/test
?是因为代理尝试按照别名/测试的路径来到达http://localhost:3000/
吗?
谢谢!
答案 0 :(得分:3)
您需要在apache中为您的节点应用和代理创建一个虚拟主机。
这是我的/etc/apache/sites-available/dogself.com
中的样子<VirtualHost 69.164.218.75:80>
ServerName dogself.com
ServerAlias www.dogself.com
DocumentRoot /srv/www/dogself.com/public_html/
ErrorLog /srv/www/dogself.com/logs/error.log
CustomLog /srv/www/dogself.com/logs/access.log combined
ProxyRequests off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
<Location />
ProxyPass http://localhost:3000/
ProxyPassReverse http://localhost:3000/
</Location>
</VirtualHost>
听起来你需要做很多研究才能让它工作。开始阅读文档
答案 1 :(得分:2)
虚拟主机的替代方法如下
<VirtualHost *:80>
ServerAdmin info@DOMAIN.com
ServerName DOMAIN.com
ServerAlias www.DOMAIN.com
ProxyRequests off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
<Location />
ProxyPass http://localhost:3000/
ProxyPassReverse http://localhost:3000/
</Location>
</VirtualHost>
要修复内部服务器错误,只需启用正确的apache扩展。
sudo a2enmod proxy_http
sudo service apache2 restart