> PHP 프레임워크 > Laravel > laravel9과 laravels의 성능 대결!

laravel9과 laravels의 성능 대결!

藏色散人
풀어 주다: 2022-11-28 20:41:10
앞으로
2270명이 탐색했습니다.

서문: 최근 swoole을 사용하여 websocket을 사용해 보고 싶습니다. 방금 laravel과 swoole의 성능을 테스트해 보았습니다. laravel9의 성능이 잘 최적화되었는지 모르겠습니다. 최종 스트레스 테스트 결과는 거의 같습니다. laravels의 것입니다~

Laradock은 swoole을 설치합니다

laravel9과 laravels의 성능 대결!

실습 후 문제가 발생했습니다.
laravel9과 laravels의 성능 대결!

원본 PHP 버전은 7.4이므로 .env 파일을 수정하고 버전을 8.0 이상으로 변경합니다(Laravels에서는 설치 시 PHP가 8.1이어야 하므로 여전히 8.1 버전으로 설정되어 있습니다).
laravel9과 laravels의 성능 대결!

빌드 명령을 다시 실행한 후 성공했습니다. [추천: laravel 비디오 튜토리얼]

확인 결과:
laravel9과 laravels의 성능 대결!

Configuring laravels' http server

1. laravel 프로젝트 설치

많은 튜토리얼이 있습니다. 여기에서 참조하세요: Laravel 9 중국어 문서 - 설치

docker가 설치된 환경 기준

curl -s "https://laravel.build/laravel9" | bashCopy
로그인 후 복사

2. laravels 설치

composer require hhxsv5/laravel-sCopy
로그인 후 복사

3. laravels 구성 게시

php artisan laravels publishCopy
로그인 후 복사

4. s: 프로젝트 코드 해당 사이트는 / var/www/laravel9/public

(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
로그인 후 복사

(2) 일반 laravel 프로젝트 구성 Site
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
로그인 후 복사

(4) 컨테이너 재구축

docker-compose stop
docker-compose build workspace nginx
docker-compose up -d redis mysql nginx workspaceCopy
로그인 후 복사

laravel9과 laravels의 성능 대결!(5) 작업 공간 컨테이너를 입력하여 laravels 시작

컨테이너 명령을 입력하세요:

docker exec -it d4940755a928 /bin/bashCopy
로그인 후 복사

laravel9과 laravels의 성능 대결!

AB 성능 테스트 결과

핵심 초점은 초당 요청 수(초당 요청 수)입니다
  • 모두 Laradock 환경을 기반으로 합니다
  • 공유 동일한 프로젝트 코드
  • 1. 총 요청 수는 100개이며, 동시 요청 수는 10개입니다(왼쪽이 swoole, 오른쪽이 laravel9):


laravel9과 laravels의 성능 대결!2. 1000, 동시 요청 수는 20입니다(왼쪽은 swoole, 오른쪽은 laravel9).


laravel9과 laravels의 성능 대결!차이가 뚜렷하지 않지만, 때로는 laravel9의 결과가 더 좋을 때도 있습니다~

원본 주소 : https://learnku.com/articles/73575

위 내용은 laravel9과 laravels의 성능 대결!의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:learnku.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿