Maison  >  Article  >  cadre php  >  Concours de performances entre laravel9 et laravels !

Concours de performances entre laravel9 et laravels !

藏色散人
藏色散人avant
2022-11-28 16:14:452214parcourir

Avant-propos : Récemment, je souhaite utiliser swoole pour essayer websocket. Je viens d'installer et de tester les performances de laravel et de swoole. Je ne sais pas si les performances de laravel9 sont bien optimisées. celui de laravels~

Laradock installe swoole

Concours de performances entre laravel9 et laravels !

J'ai rencontré un problème après une opération pratique :
Concours de performances entre laravel9 et laravels !

Parce que la version originale de PHP est 7.4, vous devez modifier le fichier .env et changer de version à 8.0 et supérieure (Laravels nécessite que PHP soit 8.1 lors de l'installation, il est donc toujours défini sur la version 8.1) :
Concours de performances entre laravel9 et laravels !

Après avoir exécuté à nouveau la commande build, elle a réussi. [Recommandé : Tutoriel vidéo Laravel]

Résultats de la vérification :
Concours de performances entre laravel9 et laravels !

Configuration du serveur http de Laravels

1. Installer le projet Laravel

Il existe de nombreux tutoriels, vous pouvez vous référer ici : Documentation chinoise de Laravel 9 - Installation

Basé sur un environnement avec docker installé

curl -s "https://laravel.build/laravel9" | bashCopy

2 Installez laravels

composer require hhxsv5/laravel-sCopy

3. Publier la configuration de laravels

php artisan laravels publishCopy

4. Instructions : Les codes du projet correspondant au site sont /var/www/laravel9/public

(1) Configurez le serveur http de 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;
}

Remarque : Le projet laravels doit ajouter la configuration suivante au fichier .env sous le projet laravel9 :

LARAVELS_LISTEN_IP=workspace
LARAVELS_DAEMONIZE=trueCopy
(2) Configurez le site du projet Laravel ordinaire
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) Configuration de l'hôte local

127.0.0.1 swoole.test127.0.0.1 laravel.testCopy
(4) Reconstruisez le conteneur

docker-compose stop
docker-compose build workspace nginx
docker-compose up -d redis mysql nginx workspaceCopy

Concours de performances entre laravel9 et laravels !(5) Entrez le conteneur d'espace de travail pour démarrer Laravels

Entrez la commande du conteneur :

docker exec -it d4940755a928 /bin/bashCopy

Concours de performances entre laravel9 et laravels !

Résultats des tests de performances AB

L'objectif principal est le nombre de requêtes par seconde (Requêtes par seconde)
  • Toutes basées sur l'environnement Laradock
  • Partager le même code de projet
  • 1. Le nombre total de requêtes est de 100, et le nombre de requêtes simultanées est de 10 (swoole à gauche, laravel9 à droite) :


Concours de performances entre laravel9 et laravels !2. 1000, et le nombre de requêtes simultanées est de 20 (swoole à gauche, laravel9 à droite)


Concours de performances entre laravel9 et laravels !La différence n'est pas évidente, parfois les résultats de laravel9 sont encore meilleurs. Un tel résultat est-il considéré comme un renversement~

.

Adresse originale : https://learnku.com/articles/73575

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer