GNU/Linux >> Znalost Linux >  >> Linux

Jaký je rozdíl mezi používáním upstream a umístěním pro php-fpm?

Řešení 1:

location se používá k párování výrazů a vytváření pravidel pro ně.

upstream definuje servery, na které lze odkazovat.

Ve vašem příkladu to znamená, pokud chcete získat ekvivalent pro

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

, budete potřebovat

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;
}

Výhodou upstream bloku je, že můžete nakonfigurovat více než jeden server/port/službu jako upstream a distribuovat na ně provoz, například takto:

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;
}

Více informací o tom můžete najít v dokumentaci nginx:

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

Řešení 2:

Zjistil jsem, že k nginx Alespoň 1.6.2, pracovní syntaxe pro blok umístění je pro mě:

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

to znamená:nemělo by se uvádět http:// protokol před odkazem na backend php. http://php syntaxe se použije s proxy_pass instrukce, nikoli fastcgi_pass .


Linux
  1. Jaký je rozdíl mezi strtok_r a strtok_s v C?

  2. Jaký je rozdíl mezi xdebug.ini a php.ini

  3. Jaký je rozdíl mezi fsck a e2fsck?

  1. Jaký je rozdíl mezi ls a l?

  2. Jaký je rozdíl mezi $(CC) a $CC?

  3. Jaký je rozdíl mezi unlink a rm?

  1. Jaký je rozdíl mezi InnoDB a MyISAM?

  2. Rozdíl mezi [[ $a ==Z* ]] a [ $a ==Z* ]?

  3. Jaký je rozdíl mezi trasou a ip trasou?