同一IP上的Apache和Node

时间:2017-02-22 10:53:44

标签: node.js apache virtualhost

我有一个带有一个IP的VPS。我正在使用Apache来服务cloud.mysite.com,我有一个NodeJS应用程序正在侦听端口3000.

我正在尝试以某种方式配置我的VPS,以便在我访问mysite.com时获取我的NodeJS应用程序。

相反,当我访问mysite.com时,我会转发到cloud.mysite.com

我的.conf个文件位于下方。

mysite.com.conf

<VirtualHost mysite.com:80>   
    ServerName mysite.com

    ProxyPreserveHost On
    ProxyRequests off  
    ProxyPass / http://localhost:3000/
    ProxyPassReverse / http://localhost:3000/

</VirtualHost>

cloud.mysite.com

<VirtualHost cloud.mysite.com:80>

  ServerName cloud.mysite.com

  RewriteEngine on
  RewriteCond %{SERVER_NAME} =cloud.mysite.com
  RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]

</VirtualHost>

<VirtualHost cloud.mysite.com:443>

  # Basics
  ServerName www.cloud.mysite.com
  ServerAlias www.cloud.mysite.com
  # Next line puts ownCloud at the domain root instead of a /owncloud/ subdirectory (e.g. example.com vs. example.com/owncloud/)
  Alias /owncloud "/var/www/owncloud/"
  DocumentRoot /var/www/owncloud

  # SSTL STUFF GOES HERE

  # ownCloud
  <Directory /var/www/owncloud/>

    Options +FollowSymlinks
    AllowOverride All

    <IfModule mod_dav.c>
      Dav off
    </IfModule>

    SetEnv HOME /var/www/owncloud
    SetEnv HTTP_HOME /var/www/owncloud

  </Directory>

</VirtualHost>
SSLStaplingCache        shmcb:/var/run/ocsp(128000)

编辑:我通过清除缓存解决了这个问题。

1 个答案:

答案 0 :(得分:0)

如果它在同一主机上运行并侦听端口3000,它应该代理对您的Node应用程序的请求,如果不是,则应该失败 - 但不是代理对其他虚拟主机的请求。

确保重新启动Apache或在进行这些更改后重新加载配置,并确保新配置文件位于应用的位置并启用。