2010-05-29 4 views
35

내 Nginx 구성 파일에 좀 더 복잡한 조건을 쓰고 싶지만 구문에 대해 잘 모르겠다. 예제에서 기본을 넘어서 무엇을 할 수 있는지 설명하는 문서를 찾을 수 없으며이 파일을 찾을 수없는 것 같다. Nginx 포럼이나 메일 링리스트에서.nginx conf 파일은 어떤 언어입니까?

예를 들어, 내가 unless 상태 일 수 있습니까?

+0

내 주제가 아닐지 만, 'unless'를 사용하는 대신 조건을 부정하는 것이 잘못 되었나요? – nc3b

+0

이 질문은 관련 질문이라고 생각합니다. 그 의도는 nginx 설정 파일을위한 렉서 (lexer)가 있는지를 결정하는 것이라고 생각합니다. – engineerDave

답변

4

그래서 나는 nginx의 초보자이며 같은 질문을했습니다. 위에서 언급 한 것처럼 언어의 구문이 사용자 정의되어 있고 실제로는 아주 간단합니다. 구문은 Nginx의 워드 프로세서의 captured in a section이며, 편의상 여기 되풀이

Nginx의 구성 파일에 지정된 지침 의해 제어 모듈로 구성된다. 지시문은 단순 지시문과 블록 지시문으로 나뉩니다. 간단한 지시어는 이름과 매개 변수를 공백으로 구분하고 세미콜론 (;)으로 끝납니다. 블록 지시어는 간단한 지시문 인 과 동일한 구조이지만 세미콜론 대신에 중괄호 ({및})로 묶인 추가 명령어 세트로 끝납니다. 블록 지시문에 에 중괄호 안에 다른 지시문이 있으면 컨텍스트라고합니다 (예 : 이벤트, http, 서버 및 위치).

컨텍스트 외부의 구성 파일에있는 지시문 은 주 컨텍스트에있는 것으로 간주됩니다. 이벤트 및 http 지시어는 주 컨텍스트, http 서버 및 서버의 위치에 있습니다.

# 기호 다음의 나머지 줄은 주석으로 간주됩니다. 요약

:의 nginx 설정 파일에 모든 것은 변수를 참조 할 수있는 지시입니다. 모든 지시문은 listed alphabetically here이고 모든 변수는 listed alphabetically here입니다. NGINX 구성은 각각 특정 기능을 구현하는 모듈에 의해 구동되며 각 모듈 은 구성 내에서 사용할 수있게되는 디렉 티브 및 변수에 기여합니다. 그게 전부 야. 기존의 프로그래밍 언어에서 같은 키워드처럼 보이는 - - 이유도 if입니다

실제로 ngx_http_rewrite_modulemodule에 의해 기여 단지 지시입니다.

희망이 도움이됩니다.

PS - 또한/검색하려면 Nginx에 문서를 사용하는 많은 개선 방법을 구체적으로 https://devdocs.io/nginxhttps://devdocs.io/ 등을 확인하시기 바랍니다.

+0

내 답안의 내용이 잘못되었거나 오해의 소지가 있으므로 주석을 통해 알려주십시오 - 내 nginx 지식은이 글을 쓰는 시점에서 1 일 전입니다 (그러나 그런 대답을 캡처하는 것이 더 좋은 시간입니다!) – scorpiodawg

7

Nginx 구성 파일은 Nginx 구성 파일을 위해 설계되고 구현 된 언어 (원하는 경우)로 작성됩니다. 문서 자체가 출처 자체를 넘어 유일하게 사용 가능한 참조 일 가능성이 있습니다. Nginx forums 중 하나에 메시지를 게시하거나 Nginx mailing list에 가입하여 요청할 것입니다. 물론 소스를 잡고 시작할 수도 있습니다.

행운을 빈다.

20

Nginx conf 파일은 자신의 언어 또는 구문으로 작성됩니다. 아래에 몇 가지 기본 사항을 포함했습니다. 다음은 기본 파일은 위에서 설명한 표준 형식으로 정의하지 섹션으로 분할

: 

<section> { 

    <directive> <parameters>; 

} 

글로벌 매개 변수

입니다

Mastering Nginx

기본 형식에서 가져온 내 자신의 개인 노트입니다 {}에는 전 세계 섹션을 넘기는 {}이 없습니다. 사용자와 노동자가 실행 프로세스 그룹 -

중요 글로벌 PARAMS

사용자 파일 설정의 상단에 배치됩니다. 그룹을 생략하면 사용 된 사용자와 같습니다.

worker_processes - 시작된 작업자 프로세스 수입니다. 클라이언트의 연결을 처리합니다. 일반적으로 CPU 바인딩로드의 경우 프로세서 수와 같아야하며 I/O 바인딩로드의 경우 1.5 또는 2 배가됩니다.

error_log - error_logs의 위치입니다. 지시어 내에서 덮어 쓴다. 두 번째 매개 변수는 로그 디버그 수준 (컴파일시 디버그 모듈을 구성한 경우에만 사용 가능), 정보,주의, 경고, 오류, 위험, 경고 및 발생을 나타냅니다.

pid - 주 프로세스의 프로세스 ID가 기록 된 파일로 컴파일 된 기본값을 덮어 씁니다.

worker_connections - 작업자 프로세스가 열어 놓은 최대 동시 연결 수를 구성합니다. 리버스 프록시 서버에서 특히 중요합니다.이 동시 연결 수에 도달하기 위해 운영 체제 수준에서 몇 가지 추가 조정이 필요할 수 있습니다. 이 구성 파일에있는 임의의 장소에서 사용 가능한 파일을 포함하여

이 /opt/local/etc/nginx/mime.types을 포함한다;

경로에 와일드 카드가 여러 파일과 일치하도록 나타날 수 있습니다. 에는/opt/local/etc/nginx/vhost/*가 포함됩니다.conf;

구성 파일을 쉽게 다음의 nginx를 호출하여 테스트 할 수 있습니다 : 의 nginx -t -c

는 HTTP 섹션은 가장 일반적으로 사용되는 부분 일 것이다.

관련 문제