看了下文檔,win不支持workman的多線程模式,大體上看了下代碼,發(fā)現實現該功能需要基于pcntl模塊,而該模塊在win下并不支持,所以導致workman在win下最多支持256個并發(fā)鏈接。但是在某些特定環(huán)境下,因為某些客觀原因導致的,無法更換服務器,也無法更換操作系統(tǒng),所以想了一些曲線救國的方法,希望大佬來指點一二
?
1.nginx+workman
?通過nginx的tcp轉發(fā)和負載均衡,將一個端口的設備鏈接,分發(fā)到4個實現相同功能的端口,同時在workman下開啟多個端口服務,這樣不知道能不能撐起1024臺設備
2.workman+cygwin
cygwin提供了一個小型的unix虛擬環(huán)境,對于服務器資源有限,或者無法在阿里云/百度云上安裝虛擬機(查了一些例子,發(fā)現在虛擬主機上運行虛擬機,效率很低,性能較差。自己也試了試,啟動虛擬機服務器就死機)的同學,似乎提供了一線生機,但是仔細看一下就會發(fā)現,Cygwin的PHP版本好像也是win下的,其php.ini文件所提供的擴展方式似乎是dll,而非linux下的so,所以不知道是不是自己的方法有問題,還請大神賜教
3.nginx+workman+內網linux服務器
這個就很簡單了,nginx+端口轉發(fā)內網的linux服務,然后將workman部署與linux,估計這個方法實現起來應該是最簡單的,成功可能性也更高,多花一筆銀子買個linux服務咯
還請大佬們指點一下,方法12是否可行
辦法1可行,nginx接收 worker 開10個進程監(jiān)聽10個端口 nginx分別轉發(fā)到不同進程的端口上,保守一個最多200 ,10個進程就是2000 了,超過1024