2015-12-04 38 views
1

我的設置:Apache託管php網站和節點js的代理CORS

apache 2.22虛擬主機運行可在chat.mydomain.nl訪問的php聊天。 根文件夾/ var/www/NEWchat /。

一個Node js服務器沒有提供任何webcontent,而是傳遞信息和信號。節點js服務器的名稱爲server.js,在端口1900上偵聽並駐留在/ var/www/socket的文件夾中。

我只是想能夠代理客戶端對socketserver的請求。 在客戶端的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,並從客戶端指向:

插座= 10 .connect('http://chat.mydomain.nl:1900');

和AL我得到的是:

「否‘訪問控制允許來源’標頭出現在所請求的資源」

+0

通過創建一個單獨的Vhost作爲Node js的代理來解決此問題。將它命名爲socket.mydomain.nl,並且everyrthing運行良好。 – ingridsede

回答

0

通過創建一個單獨的虛擬主機作爲代理的節點JS解決它。將其命名爲socket.mydomain.nl,並且everyrthing運行良好