Docker 로 https 를 지원 하 는 nginx 프 록 시 서 비 스 를 구축 합 니 다.

3810 단어
설명: 본 고 에서 제시 한 서 비 스 는 작가 가 평소에 테스트 하여 사용 하 는 것 일 뿐 알 수 없 는 bug 나 성숙 하지 않 은 해결 방안 을 포함 할 수 있 습 니 다. 참고 하 시기 바 랍 니 다. 정식 환경 에 사용 하지 마 십시오. 물론 사용 과정 에서 어떤 문제 가 있 으 면 저 에 게 제기 해 주 십시오. 저 는 계속 개선 할 수 있 습 니 다.
GitHub 주소: https://github.com/wll-zhou/nginx_proxy_docker   
 
nginx 는 고성능 웹 서버 소프트웨어 뿐만 아니 라 정방 향 프 록 시 와 역방향 프 록 시 로 도 사용 할 수 있 습 니 다. 그러나 nginx 는 https 의 정방 향 프 록 시 를 지원 하지 않 습 니 다. 저 자 는 기 존의 해결 방안 을 검색 하고 최종 서 비 스 를 Docker 에 통합 시 켜 나중에 docker run 을 통 해 사용 할 수 있 습 니 다.
 
먼저 nginx 는 https 정방 향 대 리 를 실현 합 니 다. 이것 은 다른 사람 이 개발 한 ngx 를 사용 합 니 다.http_proxy_connect_module 모듈, 상세 한 자 료 는 이 글 을 참고 할 수 있 습 니 다. 본 고의 중점 은 Docker 에 어떻게 통합 되 는 지 기록 하 는 것 입 니 다.
 
우선 작업 목록 을 준비 하 세 요.
mkdir -p nginx/workdir && cd nginx/workdir

 
지정 한 nginx 버 전 다운로드, 대응 하 는 ngxhttp_proxy_connect_모듈 모듈
wget http://nginx.org/download/nginx-1.17.4.tar.gz
git clone https://github.com/chobits/ngx_http_proxy_connect_module.git nginx_proxy

 
이전 nginx 디 렉 터 리 로 돌아 가 Dockerfile 을 만 들 기 시작 합 니 다.
 
#     ,    centos7   ,    alpine
FROM centos:7
#         
RUN yum install -y patch gcc glibc-devel make openssl-devel pcre-devel zlib-devel gd-devel geoip-devel perl-devel
#  nginx      ,    nginx   ,     ,   www   
RUN groupadd -g 101 nginx \
          && adduser  -u 101 -d /var/cache/nginx -s /sbin/nologin  -g nginx nginx 
#    workdir       /workdir
COPY ./workdir /workdir
#       /workdir
WORKDIR /workdir
#  nginx  (    ngx_http_proxy_connect_module  )
#                
RUN tar -zxvf nginx-1.17.4.tar.gz && cd nginx-1.17.4 \
       && patch -p1  
 

 

Dockerfile ,

.

├── Dockerfile

└── workdir

    ├── nginx-1.17.4.tar.gz

    └── nginx_proxy

 

build ,-t , . , , ,

docker build -t nginx:proxy_1.17.4 .

 
빌 드 성공 표식:
Successfully built 5e54788aa240
Successfully tagged nginx:proxy_1.17.4
 
실패 하면 해당 힌트 가 있 으 니 힌트 에 따라 해결 하면 된다.
지금 image 가 생 성 되 었 습 니 다. docker image ls 에 nginx: proxy 가 있 는 지 확인 하 세 요.1, 1, 7, 4 입 니 다.
 
다음 에 실행 할 수 있 습 니 다. nginx 설정 문 을 준비 해 야 합 니 다. 프 록 시 설정 을 추가 해 야 합 니 다.
 
    server {
        listen                         8888;
        access_log /var/log/nginx/proxy.log; 
        # dns resolver used by forward proxying
        resolver                       8.8.8.8;
        # forward proxy for CONNECT request
        proxy_connect;
        proxy_connect_allow            443 563;
        proxy_connect_connect_timeout  10s;
        proxy_connect_read_timeout     10s;
        proxy_connect_send_timeout     10s;
        # forward proxy for non-CONNECT request
        location / { 
            proxy_pass http://$host;
            proxy_set_header Host $host;
        }   
    }

 
미 러 실행 (대응 경로 와 포트 는 스스로 설정 할 수 있 습 니 다)
docker run -d -p 8888:8888 -v /home/www/image/nginx/nginx.conf:/etc/nginx/nginx.conf nginx:proxy_1.17.4

 
시작 후 프 록 시 사용 가능 여 부 를 테스트 합 니 다.
curl https://www.geek-share.com -v -x 127.0.0.1:8888

 
이로써 docker 에 통합 되 어 기 계 를 바 꾸 고 미 러 를 복사 한 다음 에 docker run 하면 됩 니 다. 편리 합 니 다.
이상 의 서 비 스 는 GitHub 에 발표 되 었 습 니 다. clone 이 내 려 온 후에 바로 실행 할 수 있 습 니 다. 물론 자신의 기 계 는 docker 를 설치 해 야 합 니 다.
https://github.com/wll-zhou/nginx_proxy_docker 
 
질문 을 지적 하 는 것 을 환영 합 니 다!
 
글 동기 화 발표: https://www.geek-share.com/detail/2780659901.html

좋은 웹페이지 즐겨찾기