我正在尝试运行一个使用forever在我们的服务器上的nodejs中编写的小应用程序。当我这样启动我的应用程序时:
forever app.js
在我的文件夹
/home/me/apps/myapp/
中,该应用程序正在监听端口61000mydomain.me/myapp/
下的.htaccess文件的内容应该是什么?当前
.htaccess
内容(不起作用):RewriteEngine On
# Redirect a whole subdirectory:
RewriteRule ^myapp/(.*) http://localhost:61000/$1 [P]
最佳答案
您应该使用Apache mod_proxy而不是mod_rewrite在Apache中运行Node.js应用程序:
<VirtualHost :80>
ServerName example.com
ProxyRequests off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
<Location /myapp>
ProxyPass http://localhost:61000/
ProxyPassReverse http://localhost:61000/
</Location>
</VirtualHost>
如果您无法为Node应用添加虚拟主机,则可以尝试使用htaccess和类似的方法:
RewriteEngine On
RewriteRule ^/myapp$ http://127.0.0.1:61000/ [P,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/myapp/(.*)$ http://127.0.0.1:61000/$1 [P,L]