【发布时间】:2015-12-16 04:22:16
【问题描述】:
我想做什么
运行命令 (export PORT=3000 && node server.js) 后,我的 node.js 应用程序 (StackEdit) 服务于:http://example.com:3000/。
考虑到 Apache 已经使用服务器上的 80 端口,命令 (export PORT=80 && node server.js) 将无法工作。
由于我是 Node.js 的新手,让 node.js 应用程序在 http://example.com/(即端口 80)可用的一种简单方法是将 Apache 设置为反向代理。
这是我尝试过的
在/etc/apache2/sites-available/example.com.conf
试用(一):
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/example.com/public
ErrorLog /var/www/example.com/logs/error.log
CustomLog /var/www/editor.aahanblog.com/logs/access.log combined
ProxyPass / http://example.com:3000/
ProxyPassReverse / http://example.com:3000/
</VirtualHost>
这只是显示public 目录的目录列表。因此,在这种情况下,请求没有到达 node.js 应用程序。
试用(2):
<VirtualHost *:80>
ServerName example.com
ServerAlias *.example.com
DocumentRoot /var/www/example.com/public
ErrorLog /var/www/example.com/logs/error.log
CustomLog /var/www/example.com/logs/access.log combined
ProxyRequests off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
<Location /var/www/example.com/public>
ProxyPass http://mydomain:3000/
ProxyPassReverse http://mydomain:3000/
</Location>
</VirtualHost>
这也不起作用。它会将我带到一些默认的 apache 页面。
我在这里缺少什么?
【问题讨论】:
标签: node.js apache proxy apache2 reverse-proxy