簡體   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