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

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

WBOY
풀어 주다: 2023-05-16 13:37:06
앞으로
1739명이 탐색했습니다.

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으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿