[php] Nginx PHP 웹소켓 프록시 설정

웹 소켓을 사용하는 PHP 애플리케이션을 Nginx 프록시로 연결하고자 할 때에는 몇 가지 추가적인 설정이 필요합니다. 아래는 이러한 설정을 구체적으로 설명한 것입니다.

웹 소켓 프록시 설정

웹 소켓을 PHP 애플리케이션으로 프록시하기 위해서는 Nginx 서버 설정에 WebSocket 프로토콜을 지원하도록 추가해야 합니다. 아래는 WebSocket을 사용하는 PHP 애플리케이션을 프록시하는 Nginx 서버 블록의 예시입니다.

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://php_upstream;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }

    location /ws {
        proxy_pass http://php_upstream;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }

    location ~* \.php$ {
        # PHP FastCGI 설정
    }

    location ~ /\. {
        deny all;
    }

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;
}

위 설정에서 /ws 경로는 웹 소켓 연결을 위한 것으로, 이 경로를 통해 WebSocket 요청을 PHP 애플리케이션으로 프록시합니다.

PHP 업스트림 설정

위 설정에서 proxy_pass 지시문은 PHP 애플리케이션이 실행 중인 엔드포인트로 설정되어 있습니다. 해당 엔드포인트는 PHP FastCGI 소켓 또는 서버 주소일 수 있으며, 이에 따라 구성이 달라질 수 있습니다.

upstream php_upstream {
    server 127.0.0.1:9000;
    # 다른 PHP FastCGI 서버 추가
}

해당 엔드포인트는 PHP FastCGI 서버 또는 소켓에 맞게 구성되어야 합니다.

이제 Nginx를 사용하여 PHP 애플리케이션의 웹 소켓을 프록시할 수 있습니다.

참고 자료

결론

Nginx를 사용하여 PHP 애플리케이션의 웹 소켓을 프록시하는 설정 방법에 대해 알아보았습니다. 이러한 설정을 통해 Nginx를 사용하여 웹 소켓을 PHP 애플리케이션으로 쉽게 연결할 수 있습니다.


이 예시는 서버와 PHP 환경에 따라 구체적인 설정이 달라질 수 있습니다.