ラチェット websocket を使用して websocket アプリケーションをセットアップしています。私のセットアップは次のとおりです。私は(する必要があります)nginxサーバーをリバースプロキシとして使用し、Websocketラチェットサーバーにリクエストを転送します:
location /websocket {
proxy_pass http://websocket;
proxy_http_version 1.1;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_redirect off;
}
私の websocket アプリ内で、IP フィルタリングのために X-Real-IP の値 ($remote_addr) を取得する必要があります。このプロキシ ソリューションを使用する必要があるため、関数 stream_socket_get_name を使用すると、リモート IP として常に IP 127.0.0.1 を取得します。
私が調査した限り、この問題のラチェットは stream_socket_server を開始し、着信接続のリッスンを開始します。これらの接続はすでにストリームであり、http 要求ではないため、$_SERVER などを使用することはできません。
この値を取得する方法を知っている人はいますか?
よろしく
マーカス