Apache托管php网站和节点js CORS代理

时间:2015-12-04 21:10:01

标签: node.js apache

我的设置:

运行php聊天的apache 2.22虚拟主机可在chat.mydomain.nl上访问。 根文件夹/ var / www / NEWchat /.

节点js服务器不提供任何webcontent,但用于传递信息和信令。节点js服务器的名称为server.js,侦听端口1900并驻留在/ var / www / socket的文件夹中。

我只想将客户端发出的请求代理到socketserver。 在客户端的javascript中,socketserver的地址是:         socket = io.connect(' http://mydomain.nl:1900');

没有代理就行了!

然后我编辑运行网站chat.mydomain.nl的虚拟主机上的指令,如:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
documentRoot /var/www/NEWchat
<Directory "/var/www/NEWchat">
allow from all
Options +Indexes
</Directory>
ServerName chat.mydomain.nl
Alias /uploads /var/uploads
ErrorLog /var/mydomainlog/log.log
LogLevel emerg
SSLEngine off
SSLCertificateFile /etc/letsencrypt/live/chat.mydomain.nl/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/chat.mydomain.nl/privkey.pem
SSLCACertificateFile /etc/letsencrypt/live/chat.mydomain.nl/chain.pem
ProxyRequests Off
ProxyPreserveHost On

<Proxy *>
    Order deny,allow
    Allow from all
</Proxy>
ProxyPass /socket http://localhost:1900
ProxyPassReverse /socket http://localhost:1900
<Location /socket >
    Order allow,deny
    Allow from all
</Location>

重新启动apache并从客户端指向:

socket = io.connect(&#39; http://chat.mydomain.nl:1900&#39;);

我得到的是:

“No&#39; Access-Control-Allow-Origin&#39;标头出现在请求的资源“

1 个答案:

答案 0 :(得分:1)

通过创建一个单独的Vhost作为Node js的代理来解决它。将其命名为socket.mydomain.nl并且everyrthing运行良好