저희 사이트는 현재 수천만 PV와 수백만 동시성을 처리할 수 있습니다. php+nginx 최적화에 대한 경험이 조금 있어서 기록을 남기도록 하겠습니다.
1.TCP 소켓 및 Unix 소켓
Unix 소켓은 TCP 소켓보다 더 나은 성능을 제공합니다(I/O 데이터 읽기 및 쓰기가 적고 컨텍스트 전환이 적기 때문).
upstream backend { server unix:/var/run/fastcgi.sock; # server 127.0.0.1:8080; }
2. access_log 비활성화 또는 최적화
대규모 트래픽으로 액세스하는 경우 액세스 로그가 매우 많은 양의 디스크를 읽고 쓰게 됩니다. 로깅이 필요하지 않은 경우 비활성화할 수 있습니다.
access_log off; log_not_found off;
또는 버퍼링을 켜세요
access_log /var/log/nginx/access.log main buffer=32k;
3. Gzip
gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.0; gzip_comp_level 2; gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; gzip_vary on; gzip_proxied expired no-cache no-store private auth; gzip_disable "MSIE [1-6]\.";
4. 출력 캐시 최적화
fastcgi_buffers 256 16k; fastcgi_buffer_size 128k; fastcgi_connect_timeout 3s; fastcgi_send_timeout 120s; fastcgi_read_timeout 120s; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k;
5. nginx는 멀티 스레드가 아닌 멀티 프로세스입니다. -관련 다음과 같이 구성을 최적화해야 합니다.
cat /proc/cpuinfo | grep processor그런 다음 작업자_프로세스를 설정하면 프로세스 수는 얻은 프로세서 수입니다. Worker_connections는 각 프로세스가 열 수 있는 최대 연결 수이며 늘릴 수 있습니다. 여기에 참조가 있습니다.
아아아아