NGINX - nginx 의 defaultserver 와 tryfiles

4752 단어 #nginx개원 하 다


log_format log '"$remote_addr" - "$remote_user" [$time_local] "$request" '
               '"$status" "$body_bytes_sent" "$http_referer" '
               '"$http_user_agent" "$http_x_forwarded_for" "$cookie_JSESSIONID" "$host" "$upstream_addr" "$upstream_status" "$upstream_response_time" "$request_time" "$request_body" "$cookie__ver"';
server {
    listen       80;
    server_name  www.test.com;
    access_log /dev/stdout log;  //    1
    error_log /dev/stdout;

        location / {
        root   /www;
        index  index.html index.htm;
        try_files $uri $uri/ /index.html =404;   //    2
    }
}


server {
    listen       80 default_server;   //    3 
    access_log /dev/stdout log;
    error_log /dev/stdout;

    location / {
        root   /www;
        index  index.html index.htm;
    }
}


1. / dev / stdout 표준 출력 역할: 로그 출력 docker 로그 에 구체 적 인 파일 에 입력 하지 않 고 / dev / stdin 표준 입력 / dev / stderr 표준 오류 / dev / null 입 출력 2, tryfiles $uri $uri/ /index.html =404; 파일 을 조회 하 는 경로 에 따라 파일 을 조회 합 니 다. 찾 지 못 하면 404 기본 값 은 index. html 파일 매개 변수 입 니 다. 상세 설명: tryfiles 파일 찾기 $uri 가 조회 한 url $uri / 구체 적 인 url 과 그 다음 층 의 구체 적 인 파일 / index. html = 404 파일 을 찾 지 못 하면 index. html 파일 로 돌아 갑 니 다. index. html 도 찾 지 못 하면 상태 코드 404 로 돌아 갑 니 다.
  • 포인트 1
  • 지정 한 file 순서대로 존재 하 는 파일 을 찾 고 첫 번 째 로 찾 은 파일 로 요청 처리 합 니 다.
  • 포인트 2
  • 찾기 경 로 는 주어진 루트 나 alias 를 루트 경로 로 찾 습 니 다.
  • 포인트 3
  • 제 시 된 file 이 일치 하지 않 으 면 마지막 인자 가 지정 한 uri 를 다시 요청 합 니 다. 새로운 location 일치 입 니 다.
  • 포인트 4
  • 형식 2 라면 마지막 인자 가 = 404 이면 file 이 일치 하지 않 으 면 404 응답 코드 를 되 돌려 줍 니 다.
    server {
        listen       80;
        listen       443;
        server_name  www.test.cn ;
        access_log /dev/stdout log;
        error_log /dev/stdout;
    
            location / {
            root   /www;
            index  index.html index.htm;
            try_files $uri $uri/  @default;  //                   index.html,
                                             //         4040
            }
    
      location @default {
                 return 404;
            }
    }
    

    3、 default_server 명령 은 기본 server 를 정의 합 니 다.name 의 요청, 정의 가 표시 되 지 않 으 면 첫 번 째 정 의 된 server 를 default 로 선택 합 니 다.server。예 를 들 어 방문 한 주소 가 ip 일 때 지정 한 server도 메 인 이름 이 일치 하지 않 을 것 입 니 다. default 설정server 는 바로 갈 수 있 습 니 다.

    좋은 웹페이지 즐겨찾기