Swoole은 PHP 언어용 경량 고성능 네트워크 통신 라이브러리로, PHP 애플리케이션의 성능과 확장성을 크게 향상시켰습니다. Nginx는 널리 사용되는 웹 서버이며 역방향 프록시 및 로드 밸런싱에도 널리 사용됩니다. Swoole에서 Nginx의 역방향 프록시와 로드 밸런싱을 사용하면 Swoole을 더 잘 활용할 수 있습니다. 다음은 Nginx를 사용하여 Swoole 리버스 프록시 및 로드 밸런싱을 구현하는 방법에 대한 튜토리얼입니다.
먼저 Nginx를 설치해야 하며 다음 명령을 통해 설치할 수 있습니다.
sudo apt-get update sudo apt-get install nginx
설치가 완료된 후 Nginx를 구성해야 합니다. 구성 파일은 /etc/nginx/sites-available/default.conf에 있습니다. 편집할 파일을 열고 다음 내용으로 수정합니다.
upstream swoole { server 127.0.0.1:9501 weight=10 max_fails=3 fail_timeout=30s; server 127.0.0.1:9502 weight=5 max_fails=3 fail_timeout=30s; } server { listen 80; server_name example.com; location / { proxy_pass http://swoole; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
위 구성 파일에서 Swoole 서비스에서 모니터링하는 두 개의 주소와 가중치를 포함하는 swoole이라는 업스트림을 정의했습니다. 또한 포트 80을 수신하고 역방향 프록시를 통해 Swoole 클러스터에 요청을 배포하도록 가상 호스트를 설정했습니다.
다음으로 Nginx에서 전달한 요청을 받기 위한 간단한 Swoole 서비스를 작성해야 합니다. 다음은 간단한 샘플 코드입니다.
<?php $http = new SwooleHttpServer("0.0.0.0", 9501); $http->on('request', function ($request, $response) { $response->header("Content-Type", "text/plain"); $response->end("Hello World "); }); $http->start();
위 코드에서는 포트 9501에서 수신 대기하는 Swoole Http 서비스를 생성하고 요청 콜백 함수에 Hello World 문자열을 반환했습니다.
다음 명령을 실행하여 Swoole 서비스를 시작하세요.
php server.php
이 시점에서 Swoole 서비스는 성공적으로 시작되었으며 포트 9501에서 수신 대기 중입니다.
마지막으로 다음 명령을 실행하여 Nginx를 시작합니다.
sudo service nginx start
이 시점에서 Nginx는 성공적으로 시작되었으며 http://example.com/을 방문하면 Swoole 서비스의 응답을 테스트할 수 있습니다. .
Nginx의 로드 밸런싱 기능을 테스트하기 위해 다른 Swoole Http 서비스를 시작하여 다른 서버를 시뮬레이션하고 다음 명령을 실행하여 시작할 수 있습니다.
php server.php --port=9502
이번에는 Nginx 구성에서 파일에서 Swoole 클러스터의 한 포트 가중치를 10으로 정의하고 다른 포트의 가중치를 5로 정의합니다. 즉, Nginx는 요청의 약 2/3를 포트 9501로 전달하고 요청의 1/3을 포트 9502로 전달합니다. 브라우저에서 http://example.com/을 여러 번 새로 고치면 로드 밸런싱 기능을 테스트할 수 있습니다.
Summary
위 작업을 통해 Swoole에서 Nginx의 역방향 프록시 및 로드 밸런싱 기능을 성공적으로 구현했습니다. Nginx의 역방향 프록시 및 로드 밸런싱 기능은 Swoole 애플리케이션에서 요청을 더 잘 분산하고 동적 웹사이트의 동시성과 안정성을 향상시키는 데 도움이 될 수 있습니다.
위 내용은 Swoole에서 Nginx 역방향 프록시 및 로드 밸런싱 사용에 대한 튜토리얼의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!