LNMP - Nginx 와 PHP 설정 (2)

1. Nginx
    1. Nginx 전역 설정
[root@LNMP ~]# vim /usr/local/nginx/conf/nginx.conf
user nobody nobody;
worker_processes 2;
error_log /usr/local/nginx/logs/nginx_error.log crit;
pid /usr/local/nginx/logs/nginx.pid;
worker_rlimit_nofile 51200;

events
{
    use epoll;
    worker_connections 6000;
}

http

{
    include mime.types;
    default_type application/octet-stream;
    server_names_hash_bucket_size 3526;
    server_names_hash_max_size 4096;
    log_format combined_realip '$remote_addr $http_x_forwarded_for [$time_local]'
    '$host "$request_uri" $status'
    '"$http_referer" "$http_user_agent"';
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    client_header_timeout 10;
    client_body_timeout 10;
    send_timeout 10;
    connection_pool_size 256;
    request_pool_size 4k;
    client_header_buffer_size 1k;
    large_client_header_buffers 8 4k;
    output_buffers 4 32k;
    postpone_output 1460;
    client_max_body_size 10m;
    client_body_buffer_size 256k;
    client_body_temp_path /usr/local/nginx/client_body_temp;
    proxy_temp_path /usr/local/nginx/proxy_temp;
    fastcgi_temp_path /usr/local/nginx/fastcgi_temp;
    fastcgi_intercept_errors on;
    
    gzip on;
    gzip_min_length 1k;
    gzip_buffers 4 16k;
    gzip_comp_level 5;
    gzip_http_version 1.1;
    gzip_types text/plain application/x-javascript text/css text/htm application/xml;
    include vhosts/*.conf;
}

설정 설명
\ # Nginx 의 worker 프로 세 스 실행 사용자 및 사용자 그룹 user nobody nobody 를 지정 합 니 다. \ #Nginx 가 열 프로 세 스 수 를 지정 합 니 다. CPU 의 총 핵 수 worker 로 설정 합 니 다.processes 2;# Nginx 전역 오류 로그 경로 와 단 계 를 지정 합 니 다. 로그 단 계 는 debug, info, notice, warn, error, crit \ # 그 중에서 debug 출력 로그 가 가장 상세 하고 crit 입력 로그 가 가장 적 습 니 다 errorlog /usr/local/nginx/logs/nginx_error.log crit;# 프로 세 스 id 의 저장 파일 위 치 를 지정 합 니 다 pid / usr / local / nginx / logs / nginx. pid; \ #워 커 프로 세 스 의 최대 열 림 파일 수 제한 을 변경 합 니 다.설정 하지 않 았 다 면 이 값 은 운영 체제 의 제한 입 니 다. \ #ulimit - n 보기 시스템 제한 workerrlimit_nofile 51200;# Nginx 작업 모드 및 접속 수 상한 이벤트 설정
\ # 작업 모드 를 epoll 로 지정 합 니 다. 작업 모드 는 select, poll, kqueue, epoll, rtsig 와 / dev / poll 이 있 습 니 다. \ # 그 중에서 select 와 poll 은 표준 작업 모드 이 고 kqueue 와 qpoll 은 효율 적 인 작업 모드 입 니 다. use epoll;    # Nginx 모든 프로 세 스 의 최대 연결 수 를 정의 합 니 다 workerconnections 6000;# mime 형식 을 설정 합 니 다. 형식 은 mime. type 파일 로 include mime. types 를 정의 합 니 다.    # 기본 형식 을 바 이 너 리 흐름 default 로 설정 합 니 다.type application/octet-stream;    # 서버 이름 의 hash 표 크기 servernames_hash_bucket_size 3526;    # 서버 이름 의 hash 표 의 최 대량 servernames_hash_max_size 4096;    # Nginx 로그 의 출력 형식 을 지정 합 니 다. combinedrealip 사용자 정의 로그 이름 logformat combined_realip '$remote_addr $http_x_forwarded_for [$time_local]' '$host "$request_uri" $status' '"$http_referer" "$http_user_agent"';    # 효율 적 인 파일 전송 모드 를 열 때 tcpnopush 와 tcpnodelay 두 명령 은 "on" \ # 네트워크 가 sendfile on 을 막 는 것 을 방지 하 는 데 사 용 됩 니 다.tcp_nopush on;tcp_nodelay on;    # 클 라 이언 트 연결 을 설정 하여 이벤트 시간 초과 keepalivetimeout 65;    # 클 라 이언 트 요청 헤더 읽 기 시간 초과 client 설정header_timeout 10;    # 클 라 이언 트 요청 테마 설정 2 시간 초과 clientbody_timeout 10;    # 응답 클 라 이언 트 의 시간 초과 send 지정timeout 10;    #  모든 요청 한 메모리 풀, 메모리 풀 은 작은 할당량 메모리 블록 에 사 용 됩 니 다. 만약 하나의 블록 이 메모리 풀 보다 크다 면 \ #  또는 페이지 크기 보다 크 면 메모리 풀 밖으로 배 치 됩 니 다. 메모리 풀 에 있 는 작은 \ #  분 배 량 이 충분 한 메모리 가 없 으 면 같은 메모리 탱크 크기 의 새 블록 을 할당 합 니 다. 이 명령 은 \ #  상당히 제 한 된 효과 connectionpool_size 256;request_pool_size 4k;    # 클 라 이언 트 요청 헤더 의 크기 를 지정 합 니 다 clientheader_buffer_size 1k;    # 클 라 이언 트 요청 의 최대 캐 시 최대 수량 과 크기 를 지정 합 니 다 largeclient_header_buffers 8 4k;    # 출력 캐 시 크기   output_buffers 4 32k;
postpone_output 1460;    # 명령 은 클 라 이언 트 연결 을 허용 하 는 최대 요청 주체 크기 client 를 지정 합 니 다.max_body_size 10m;    # 이 명령 은 연결 요청 주체 의 버퍼 크기 를 지정 할 수 있 습 니 다.client_body_buffer_size 256k;    #  연결 요청 주체 가 기록 하려 는 임시 파일 경 로 를 지정 합 니 다 clientbody_temp_path /usr/local/nginx/client_body_temp;
\ # 역방향 프 록 시 임시 저장 디 렉 터 리 proxytemp_path /usr/local/nginx/proxy_temp;
\ # Nginx 에 FastCGI 캐 시 설정 경 로 를 지정 합 니 다.
fastcgi_temp_path /usr/local/nginx/fastcgi_temp;
\ # 이 옵션 이 설정 되 어 있 지 않 으 면 404. html 를 만 들 고 error 를 설정 하 더 라 도page 도 효과 없 음 fastcgiintercept_errors on;
\ # 압축 사용   gzip on;
\ # 압축 페이지 최소 바이트 gzipmin_length 1k;
\ # 압축 캐 시 gzipbuffers 4 16k;
\ # 압축 레벨 gzipcomp_level 5;
\ # 압축 버 전 gziphttp_version 1.1;
\ # 압축 할 형식 gziptypes text/plain application/x-javascript text/css text/htm application/xml;
\ # 가상 설정 디 렉 터 리 를 엽 니 다 include vhosts / *. conf;
    2. 가상 호스트 기본 설정
[root@ZLNMP ~]# vim /usr/local/nginx/conf/vhosts/default.conf
server

{
    listen 80;
    server_name localhost;
    index index.html index.htm index.php;
    root /usr/local/nginx/html;
    
    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_pass unix:/tmp/php-fcgi.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;
    }
}

    설정 설명
server: 가상 호스트 시작 키 를 정의 합 니 다.
listen: 가상 호스트 의 서비스 포트 를 지정 합 니 다.
server_name: IP 주소 나 도 메 인 이름 을 지정 하고 여러 도 메 인 이름 사 이 를 빈 칸 으로 구분 합 니 다.
index: 접근 의 기본 홈 페이지 주 소 를 설정 합 니 다.
루트: 가상 호스트 의 웹 루트 디 렉 터 리 를 지정 합 니 다.
charset: 웹 페이지 의 기본 인 코딩 형식 을 설정 합 니 다.
include fastcgi_params: fastcgi 오픈
fastcgi_pass: fastcgi 감청 방식 지정: 1. sock 방식 감청;2. TCP / IP 방식 감청
fastcgi_index: fastcgi 기본 시작 페이지 지정
fastcgi_param SCRIPT_FILENAME: fastcgi 감청 디 렉 터 리 설정
PHP - FPM
    php - fpm 설정
[root@ZLNMP ~]# vim /usr/local/php/etc/php-fpm.conf
[global]
pid = /usr/local/php/var/run/php-fpm.pid
error_log = /usr/local/php/var/log/php-fpm.log
[discuz]
;listen = /tmp/php-fcgi.sock
listen = 127.0.0.1:9000
user = php-fpm
group = php-fpm
;listen.owner = nobody
;listen.group = nobody
pm = dynamic
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
rlimit_files = 1024
slowlog = var/log/discuz_slow.log
request_slowlog_timeout = 1
php_admin_value[open_basedir]=/data/www/:/tmp/

설정 설명
[global]: 전역 설정
pid: 프로 세 스 id 파일 지정
error_log: 오류 로그 파일 지정
[discuz]: pool 이름 지정
listen: 지정 한 감청 방식 은 Nginx 설정 과 일치 합 니 다.
user: 프로 세 스 를 시작 하 는 사용자
group: 프로 세 스 를 시작 하 는 사용자 그룹
listen. owner: 감청 방식 이 sock 로 설정 되 었 을 때 listen. owner 는 sock 파일 의 소속 주 입 니 다.
listen. group: 감청 방식 이 sock 로 설정 되 었 을 때 listen. owner 는 sock 파일 의 소속 그룹 입 니 다.
pm = dynamic:
하위 프로 세 스 를 어떻게 제어 하 는 지, 옵션 은 static 과 dynamic 이 있 습 니 다.static 를 선택 하면 pm. maxchildren 에서 고정된 하위 프로 세 스 수 를 지정 합 니 다.다이나믹 을 선택 하면 다음 매개 변수 로 결정 합 니 다: pm. maxchildren, 하위 프로 세 스 최대 pm. startserver, 시작 할 프로 세 스 수 pm. minspare_server, 남 은 프로 세 스 의 최소 값 을 보장 합 니 다. 남 은 프로 세 스 가 이 값 보다 적 으 면 새 하위 프로 세 스 pm. max 를 만 듭 니 다.spare_server. 남 은 프로 세 스 의 최대 값 을 보장 합 니 다. 남 은 프로 세 스 가 이 값 보다 크 면 전용 서버 를 청소 합 니 다. pm 는 static 로 설정 할 수 있 습 니 다.
slowlog: 느 린 로그 설정
request_slowlog_timeout: 느 린 로그 시간 초과
php_admin_value [open basedir]: open 설정basedir

좋은 웹페이지 즐겨찾기