[英]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.