繁体   English   中英

Nginx + PHP,Node.js和jQuery设置

[英]Nginx + PHP, Node.js and jQuery setup

我想为现有的PHP应用程序实现一些实时元素。 所以我安装了Node.js并将其设置为侦听端口,比如说3000,因为Nginx服务器当前正在端口80上运行我的PHP应用程序。

到目前为止,节点服务器运行良好,我可以使用cURL从php中找到它。 现在的问题是,我需要打开一个从html(由ngix上的PHP框架服务)到localhost / index.html的节点到localhost:3000的节点服务器的连接。 因此,这意味着不得不进行跨域Ajax调用,而且会变得凌乱。.对于那些尚未尝试使用Ajax的人,基本上不可能(没有难看的黑客手段)在同一服务器的子域或其他端口上进行Ajax调用。

有人会看到一种更好的方法来实现整个设置吗?

您使用Nginx走上了正确的道路。 由于您必须位于相同的域和端口上,因此可以将某个文件夹请求重定向到您的节点。 像这样:

  location ~ /ajax/* {                                                  
    proxy_pass http://127.0.0.1:8080;                                                                
    break;                                                                                                        
  }

另一种解决方案是使用CORS: http : //enable-cors.org/在IE之外的所有现代浏览器中,它都能很好地工作。

即使不知道全部目的,我也不会公开自制的服务器设置。 但是,如果确实需要,可以通过脚本标签代理以老式的方式进行操作。 <script src="http://external.host.com:..." )。

您可以将url参数request_id附加到脚本地址,并使该脚本以if(typeof($)==='object' && typeof($.trigger)==='function')$.trigger('requestCompleted',request_id);的形式返回请求ID if(typeof($)==='object' && typeof($.trigger)==='function')$.trigger('requestCompleted',request_id); 这样的事情。

您可以将其设置为对请求进行反向代理...将AJAX调用发送到您的主域,例如example.com/?proxy=live&restofrequest。 让nginx将其重写为node.js服务器的适当domain:port。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM