簡體   English   中英

Apache服務器上WebSocket的配置文件

[英]Config file for websockets on an Apache server

我對后端Web開發是完全陌生的,並且已經使用php創建了一個項目,但是現在我想使用websockets來提高一切效率。 為此,我將使用Ratchet。 我正在運行Apache 2.4.33。 當我嘗試運行測試文件時,出現400錯誤。 我還沒有服務器,也沒有域,希望在本地計算機上運行測試文件。 這是我的user.conf文件:

<VirtualHost *:80>
    ServerName localhost

    ProxyPreserveHost On
    ProxyPass / localhost:8080/
    ProxyPassReverse / http:localhost:8080/
    ProxyRequests Off
    RewriteEngine on
    RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]
    RewriteCond %{HTTP:CONNECTION} Upgrade$ [NC]
    RewriteRule .* ws://localhost:8080%{REQUEST_URI} [P]
</VirtualHost>

正如我提到的,每當我嘗試運行server.php代碼時,頁面就會顯示為“ HTTP ERROR 400”。 我的代碼可能存在問題,但我可以肯定地說這與設置conf文件的方式有關。

我的配置文件中有錯誤。 我運行apachectl -S來查找它們。 這是其他像我一樣努力工作的人的有效配置文件:

<Directory "/Users/User/Sites/ProjectFolder">
   AddLanguage en .en
   AllowOverride All
   Options Indexes MultiViews FollowSymLinks
   Require all granted
</Directory>

ProxyRequests Off
RewriteEngine On
RewriteCond %{HTTP:Connection} Upgrade [NC]
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteRule /(.*) ws://127.0.0.1:8080/$1 [P,L]
<VirtualHost localhost:8080>
        ProxyPass / ws://localhost:8080/
        ProxyPassReverse / ws://localhost:8080/
</VirtualHost>

如果您使用的是Ratchet,請確保已使用有效版本正確設置了composer.json。 然后通過運行php composer upgrade對其進行升級。 最后,請確保使用sudo apachectl restart重置apache服務器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM