Heim > PHP-Framework > Laravel > Wie lade ich Laravel mit Nginx?

Wie lade ich Laravel mit Nginx?

藏色散人
Freigeben: 2020-01-30 19:41:45
nach vorne
2326 Leute haben es durchsucht

Wie lade ich Laravel mit Nginx?

Projektumgebung PHP7.2, Nginx, Laravel, öffentliche WeChat-Kontoanwendung entwickelt. Bei der aktuellen Zunahme der Besuche kann ein einzelner Server den Bedarf nicht decken, daher wird Nginx zum Laden verwendet.

Das Folgende ist eine praktikable Lösung, die derzeit verwendet wird.

Referenz für Probleme beim Teilen von Sitzungen: Laravel verwendet Redis zum Teilen von Sitzungen (detaillierte Code-Erklärung)

Es gibt zwei Webserver A:10.0.0.2, B:10.0.0.3, der Domänenname des Systems lautet www.c.com, verwenden Sie A als Reverse-Proxy-Server

Nginx-Konfiguration des A-Servers

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;
    }
}
Nach dem Login kopieren

B-Server Nginx-Einstellungen

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;
    }
}
Nach dem Login kopieren

Reverse-Proxy-Server-Einstellungen auf dem A-Server

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;
    }
}
Nach dem Login kopieren

Wenn Sie ein offizielles WeChat-Konto erstellen und easywechat verwenden, müssen Sie das ersetzen Backend mit Ihrem Nur so kann www.c.com die WeChat-Autorisierung unterstützen.

Das access_token von WeChat muss mit Redis geteilt werden. Easywechat verwendet standardmäßig den Cache von Laravel, daher müssen Sie den .env-Cache ändern, um Redis

CACHE_DRIVER=redis

zu verwenden in Laravel Request::getClientIp()Die erhaltene IP ist nicht die tatsächliche IP. Sie müssen app/Providers/AppServiceProvider.php ändern und die IP des vertrauenswürdigen Proxyservers festlegen (127.0.0.1, 10.0.0.2). Dann können Sie Request::getClientIp() verwenden. um die echte IP zu erhalten.

  public function boot()
    {
        \Request::setTrustedProxies(['127.0.0.1','10.0.0.2']);
    }
Nach dem Login kopieren

Weitere technische Artikel zum Laravel-Framework finden Sie in der Spalte Laravel-Tutorial!

Das obige ist der detaillierte Inhalt vonWie lade ich Laravel mit Nginx?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:cnblogs.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage