Nginx 중 fastcgipass 감청 포트 유 닉 스 socket 과 tcp socket 차이

1675 단어 nignx
Nginx 가 fastcgi 를 연결 하 는 방식 은 두 가지 가 있 습 니 다. 유 닉 스 domain socket 과 TCP, 유 닉 스 domain socket 또는 IPC socket 은 하나의 단말기 로 같은 운영 체제 의 두 개 이상 의 프로 세 스 를 데이터 통신 할 수 있 습 니 다.파이프 에 비해 유 닉 스 domain sockets 는 바이트 흐름 과 데이터 대기 열 을 사용 할 수 있 고 파이프 통신 은 바이트 흐름 만 사용 할 수 있 습 니 다.유 닉 스 domain sockets 의 인 터 페 이 스 는 인터넷 socket 과 비슷 하지만 네트워크 바 텀 프로 토 콜 을 사용 하지 않 습 니 다.유 닉 스 domain socket 의 기능 은 POSIX 운영 체제 의 구성 요소 입 니 다.
TCP 와 유 닉 스 domain socket 방식 비교
TCP 는 TCP 포트 로 127.0.0.1: 9000 을 연결 합 니 다.
Socket 은 유 닉 스 domain socket 연결 소켓 / dev / shm / phop - cgi. sock (많은 튜 토리 얼 은 경로 / tmp 를 사용 하고 경로 / dev / shm 는 tmpfs 로 디스크 보다 속도 가 훨씬 빠르다)
fastcgi_pass  unix:/tmp/php-cgi.sock
fastcgi_pass  127.0.0.1:9000

서버 의 압력 이 크 지 않 은 상황 에서 tcp 와 socket 의 차 이 는 크 지 않 지만, 압력 이 비교적 만 족 스 러 울 때 는 소켓 방식 으로 효과 가 확실히 좋다.
다음은 php 5.3 이상 버 전 으로 TCP 를 socket 방식 으로 변경 하 는 설정 방법 입 니 다.
php - fpm. conf (/ usr / local / php / etc / php - fpm. conf) 수정
;listen = 127.0.0.1:9000
listen = /dev/shm/php-cgi.sock

nginx 프로필 server 세그먼트 의 설정 을 수정 하고 http 방식 을 socket 방식 으로 변경 합 니 다.
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 파일 유 닉 스 소켓 형식 을 볼 수 있 습 니 다.
이론 적 으로 유 닉 스 socket 은 네트워크 에 가지 않 고 효율 이 높 지만 안정성 이 이상 적 이지 않 습 니 다. 이 테스트 를 보 세 요.
http://blog.csdn.net/liv2005/article/details/7741732

좋은 웹페이지 즐겨찾기