我的设置:
运行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;标头出现在请求的资源“
上答案 0 :(得分:1)
通过创建一个单独的Vhost作为Node js的代理来解决它。将其命名为socket.mydomain.nl并且everyrthing运行良好