运行命令(export PORT=3000 && node server.js)
后,我的node.js应用程序(_without())将在:http://example.com:3000/
提供。
考虑到Apache已经在服务器上使用端口80,命令(export PORT=80 && node server.js)
将不起作用。
由于我是Node.js的新手,在http://example.com/
(即端口80)上提供node.js应用程序的简单方法是将Apache设置为反向代理。
在/etc/apache2/sites-available/example.com.conf
试用(1):
<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 app。
试用(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页面。
我在这里缺少什么?
答案 0 :(得分:0)
将您的位置指令更改为
<Location /> from <Location /var/www/example.com/public>
基本上,Location指令是URL
的路径组件的前缀