GNU/Linux >> Linux Esercitazione >  >> Linux

Qual è la differenza tra l'utilizzo di upstream e location per php-fpm?

Soluzione 1:

location viene utilizzato per abbinare le espressioni e creare regole per esse.

upstream definisce i server a cui è possibile fare riferimento.

Nel tuo esempio questo significa se vuoi ottenere un equivalente per

location ~ \.php$ {
    try_files      $uri = 404;
    fastcgi_pass   unix:/run/php-fpm/php-fpm.sock;
    fastcgi_index  index.php;
    include        fastcgi.conf;
}

, avresti bisogno di

upstream php {
    server         unix:/run/php-fpm/php-fpm.sock;
}
location ~ \.php$ {
    try_files      $uri = 404;
    fastcgi_pass   php;
    fastcgi_index  index.php;
    include        fastcgi.conf;
}

Il vantaggio del blocco upstream è che puoi configurare più di un server/porta/servizio come upstream e distribuire il traffico su di essi, ad esempio in questo modo:

upstream php {
    server 127.0.0.1:8080       max_fails=3 fail_timeout=30s;
    server 192.68.1.2     weight=5;
    server         unix:/run/php-fpm/php-fpm.sock;
}

Puoi trovare maggiori informazioni al riguardo nella documentazione di nginx:

http://nginx.org/en/docs/http/ngx_http_upstream_module.html

Soluzione 2:

L'ho trovato, a partire da nginx 1.6.2 almeno, la sintassi funzionante per me per il blocco di posizione è:

location ~ \.php$ {
    try_files      $uri = 404;
    fastcgi_pass   php;
    fastcgi_index  index.php;
    include        fastcgi.conf;
}

cioè:non si dovrebbe specificare il http:// protocol prima di fare riferimento al backend php. Il http://php la sintassi deve essere utilizzata con il proxy_pass istruzione, non fastcgi_pass .


Linux
  1. La differenza tra [[ $a ==Z* ]] e [ $a ==Z* ]?

  2. Qual è la differenza tra Git Switch e Checkout?

  3. Qual è la differenza tra strtok_r e strtok_s in C?

  4. Qual è la differenza tra l'uso di `sh` e `source`?

  5. Qual è la differenza tra xdebug.ini e php.ini

Qual è la differenza tra InnoDB e MyISAM?

Qual è la differenza tra Linux e Unix?

Qual è la differenza tra Login e Non-Login Shell

Qual è la differenza tra il comando apt e apt-get?

Che cos'è un hypervisor? Qual è la differenza tra il tipo 1 e 2?

Qual è la differenza tra curl e Wget?