Maison > cadre php > Laravel > le corps du texte

Comment charger Laravel en utilisant Nginx ?

藏色散人
Libérer: 2020-01-30 19:41:45
avant
2305 Les gens l'ont consulté

Comment charger Laravel en utilisant Nginx ?

Environnement du projet php7.2, nginx, Laravel, application de compte public WeChat développée. Avec l'augmentation actuelle des visites, un seul serveur ne peut pas répondre à la demande, c'est pourquoi nginx est utilisé pour le charger.

Ce qui suit est une solution réalisable actuellement utilisée.

Référence pour les problèmes de partage de session : Laravel utilise Redis pour partager la session (explication détaillée du code)

Il existe deux serveurs Web A:10.0.0.2, B:10.0.0.3, le nom de domaine du système est www.c.com, utilisez A comme serveur proxy inverse

Configuration nginx d'un serveur

server {
listen 81;
server_name _;
index index.html index.htm index.php;
access_log /data/wwwroot/wwwlogs/www_nginx.log combined;
root /data/wwwroot/www/public;
location / {
    try_files $uri $uri/ /index.php?$query_string;
}
location ~ .*\.(php|php5)?$ {
   fastcgi_pass unix:/dev/shm/php-cgi.sock;
    fastcgi_index index.php;
    include fastcgi.conf;
    }
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|ico)$ {
    expires 30d;
    access_log off;
    }
location ~ .*\.(js|css)?$ {
    expires 7d;
    access_log off;
    }
}
Copier après la connexion

Serveur B Paramètres nginx

server {
listen 80;
server_name -;
index index.html index.htm index.php;
access_log /data/wwwlogs/www_nginx.log combined;
root /data/wwwroot/www/public;
location / {
    try_files $uri $uri/ /index.php?$query_string;
}
location ~ .*\.(php|php5)?$ {
 
   fastcgi_pass unix:/dev/shm/php-cgi.sock;
    fastcgi_index index.php;
    include fastcgi.conf;
    }
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|ico)$ {
    expires 30d;
    access_log off;
    }
location ~ .*\.(js|css)?$ {
    expires 7d;
    access_log off;
    }
}
Copier après la connexion

Paramètres du serveur proxy inverse sur le serveur A

upstream backend{
    ip_hash;
    server 127.0.0.1:81;
    server 10.0.0.3;
}
server {
listen 80;
server_name www.c.com;
index index.html index.htm index.php;
access_log /data/wwwroot/wwwlogs/www_nginx.log combined;
root /data/wwwroot/www/public;
location / {
    proxy_pass http://backend;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header REMOTE-HOST $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location ~ .*\.(php|php5)?$ {
    fastcgi_pass unix:/dev/shm/php-cgi.sock;
    fastcgi_index index.php;
    include fastcgi.conf;
    }
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|ico)$ {
    expires 30d;
    access_log off;
    }
location ~ .*\.(js|css)?$ {
    expires 7d;
    access_log off;
    }
}
Copier après la connexion

Si vous créez un compte public WeChat et utilisez easywechat, vous devez remplacer le backend avec le vôtre Ce n'est qu'ainsi que www.c.com peut prendre en charge l'autorisation WeChat.

Le access_token de WeChat doit être partagé à l'aide de redis. Easywechat utilise le cache de laravel par défaut, vous devez donc modifier le cache .env pour utiliser redis

CACHE_DRIVER=redis

utilisé. dans Laravel Request::getClientIp()L'IP obtenue n'est pas la vraie IP. Vous devez modifier app/Providers/AppServiceProvider.php et définir l'IP du serveur proxy de confiance (127.0.0.1, 10.0.0.2). Vous pouvez ensuite utiliser Request::getClientIp(). pour obtenir la véritable adresse IP.

  public function boot()
    {
        \Request::setTrustedProxies(['127.0.0.1','10.0.0.2']);
    }
Copier après la connexion

Pour des articles plus techniques liés au framework laravel, veuillez visiter la colonne tutoriel laravel !

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:
source:cnblogs.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