프론트 엔드 기술을 (2) 마스터 nginx에해야

개요

프론트 엔드로, 우리는 다음 사항을 건조 nginx를 사용하는 방법을 배우게 생각합니다 :

  1. 정적 리소스 연기
  2. 역방향 프록시는 HTTPS (추가) 설정
  3. 설정 캐시
  4. 설정 로그
  5. SMTP 서비스 배포
  6. 설정 레디 스 캐시 (선택)

여기에 내가 다시 개발할 때 나중에 참조 기록 된 경험을 리듬 열한 조사에 따라, 우리는 다른 사람에게 유용하다 생각합니다.

참고 :

프런트 엔드 엔지니어는 Nginx에 초보자를 배울 수

역방향 프록시 설정

왜 리버스 프록시라고? 프록시 대부분의 프록시 클라이언트이며, 때문에 우리는 프록시 서버를 원하는 경우, 경우 역, 그것은 리버스 프록시라고한다. 그래서 우리는 프록시 역방향 프록시라는 프록시 서버를 넣어.

nginx를 리버스 프록시는 내부 설정 만에 proxy_pass 지침을 사용해야합니다. 이 특정 문서에서 모듈 ngx_http_proxy_module . 다음 예는 다음과 같다 :

events {
    # worker_connections  1024;  ## Default: 1024
}

http {
    server {
        listen  8767;
        server_name  192.168.2.32;
        location / {
            root /Users/zhouyang/Documents/tencent/test/local-nginx;
        }
        location /baidu {
            proxy_pass http://www.baidu.com;
        }
    }
}

우리는 떠들썩한 파티에서 다음 명령을 실행 한 후 192.168.2.32:8767/baidu가 자동으로 바이로 이동합니다 엽니 다. (참고 : 192.168.2.32 여기에 IP 주소를 변경).

nginx -s quit // 优雅退出
nginx -c /Users/zhouyang/Documents/tencent/test/local-nginx/nginx.conf // 使用指令目录下的配置文件启动 nginx

설정 점프

1. 점프 URL입니다. 는 URL 점프는 다음과 같이 코드를 읽을 수도 매우 간단하다 :

events {
    # worker_connections  1024;  ## Default: 1024
}

http {
    server {
        listen  8767;
        server_name  192.168.2.32;
        location / {
            root /Users/zhouyang/Documents/tencent/test/local-nginx;
        }
        location /baidu {
            proxy_pass http://www.baidu.com;
        }
        location /yaya {
            return 302 /baidu;
        }
    }
}

우리는 다음 열기 192.168.2.32:8767/yaya, 자동으로 마지막으로 자동으로 바이로 이동, 192.168.2.32:8767/yaya으로 이동합니다, bash는 다음 명령을 실행합니다. (참고 : 192.168.2.32 여기에 IP 주소를 변경).

nginx -s quit // 优雅退出
nginx -c /Users/zhouyang/Documents/tencent/test/local-nginx/nginx.conf // 使用指令目录下的配置文件启动 nginx

2. 참조 자에 따라 스킵. 는 URL 점프는 다음과 같이 코드가 변경 될 수 있습니다, 또한 매우 간단합니다. 이 특정 문서에서 모듈 ngx_http_referer_module .

events {
    # worker_connections  1024;  ## Default: 1024
}

http {
    server {
        listen  8767;
        server_name  192.168.2.32;
        location / {
            root /Users/zhouyang/Documents/tencent/test/local-nginx;
        }
        location /haha {
            valid_referers none blocked server_names
               *.example.com example.* www.example.org/galleries/
               ~\.google\.;

            if ($invalid_referer = '') {
                return 401;
            }
        }
        location /baidu {
            proxy_pass http://www.baidu.com;
        }
        location /yaya {
            return 302 /baidu;
        }
    }
}

우리는 (401) 금지를 볼 수 연 다음 192.168.2.32:8767/haha, 떠들썩한 파티에서 다음 명령을 실행합니다. (참고 : 192.168.2.32 여기에 IP 주소를 변경).

참고 : 내부 변수가 자동으로 빈 문자열과 일치 invalid_referer $를 할당하는 경우는 문자열이 자동으로 '1'에 할당 일치하지 않는 경우 nginx를 기반 매칭 valid_referers가, 나와.

nginx -s quit // 优雅退出
nginx -c /Users/zhouyang/Documents/tencent/test/local-nginx/nginx.conf // 使用指令目录下的配置文件启动 nginx

IP 주소를 기반으로 액세스 제어

우리는 또한 IP 주소, 금지 IP 액세스의 일부를 기반으로 액세스를 제어 할 수 있습니다. 다음 예는 다음과 같다 :

events {
    # worker_connections  1024;  ## Default: 1024
}

http {
    server {
        listen  8767;
        server_name  192.168.2.32;
        location / {
            deny 192.168.2.32;
            root /Users/zhouyang/Documents/tencent/test/local-nginx;
        }
        location /haha {
            valid_referers none blocked server_names
               *.example.com example.* www.example.org/galleries/
               ~\.google\.;

            if ($invalid_referer = '') {
                return 401;
            }
        }
        location /baidu {
            proxy_pass http://www.baidu.com;
        }
        location /yaya {
            return 302 /baidu;
        }
    }
}

위의 우리는 192.168.2.32 액세스 192.168.2.32:8767을 금지하지만, nginx를 일치 메커니즘 때문에, 또는 다른 경로에 액세스 할 수 있습니다.

로드 균형 조정

우리는 또한로드 밸런싱, 여기에 특정 문서 할 수있는 모듈 ngx_http_upstream_module을 .

나는 당신이 문서를보고 정보를 찾을 수 있습니다, 깊이 공부하고, 심도있는 연구가 없습니다.

HTTPS 추가

난 아직도 신청 때문에 AWS EC2 추가 가입 후, 그래서 돌아올 때까지 기다립니다.

추천

출처www.cnblogs.com/yangzhou33/p/11588831.html