RadarURL

조회 수 7176 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

가 크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

가 크게 작게 위로 아래로 댓글로 가기 인쇄

Nginx, FastCGI

nginx, fastcgi

FastCGI모듈은 엔진엑스 기본 빌드에 포함되므로 컴파일때 수작업으로 설정할 필요는 없다. 다음 지시어들은 엔진엑스가 FastCGI어플리케이션에 요청을 넘겨주는 방법에 관한 환경을 설정한다. 엔진엑스 환경설정 폴더에 있는 fastcgi_params파일에는 대부분의 상황에서 유효한 지시어 값들이 정의돼 있음에 유의한다.

주요지시어

지시어

설명

fastcgi_pass

문맥:

location, if

위치를 명시해 요청이 FastCGI서버에 전달되게 지정한다.

>TCP 소켓일 때의 구문: fastcgi_pass hostname:port;

>유닉스도메인소켓일떄의 구문: fastcgi_pass unix:/path/to/fastcgi.socket;

>업스트림블록을 지정할수 있다: fastcgi_pass myblock;

사용 예:

fastcgi_pass localhost:9000;

fastcgi_pass 127.0.0.1:9000;

fastcgi_pass unix:/tmp/fastcgi.socket;

#업스트림 블록을 사용하는 경우

upstream fastcgi {

server 127.0.0.1:9000;

server 127.0.0.1:9001;

}

location ~* \.py$ {

fastcgi_pass fastcgi;

}

fastcgi_param

문맥:

http, server, location

요청이 FastCGI에 전달되게 환경을 설정한다. 모든 FastCGI에 대해 두개의 매개변수 SCRIPT_FILENAME과 QUERY_STRING이 반드시 필요하다.

사용 예:

fastcgi_param SCRIPT_FILENAME /home/website.com/www$fastcgi_script_name;

fastcgi_param QUERY_STRING $qeury_string;

POST요청은 REQUEST_METHOD, CONTENT_TYPE, CONTENT_LENGTH매개변수를 추가로 요구한다.

fastcgi_param REQUEST_METHOD $request_method;

fastcgi_param CONTENT_TYPE $content_type;

fastcgi_param CONTENT_LENGTH $content_length;

엔진엑스 환경설정 폴더에 있는 fastcgi_params파일은 필요한 모든 매개변수 정의를 이미 포함하고 있다. 단, 각 FastCGI환경설저에 대해 따로 지정해야 하는 SCRIPT_FILENAME매개변수만 제외돼 있다.

구문: fastcgi_param PARAM value;

fastcgi_pass_header

문맥:

http, server, location

FastCGI 서버로 넘겨주는 추가적인 헤더를 지정한다.

구문: fastcgi_pass_header headername;

사용 예:

fastcgi_pass_header Authorization;

fastcgi_hide_header

문맥:

http, server, location

FastCGI에게 숨겨야 하는 헤더를 지정한다.(Nginx가 전달하지 않는 헤더)

구문: fastcgi_hide_header headername;

사용 예:

fastcgi_hide_header X-Forwarded-For;

fastcgi_ignore_client_abort

문맥:

http, server, location

이 지시어는 클라이언트가 웹 서버로 보낸 요청을 중단시킬 때의 처리방법을 정의한다. 지시어가 on으로 설정되어 있으면 엔진엑스는 중단 요청을 무시하고 요청을 계속 처리해 마친다. off로 설정돼있으면 엔진엑스는 중단 요청을 무시하지 않는다. 요청처리를 즉각 중단하고 FastCGI서버와의 통신을 끝낸다.

구문: on | off

기본 값: off

fastcgi_intercept_errors

문맥:

http, server, location

Nginx가 Gateway로부터 회신된 에러를 처리할것인지, 아니면 에러페이지를 직접 클라이언트에게 보낼것인지를 정의한다.

(유의사항: 에러처리는 엔진엑스의 error_page지시어를 통해 수행된다.)

구문: on | off

기본 값: off

fastcgi_read_timeout

문맥:

http, server, location

FastCGI로부터의 응답제한시간을 정의한다. 이 시간이 초과되도 Nginx가 응답을 받지 못하면 504 Gateway Timeout HTTP에러를 리턴한다.

구문: 숫자 값(초)

기본 값: 60초

fastcgi_connect_timeout

문맥:

http, server, location

백엔드 서버 접속 제한시간을 정의한다. 이 값은 읽기/보내기 제한 시간과는 다르다. Nginx가 이미 백엔드 서버에 접속된 상태면 fastcgi_connect_timeout은 적용할수 없다.

구문: 숫자 값(초)

기본 값: 60초

fastcgi_send_timeout

문맥:

http, server, localtion

백엔드서버에 데이터를 보낼때의 제한시간이다. 이 제한시간은 전체 응답지연에 적용되는게 아니라 두개의 쓰기 작업사이에 적용된다.

구문: 숫자 값(초)

기본 값: 60초

fastcgi_split_path_info

문맥:

location

http://website.com/page.php/param1/param2와 같은 형태의 URL일 때 특히 유용한 지시어다.

이 지시어는 지정한 정규표현식에 따라 경로 저보를 분할한다.

fastcgi_split_path_info ^(.+\.php)(.*) $;

이것은 두개의 변수에 영향을 준다.

>$fastcgi_script_name: 실제 실행되는 스크립트의 파일명(앞 예에서는 page.php)

>$fastcgi_path_info: 스크립트명 다음에 오는 URL부분(앞의 예에서는 /param1/param2/)

이 두변수는 이후의 매개변수 정의에서 사용될수 있다.

fastcgi_param SCRIPT_FILENAME /home/website.com/www$fastcgi_script_name;

fastcgi_param PATH_INFO $fastcgi_path_info;

구문: 정규표현식

fastcgi_store

문맥:

http, server, location

FastCGI어플리케이션으로부터의 응답을 저장 장치의 파일에 저장하는 간단한 캐시 저장소를 사용한다. 동일한 URI가 다시 요청될경우 요청을 FastCGI어플리케이션에 전달하는 대신 캐시저장소로부터 직접 읽어 문서를 서비스한다.

이 지시어는 캐시 저장소를 사용하거나 해제한다.

구문: on | off

fastcgi_store_access

문맥:

http, server, location

이 지시어는 캐시저장소의 사용으로 생성되는 파일에 적용할 접근권한을 정의한다.

구문: fastcgi_store_access [user:r|w|rw] [group:r|w|rw] [all:r|w|rw]

기본 값:fastcgi_store_access user:rw;

fastcgi_temp_path

문맥:

http, server, location

임시 파일이나 캐시저장파일의 경로를 설정한다.

구문: 파일경로

사용 예:

fastcgi_temp_path /tmp/nginx_fastcgi;

fastcgi_max_temp_file_size

문맥:

http, server, location

이 지시어값을 0으로 설정하면 FastCGI요청용 임시파일을 사용하지 않는다 그렇지 않으면 최대 임시파일크기를 의미한다.

구문: 크기 값

기본값: 1GB

사용 예:

fastcgi_max_temp_file_size 5m;

fastcgi_temp_file_write_size

문맥:

http, server, location

임시 파일을 저장장치에 저장할때 쓰기버퍼크기를 설정한다.

구문: 크기 값

기본값: 2*proxy_buffer_size

fastcgi_buffers

문맥:

http, server, location

FastCGI어플리케이션으로부터 응답데이터를 읽을때 사용할 버퍼의 수와 크기를 설정한다.

구문: fastcgi_buffers amount size;

기본값: 8버퍼, 각기 4K이거나 8K(플래폼에 따라 다름)

사용 예:

fastcgi_buffers 8 4k;

fastcgi_buffer_size

문맥:

http, server, location

FastCGI어플리케이션의 응답의 시작부분(보통은 간단한 헤더데이터를 포함)을 읽기 위한 버퍼크기를 설정한다.

구문: 크기 값

기본 값은 앞서 설명한 fastcgi_buffers지시어에 의해 정의된 버퍼한개의 크기이다.

사용 예:

fastcgi_buffer_size 4k;

fastcgi_send_lowat

문맥:

http, server, location

FreeBSD전용의 TCP소켓용 SO_SNDLOWAT플래그를 사용할수 있게 하는 옵션이다. 이 값은 출력작업용 버퍼에서의 최소 바이트수를 정의한다.

구문: 숫자 값(크기)

기본값: 0

fastcgi_pass_request_body

fastcgi_pass_request_headers

문맥:

http, server, location

각각 요청 바디와 추가적인 요청 헤더를 백엔드서버에 전달해야하는지 여부를 정의한다.

구문: on | off

기본값: on

fastcgi_ignore_headers

문맥:

http, server, location

백엔드 서버 응답에서 X-Accel_Redirect, X-Accel-Expires, Expires, Cache-Control의 네 가지 헤더를 엔진엑스가 처리하지 않게 한다.

구문: fastcgi_ingore_headers header1 [header2...];

fastcgi_next_upstream

문맥:

http, server, location

fastcgi_pass가 업스트림 블록에 접속될때 이 지시어는 요청을 포기하고 다음 업스트림서버로 보내야하는 경우를 정의한다. 이 지시어의 값은 다음을 조합해 사용한다.

>error: 서버와 통신하고 있는 중이거나 통신을 시도하려고 할때 에러가 발생한다.

>timeout: 전송이나 접속시도를 하는동안 제한시간이 초과된 경우

>invalid_header: 백엔드서버가 빈 응답이나 유효하지 않은 응답을 회신한 경우

>http_500, http_502, http_503, http_504, http_404: 이런 HTTP에러가 발생한 경우 Nginx는 다음 업스트림으로 전환한다.

>off: 다음 업스트림서버의 사용을 금지한다.

사용 예:

fastcgi_next_upstream error timeout http_504;

fastcgi_next_upstream timeout invalid_header;

fastcgi_catch_stderr

문맥:

http, server, location

stderr(표준 에러 스트림)로 출력되는 에러메시지의 일부를 중간에 가로채 Nginx에러로그에 저장한다.

구문: fastcgi_catch_stderr filter;

사용 예:

fastcgi_catch_stderr "PHP Fatal error:";

FastCGI캐싱

일단 Nginx가 FastCGI어플리케이션과 잘 연동되게 정확한 환경설정을 했다면 다음 지시어들을 선택적으로 사용해 캐시시스템을 구성함으로서 서버의 전체적인 성능을 개선할수 있다.

지시어

설명

fastcgi_cache

문맥:

http, server, location

캐시 존(zone)을 정의한다. 준에 부여한 실벽자는 이후의 지시어에서 재사용된다.

구문: fastcgi_cache zonename;

사용 예:

fastcgi_cache cache1;

fastcgi_cache_key

문맥:

http, server, location

이 지시어는 캐시 항목들을 서로 구분하는 캐시 키(key)를 정의한다. 캐시 키가 $uri로 설정돼 있으면 $uri가 같은 모든 요청은 같은 캐시 항목에 대응된다. 대부분 동적웹사이트에서는 그정도로는 충분하지 않으므로 /index.php와 /index.php?page=contact가 같은 캐시 항목을 가리키지 않게 캐시 키에 질의문자열 인자를 포함할 필요가 있다.

구문: fastcgi_cache_key key;

사용 예:

fastcgi_cache_key "$scheme$host$request_uri$cookie_user";

fastcgi_cache_methods

문맥:

http, server, location

캐싱을 적용할 HTTP메소드를 정의한다. GET과 HEAD는 기본으로 포함되며 캐싱을 해제할수 없다. 예를 들면 POST같은 요청을 캐싱하게 설정할수 있다.

구문: fastcgi_cache_methods METHOD;

사용 예:

fastcgi_cache_methods POST;

fastcgi_cache_min_uses

문맥:

http, server, location

요청을 캐싱하는데 필요한 최소 히트수를 정의한다. 기본으로 요청 응답은 한번의 히트후에 캐시된다.(같은 캐시 키를 갖는 이후의 요청은 캐시된 응답으로 수신된다.)

구문: 숫자 값

사용 예:

fastcgi_cache_min_uses 1;

fastcgi_cache_path

문맥:

http, server, location

캐시된 파일과 매개변수를 저장하기 위한 디렉토리를 지정한다.

구문: fastcgi_cache_path path [levels=numbers keys_zone=name:size inactive=time max_size=size];

다음과 같은 매개변수를 추가할수 있다.

>levels: 하위 디렉토리의 깊이를 나타낸다(보통은 1:2면 충분하다)

>keys_zone: 앞서 fastcgi_cache지시어로 선언한 존을 이용할수 있게 하며, 차지하는 메모리의 크기를 나타낸다.

>inactive: 캐시된 응답이 지정한 시간만큼 사용되지 않으면 캐시로부터 제거된다.

>max_size: 전체 캐시의 최대 크기를 정의한다.

사용 예:

fastcgi_cache_path /tmp/nginx_cahce levels=1:2 zone=zone1:10m inactive=10m max_size=200M;

fastcgi_cache_use_stale

문맥:

http, server, location

Nginx가 Gateway와 관련한 특정 상황에서 오래된 캐시데이터를 사용할지 여부를 정의한다. fastcgi_cache_use_stale timeout을 사용하고 Gateway가 제한시간을 초과하면 Nginx는 캐시된 데이터로 서비스한다.

구문: fastcgi_cache_use_stale [updating] [errors] [timeout] [invalid_header] [http_500];

사용 예:

fastcgi_cache_use_stale error timeout;

fastcgi_cache_valid

문맥:

http, server, location

이 지시어는 여러 종류의 응답코드에 대해 각 캐시시간을 정한다 404에러코드와 연관된 응답은 1분동안 캐시하고 반대로 200 OK 응답은 10분 이상 캐시하게 할수 있다. 이 지시어는 한번 이상 사용할수도 있다.

fastcgi_cache_valid 404 1m;

fastcgi_cache_valid 500 502 504 5m;

fastcgi_cache_valid 200 10;

구문: fastcgi_cache_valid code1 [code2...] time;

참조

Nginx HTTP Server[한국어판](끌레망 네델꾸 지음|김득권 옮김)

 

출처 : http://blog.naver.com/dudwo567890/130169637747

?

공부 게시판

공부에 도움되는 글을 올려주세요.

  1. No Image notice by 처누 2003/08/18 by 처누
    Views 2017093 

    [공지] 공부 게시판 입니다.

  2. 티소믈리에, 차 문화를 바꾸다

  3. 창원흥신소 서비스 안내

  4. No Image new
    by 교활한철학자타조18
    2026/10/06 by 교활한철학자타조18
    in 경제
    Views 1 

    동작노래방 010 2817 0845 모임 분위기에 맞는 노래방 안내

  5. 유심&통장 [카,톡] sim256 (24시문의) 대포유심 대포통장판매 선불유심팝니다 대포유심팝니다

  6. 강남세븐❤️OlO-8655-OO53❤️친절문의환영 #강남세븐 #역삼동세븐 #강남세븐데이즈 #강남풀싸롱 #역삼동풀싸롱 #선릉역풀싸롱 #역삼동룸싸롱 #역삼룸사롱 #역삼풀살롱 #강남미러초이스 #역삼미러초이스

  7. 파주누수업체, 신속 해결의 모든 것

  8. ㅇㅇ병원, 당신의 건강을 책임지는 현명한 선택

  9. 양산싱크대막힘 시원하게 뚫는 비법

  10. 용인두피문신 고민? 만족 후기 보려면

  11. 토보샵: 명품레플리카 쇼핑의 시작

  12. 대전누수, 근본 원인 해결의 시작

  13. 마인드 끝판왕 사이즈까지 장착 완료! 010---8293---0291---- 여기가 베트남인줄 마블 노래클럽

  14. 카-툑 gusim8003 [24시문의] 선불유심내구제/내구제대출/소액대출/급전/ 비대면대출 상조내구제 무직자대출 대출

  15. 강남엘리트❤️OlO-8655-OO53❤️친절문의24시 강남하퍼1등실장 #강남엘리트 #강남엘리트위치 #강남엘리트하퍼 #하이퍼블릭엘리트 #강남엘리트예약문의 #선릉엘리트 #선릉역엘리트 #강남사라있네

  16. 청담동셔츠룸 010 2817 0845 일정과 인원에 맞춘 셔츠룸 문의

  17. 최근 테헤란로 벤처 밸리의 핵심 리더들 사이에서 ‘클래스가 다른 정통 수질과 프라이빗 무드’로 소문 자자한 '선릉 룸싸롱' 기습 방문, 인공미를 거부하는 무결점 뉴페이스들과 심장을 마비시킨 사심 플러팅에 제대로 저격당하고 온 솔직 후기

  18. 본식DVD, 웨딩영상 색감이 중요한 이유새 창 열림

  19. No Image new
    by 정열적인코요테90
    2026/10/05 by 정열적인코요테90
    in 공지
    Views 4 

    대전, 인천, 세종 하수구 막힘 문제 해결 방법

  20. No Image new
    by 타오르는드래곤61
    2026/10/05 by 타오르는드래곤61
    in 취미
    Views 1 

    <문경맥주> 구입 할 수 있는 곳은 새 창 열림

  21. 강남건전지❤️OlO-8655-OO53❤️친절문의환영 #강남건전지 #강남유니콘 #선릉유니콘 #강남건전지위치 #선릉역건전지#대치동유니콘 #강남바커스 #선릉바커스 #선릉역바커스 #강남룸클럽 #선릉룸클럽 #강남베터리 #강남바데리

Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 132 Next
/ 132


즐겨찾기 (가족)

JAESOO's HOMEPAGE


장여은 홈페이지


장여희 홈페이지


장여원 홈페이지


즐겨찾기 (업무)

알리카페 홀릭

숭실대 컴퓨터 통신연구실 (서창진)

말레이시아 KL Sentral 한국인 GuestHouse


즐겨찾기 (취미)

어드민아이디

유에코 사랑회

아스가르드 좋은사람/나쁜사람

JServer.kr

제이서버 메타블로그

재수 티스토리


즐겨찾기 (강의, 커뮤니티)

재수 강의 홈페이지


한소리


VTMODE.COM


숭실대 인공지능학과


숭실대 통신연구실


베너