Comment faire fonctionner la configuration Nginx côté Web PHP

Guanhui
Libérer: 2023-03-01 15:48:02
avant
2597 Les gens l'ont consulté

Comment faire fonctionner la configuration Nginx côté Web PHP

Fonctionnement sécurisé côté Web PHP Configuration Nginx et redémarrage à chaud

Préface

Auparavant, j'aidais les clients à créer un site AB automatisé basé sur GeoIP2 (Nginx Geoip2 gère l'accès depuis différents pays (ou villes) ), le client a récemment souhaité contrôler manuellement la commutation de la station AB via le terminal de gestion
Comment faire fonctionner la configuration Nginx côté Web PHP

Il n'est pas recommandé d'utiliser system, exec et d'autres fonctions pour exécuter des commandes shell

  • Nécessite des opérations complexes d'élévation de privilèges
  • Ces fonctions sont interdites dans les projets généraux
  • En tant que Phper qualifié, sauf circonstances particulières, il est strictement interdit d'activer quelques fonctions liées à la sécurité dans le projet Fonction

Idée de solution

  1. includeConfiguration du fragment dans le fichier de configuration vhost Nginx
  2. Lorsque le backend change de site AB, introduisez la configuration des fragments dans la première étape de modification de la logique PHP
  3. Nginx Reload
    • La première solution : les petits projets utilisent crontab pour exécuter régulièrement nginx -s reload (utilisé avec work_shutdown_timeout)
    • Deuxième solution (recommandée) : Après modification, la marque doit être rechargée (Fichier ou DB ou Cache Le timer utilise un script python pour demander si un rechargement est nécessaire pour exécuter nginx -s reload).

Option 1

Créer un fichier de configuration de fragment

Créez un fichier de configuration Nginx fragment indépendant, tel que Comment faire fonctionner la configuration Nginx côté Web PHP.conf, puis dans nginx vhostinclude

Comment faire fonctionner la configuration Nginx côté Web PHP.conf

root /www/wwwroot/ahost;
Copier après la connexion

2. Fichier de configuration du site include fichier de configuration Comment faire fonctionner la configuration Nginx côté Web PHP.conf

site.conf

server {
        listen       80;
        server_name  0.0.0.0;
        index index.html;
        include /www/wwwroot/abhost/Comment faire fonctionner la configuration Nginx côté Web PHP.conf;
    }
Copier après la connexion

3. Fonctionnement en logique de fondComment faire fonctionner la configuration Nginx côté Web PHP.conf

if($data['site_set'] == AbHostSiteEnum::Ahost) {
    //开启A站
    $ahostPath = AbHostSiteEnum::AhostPath;
    file_put_contents('./Comment faire fonctionner la configuration Nginx côté Web PHP.conf',"root {$ahostPath};");}else {
    //开启B站
    $bhostPath = AbHostSiteEnum::BhostPath;
    file_put_contents('./Comment faire fonctionner la configuration Nginx côté Web PHP.conf',"root {$bhostPath};");}
Copier après la connexion

4. Définissez worker_shutdown_timeout dans la configuration globale de Nginx

Nginx ne peut pas se fermer en douceur dans les 30 secondes, le processus est donc forcé de se fermer

nginx.conf

...worker_shutdown_timeout  30;
Copier après la connexion

5. Exécuter Nginx régulièrement Redémarrage à chaud

crontab -e

*/5 * * * * nginx -s reload
Copier après la connexion

Tutoriel recommandé : "PHP"

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!

Étiquettes associées:
php
source:learnku.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal