php-fpm에 업스트림과 위치를 사용하는 것의 차이점은 무엇입니까?


18

나는 주변을 검색했지만 정답을 찾을 수 없었습니다. 누군가 이것을 명확히 할 수 있다면 크게 감사하겠습니다. 감사합니다!

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

OR / AND?

upstream php {
    server         unix:/run/php-fpm/php-fpm.sock;
}

감사!

답변:


9

현재의 나는 것을 발견 nginx적어도, 위치 블록 나를 위해 작업 구문은 1.6.2 :

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

http://, PHP 백엔드를 참조하기 전에 프로토콜을 지정하지 않아야합니다 . http://php구문으로 사용되는 proxy_pass, 취급하지 fastcgi_pass.


23

location 표현식을 일치시키고 규칙을 작성하는 데 사용됩니다.

upstream 참조 할 수있는 서버를 정의합니다.

귀하의 예에서 이는 귀하가

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

, 당신은 필요합니다

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

업스트림 블록의 이점은 둘 이상의 서버 / 포트 / 서비스를 업스트림으로 구성하고 트래픽을 분산시킬 수 있다는 것입니다. 예를 들면 다음과 같습니다.

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

nginx 문서에서 이에 대한 자세한 정보를 찾을 수 있습니다.

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


PHP 용 ip_hash가 필요하십니까? keepalive는 어떻습니까?
CMCDragonkai

1
그것은해야한다 fastcgi_pass php;대신
rhgb
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.