>운영 및 유지보수 >엔진스 >Nginx에서 Unix 소켓과 TCP 소켓의 차이점은 무엇입니까

Nginx에서 Unix 소켓과 TCP 소켓의 차이점은 무엇입니까

WBOY
WBOY앞으로
2023-05-16 13:37:061712검색

Nginx가 fastcgi에 연결하는 방법에는 unix 도메인 소켓과 TCP의 두 가지가 있습니다. Unix 도메인 소켓 또는 IPC 소켓은 동일한 운영 체제에서 두 개 이상의 프로세스가 서로 통신할 수 있도록 하는 터미널입니다. 파이프와 달리 Unix 도메인 소켓은 바이트 스트림과 데이터 큐를 모두 사용할 수 있는 반면 파이프 통신은 바이트 스트림을 통해서만 가능합니다. Unix 도메인 소켓의 인터페이스는 인터넷 소켓과 매우 유사하지만 통신을 위해 기본 네트워크 프로토콜을 사용하지 않습니다. Unix 도메인 소켓의 기능은 POSIX 운영 체제의 구성 요소입니다.

TCP와 unix 도메인 소켓 방법의 비교

TCP는 TCP 포트를 사용하여 127.0.0.1:9000에 연결하고, 소켓은 unix 도메인 소켓을 사용하여 /dev/shm/php-cgi.sock 소켓을 연결합니다(많은 튜토리얼에서는 /tmp 경로를 사용합니다) , 경로 /dev/shm은 디스크보다 훨씬 빠른 tmpfs입니다)

fastcgi_pass unix:/tmp/php-cgi.sock
fastcgi_pass 127.0.0.1:9000

서버 압력이 높지 않을 때는 tcp와 소켓의 차이가 크지 않지만 압력이 상대적으로 꽉 찼을 때 사용하십시오 소켓 방법이 실제로 더 좋습니다.

다음은 PHP 5.3 이상에서 TCP를 소켓 모드로 변경하는 구성 방법입니다.

php-fpm.conf (/usr/local/php/etc/php-fpm.conf) 수정

;listen = 127.0.0.1:9000
listen = /dev/shm/php-cgi.sock

nginx 구성 수정 파일 서버 섹션 구성, http 모드를 소켓 모드로 변경

location ~ .*.(php|php5)?$
{
#fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/dev/shm/php-cgi.sock;
fastcgi_index index.php;
include fastcgi.conf;
}

php-fpm 및 nginx를 다시 시작

service nginx restart
service php-fpm restart
ls -al /dev/shm

php-cgi.sock 파일의 유닉스 소켓 유형을 볼 수 있습니다. 이론적으로 유닉스 소켓은 통과하지 않습니다. 네트워크가 매우 효율적이지만 안정성이 이상적이지는 않습니다.

위 내용은 Nginx에서 Unix 소켓과 TCP 소켓의 차이점은 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제