php7 - Nginx의 fastcgi_pass 구성 문제
某草草
某草草 2017-05-16 17:18:04
0
1
639

nginx 구성 시 fastcgi_pass 구성 문제는 다음과 같습니다.

으아악

주로 fastcgi_pass 매개변수에 대해

으아악

이 두 가지 방법의 차이점은 무엇입니까? php7에는 어떤 방법을 사용해야 합니까?

某草草
某草草

모든 응답(1)
大家讲道理

Nginx와 PHP-FPM 간의 프로세스 간 통신에는 두 가지 방법이 있습니다. 하나는 TCP이고 다른 하나는 UNIX 도메인 소켓입니다.
TCP는 UNIX 도메인 소켓을 거치지 않는 IP 플러스 포트입니다. Nginx와 PHP-FPM이 모두 동일한 서버에 있는 시나리오에서만 사용할 수 있습니다. 어떤 것을 사용할지는 PHP-FPM 구성에 따라 다릅니다.
방법 1:
php-fpm.conf: listening = 127.0.0.1 :9000
nginx.conf: fastcgi_pass 127.0 .0.1:9000;
방법 2:
php-fpm.conf: Listen = /tmp/php-fpm.sock
nginx.conf: fastcgi_pass unix:/tmp/php-fpm. sock;
여기서 php-fpm.sock php-fpm에 의해 생성된 파일이며 유형은 srw-rw---.

UNIX 도메인 소켓은 서로 관련되지 않은 두 프로세스에 사용될 수 있습니다. 예를 들어 X Window 서버와 GUI 프로그램 간의 통신은 시스템 커널에서 발생하지 않습니다. UNIX 도메인 소켓과 긴 연결 모두 TCP 짧은 연결을 자주 생성하여 발생하는 너무 많은 TIME_WAIT 연결 문제를 피할 수 있습니다. 프로세스 간에 통신하는 두 프로그램의 경우 UNIX 도메인 소켓 프로세스는 TCP 계층으로 이동하지 않습니다. 파일 및 스트림 소켓 형태로 직접 통신합니다. TCP 소켓인 경우 IP 계층으로 이동해야 합니다. 다른 서버의 경우 TCP 소켓에는 더 많은 단계가 있습니다.

UNIX 도메인 소켓:

Nginx <=> 소켓 <=> PHP-FPM
TCP 소켓(로컬 루프백):
Nginx <=> TCP/IP 소켓 <=> PHP-FPM
TCP 소켓(Nginx와 PHP-FPM은 서로 다른 서버에 있음):
Nginx <=> TCP/IP <=> ; 라우터 TCP/IP PHP-FPM

mysql 명령줄 클라이언트와 마찬가지로 mysqld 서비스에 연결하는 두 가지 유사한 방법이 있습니다:

Unix 소켓을 사용하여 연결(기본값):
mysql -uroot -p --protocol=socket --socket=/tmp /mysql.sock
TCP 연결 사용:mysql -uroot -p --protocol=socket --socket=/tmp/mysql.sock
使用TCP连接:
mysql -uroot -p --protocol=tcp --host=127.0.0.1 --port=3306mysql -uroot -p --protocol=tcp --host=127.0.0.1 --port=3306

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿