nginx 팁 - 동적 도 메 인 이름 (위 챗, 애플 릿 80 포트)

2256 단어
만약 회사 에 위 챗 개발 수요 가 있다 면, 등 록 된 도 메 인 이름과 80 포트 가 있어 야 한다.
직원 개발 디 버 깅 은 문제 로 매번 운영 비 를 찾 아 수정 하고 유지 하면 K 에 의 해 이 루어 진다.
교환기 에 DMZ 를 고정 서버 에 설치 하고 nginx / openresty 를 배치 합 니 다.
gitlab (svn) + jenkins / ansible 등 운영 방식 으로 설정 파일 을 수정 할 때마다 gitlab 에 제출 하여 CI / CD 를 nginx 서버 로 전송 하고 reload 를 실행 할 수 있 습 니 다.
물론 변 경 된 것 도 있 습 니 다. 예 를 들 어 openresty + lua 구독 redis 는 변경 사항 을 발견 한 후에 redis 의 설정 을 읽 고 rewrite 를 로 컬 설정 파일 에 넣 은 다음 에 reload 를 합 니 다. 그러나 결국은 비교적 무 겁 습 니 다.
다음은 server_name 어댑터 를 설정 하여 동적 도 메 인 이름 을 실현 하 는 방안 입 니 다.
server {
    listen 443 http2 ssl;
    listen 80;
    server_name  ~(?.+)_(?\d+)_(?\d+).domain.com;
location / {
//proxy settings ...
/ / $h 는 abc 1 1 의 abc 입 니 다.
//proxy_set_header   Host $h;
proxy_pass http://192.168.$a.$b;
}
}

사용 방법
개발 자 기기 에 nginx 를 설치 하고 해당 하 는 vhost 를 설정 합 니 다.
    server {
        listen       80;
        server_name  abc*;

        location / {
            root html;
            index index.html;
        }
    }
curl http[s]://abc_1_1.domain.com

... 과 같다
curl -H"abc_1_1.domain.com" http[s]://192.168.1.1

다 중 도 메 인 이름 _ 이 아 닌 . 으로 구 분 된 이 유 는 Let 's Encrypt 의 마스크 가 같은 등급 의 마스크 이기 때 문 입 니 다. 예 를 들 어 *.domain.com 지원 a.domian.com 은 유효 하지 않 습 니 다. https 접근 (애플 릿 이 https 를 필요 로 하지 않 으 면 자체 적 으로 a.b.domain.com 으로 수정 할 수 있 습 니 다.
이 방안 은 일정한 안전 위험 이 존재 할 수 있 습 니 다. 예 를 들 어 ip 폭파 (화이트 리스트 방문, basic auth 를 설정 하여 동적 ip 범 위 를 제한 할 수 있 습 니 다).
유지 보수 가 간단 하 다 는 것 이 장점 입 니 다. (도 메 인 이름 추가, 도 메 인 이름 변경 - > ip 맵 변경, 설정 수정, 데이터 수집, 로그 인쇄 등)
본 고 는 그 중에서 역방향 대리 중의 하나 일 뿐 유사 한 반 세대 방안 은 frp 와 ngrok 도 있 고 dns (bid, dnsmasq) 도 사용 할 수 있다.

좋은 웹페이지 즐겨찾기