node.js - Apache 托管 php 网站和 Node js CORS 代理

标签 node.js apache

我的设置:

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

Node js 服务器不提供任何 Web 内容,但用于传递信息和信号。 Node js 服务器的名称为 server.js,监听端口 1900 并驻留在/var/www/socket 的文件夹中。

我只是希望能够代理客户端向套接字服务器发出的请求。 在客户端的 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(' http://chat.mydomain.nl:1900 ');

我得到的是:

“请求的资源上不存在‘Access-Control-Allow-Origin’ header ”

最佳答案

通过创建一个单独的 Vhost 作为 Node js 的代理来解决这个问题。将其命名为 socket.mydomain.nl 并且一切正常

关于node.js - Apache 托管 php 网站和 Node js CORS 代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34097491/

相关文章:

javascript - sails .js : Add custom instace method result as a model property

javascript - 如何从包含来自另一个应用程序的数据库查询的 Node.js 函数获取返回值

c++ - Node.js 的原生 C++ 扩展 : "cloning" a Local< Value > in the constructor

apache - .htaccess if/else 取决于 {SERVER_NAME}?

Apache 2.2 PHP-FPM,浏览器中禁止接收 403 的 php 文件

javascript - node/js 在再次运行之前停止该函数

javascript - 捕获 ES6 promise 中的错误

php - X调试错误: "Failed loading xdebug.so: xdebug.so: cannot open shared object file: No such file or directory"

php - 与同一 python 脚本的多个实例共享变量的最佳方法

mysql - 如何在phpmyadmin MySql中导入记事本.txt文件