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
J'ai rencontré un problème après une opération pratique :
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) :
Après avoir exécuté à nouveau la commande build, elle a réussi. [Recommandé : Tutoriel vidéo Laravel]
Résultats de la vérification :
Configuration du serveur http de Laravels
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
composer require hhxsv5/laravel-sCopy
php artisan laravels publishCopy
(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
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
docker-compose stop docker-compose build workspace nginx docker-compose up -d redis mysql nginx workspaceCopy
(5) Entrez le conteneur d'espace de travail pour démarrer Laravels
Entrez la commande du conteneur :
docker exec -it d4940755a928 /bin/bashCopy
Résultats des tests de performances AB
L'objectif principal est le nombre de requêtes par seconde (Requêtes par seconde)
2. 1000, et le nombre de requêtes simultanées est de 20 (swoole à gauche, laravel9 à droite)
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!