Docker 로 https 를 지원 하 는 nginx 프 록 시 서 비 스 를 구축 합 니 다.
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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.