서문: 최근 swoole을 사용하여 websocket을 사용해 보고 싶습니다. 방금 laravel과 swoole의 성능을 테스트해 보았습니다. laravel9의 성능이 잘 최적화되었는지 모르겠습니다. 최종 스트레스 테스트 결과는 거의 같습니다. laravels의 것입니다~
Laradock은 swoole을 설치합니다
실습 후 문제가 발생했습니다.
원본 PHP 버전은 7.4이므로 .env 파일을 수정하고 버전을 8.0 이상으로 변경합니다(Laravels에서는 설치 시 PHP가 8.1이어야 하므로 여전히 8.1 버전으로 설정되어 있습니다).
빌드 명령을 다시 실행한 후 성공했습니다. [추천: laravel 비디오 튜토리얼]
확인 결과:
Configuring laravels' http server
많은 튜토리얼이 있습니다. 여기에서 참조하세요: Laravel 9 중국어 문서 - 설치
docker가 설치된 환경 기준
curl -s "https://laravel.build/laravel9" | bashCopy
composer require hhxsv5/laravel-sCopy
php artisan laravels publishCopy
(1) laravels
upstream laravels { # Connect IP:Port server workspace:5200 weight=5 max_fails=3 fail_timeout=30s; keepalive 16; } server { listen 80; server_name swoole.test; root /var/www/laravel9/public; index index.php index.html index.htm; # Nginx 处理静态资源,LaravelS 处理动态资源 location / { try_files $uri @laravels; } location @laravels { proxy_http_version 1.1; proxy_set_header Connection ""; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Real-PORT $remote_port; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header Scheme $scheme; proxy_set_header Server-Protocol $server_protocol; proxy_set_header Server-Name $server_name; proxy_set_header Server-Addr $server_addr; proxy_set_header Server-Port $server_port; proxy_pass http://laravels; } error_log /var/log/nginx/swoole_test_error.log; access_log /var/log/nginx/swoole_test_access.log; }
의 http 서버 구성 참고: laravels 프로젝트는 laravel9 프로젝트 아래의 .env 파일에 다음 구성을 추가해야 합니다.
LARAVELS_LISTEN_IP=workspace LARAVELS_DAEMONIZE=trueCopy
server { listen 80; listen [::]:80; # For https # listen 443 ssl; # listen [::]:443 ssl ipv6only=on; # ssl_certificate /etc/nginx/ssl/default.crt; # ssl_certificate_key /etc/nginx/ssl/default.key; server_name laravel.test; root /var/www/laravel9/public; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php$is_args$args; } location ~ \.php$ { try_files $uri /index.php =404; fastcgi_pass php-upstream; fastcgi_index index.php; fastcgi_buffers 16 16k; fastcgi_buffer_size 32k; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; #fixes timeouts fastcgi_read_timeout 600; include fastcgi_params; } location ~ /\.ht { deny all; } location /.well-known/acme-challenge/ { root /var/www/letsencrypt/; log_not_found off; } error_log /var/log/nginx/laravel_error.log; access_log /var/log/nginx/laravel_access.log; }
(3) 로컬 호스트 구성
127.0.0.1 swoole.test127.0.0.1 laravel.testCopy
docker-compose stop docker-compose build workspace nginx docker-compose up -d redis mysql nginx workspaceCopy
(5) 작업 공간 컨테이너를 입력하여 laravels 시작
컨테이너 명령을 입력하세요:
docker exec -it d4940755a928 /bin/bashCopy
AB 성능 테스트 결과
핵심 초점은 초당 요청 수(초당 요청 수)입니다
2. 1000, 동시 요청 수는 20입니다(왼쪽은 swoole, 오른쪽은 laravel9).
차이가 뚜렷하지 않지만, 때로는 laravel9의 결과가 더 좋을 때도 있습니다~
원본 주소 : https://learnku.com/articles/73575
위 내용은 laravel9과 laravels의 성능 대결!의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!