>  기사  >  백엔드 개발  >  웹 서비스에 대한 HTTPS 액세스를 지원하도록 Docker 컨테이너에서 Nginx 프록시 서버를 구성하는 방법은 무엇입니까?

웹 서비스에 대한 HTTPS 액세스를 지원하도록 Docker 컨테이너에서 Nginx 프록시 서버를 구성하는 방법은 무엇입니까?

王林
王林원래의
2023-09-05 13:19:58997검색

웹 서비스에 대한 HTTPS 액세스를 지원하도록 Docker 컨테이너에서 Nginx 프록시 서버를 구성하는 방법은 무엇입니까?

웹 서비스에 대한 HTTPS 액세스를 지원하도록 Docker 컨테이너에서 Nginx 프록시 서버를 구성하는 방법은 무엇입니까?

인터넷의 급속한 발전으로 인해 데이터 전송 보안 문제가 점점 더 주목을 받고 있습니다. 웹 서비스의 데이터 전송 보안을 보호하기 위해 많은 웹사이트에서 암호화된 전송에 HTTPS 프로토콜을 사용하기 시작했습니다. 개발 및 배포 프로세스에서는 Docker 컨테이너를 사용하여 웹 서비스를 구축하고 관리하는 것이 일반적인 방법이 되었습니다. 이 문서에서는 웹 서비스에 대한 HTTPS 액세스를 지원하도록 Docker 컨테이너에서 Nginx 프록시 서버를 구성하는 방법을 소개합니다.

1단계: SSL 인증서 생성
먼저 암호화된 전송의 무결성과 보안을 보장하기 위해 SSL 인증서를 생성해야 합니다. 테스트 및 개발 목적으로 자체 서명된 인증서를 사용할 수 있습니다. 생성하려는 인증서 파일이 각각 server.crtserver.key라고 가정합니다. server.crtserver.key

步骤二:创建Dockerfile
在开始之前,创建一个Dockerfile来构建我们的Nginx代理服务器容器。

FROM nginx:latest

# 复制SSL证书
COPY server.crt /etc/nginx/conf.d/server.crt
COPY server.key /etc/nginx/conf.d/server.key

# 复制Nginx配置文件
COPY nginx.conf /etc/nginx/conf.d/default.conf

# 暴露HTTPS端口
EXPOSE 443

在Dockerfile中,我们从官方的Nginx镜像中构建我们的自定义镜像。然后,我们将SSL证书文件复制到/etc/nginx/conf.d/目录下,并将Nginx配置文件复制到/etc/nginx/conf.d/目录下。最后,我们通过EXPOSE命令声明要暴露的端口,这里是443端口(HTTPS默认端口)。

步骤三:创建Nginx配置文件
接下来,我们需要创建一个Nginx的配置文件,来配置代理服务器。我们可以在本地创建一个名为nginx.conf的文件,并将以下内容粘贴进去:

server {
    listen 443;
    server_name yourdomain.com;

    ssl on;
    ssl_certificate /etc/nginx/conf.d/server.crt;
    ssl_certificate_key /etc/nginx/conf.d/server.key;

    location / {
        proxy_pass http://web-service-container:80;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

在以上代码中,我们定义了一个监听443端口的服务器块。需要注意的是,server_name指令应与您的域名匹配。我们通过ssl on命令开启SSL支持,并且指定了SSL证书的路径。

然后,在location /指令中,我们将传入的请求转发到名为web-service-container的容器中的80端口。您可以在实际使用中将这个名称替换为您要代理的容器名称或IP地址。

步骤四:构建和运行Docker容器
现在我们可以通过以下命令来构建和运行我们的Docker容器了:

docker build -t nginx-proxy .
docker run -d -p 443:443 --name nginx-proxy-container nginx-proxy

以上命令会构建一个名为nginx-proxy的Docker镜像,并将该镜像运行为一个名为nginx-proxy-container的容器。我们将容器的443端口映射到宿主机的443端口。

至此,我们已经成功地在Docker容器中配置了Nginx代理服务器以支持Web服务的HTTPS访问。现在,您可以通过访问https://yourdomain.com

2단계: Dockerfile 생성

시작하기 전에 Dockerfile을 생성하여 Nginx 프록시 서버 컨테이너를 구축하세요.
rrreee

Dockerfile에서는 공식 Nginx 이미지에서 사용자 정의 이미지를 빌드합니다. 그런 다음 SSL 인증서 파일을 /etc/nginx/conf.d/ 디렉토리에 복사하고 Nginx 구성 파일을 /etc/nginx/conf.d/에 복사합니다. > 디렉토리. 마지막으로 EXPOSE 명령을 통해 노출할 포트를 선언합니다. 여기서는 포트 443(HTTPS 기본 포트)입니다. 🎜🎜3단계: Nginx 구성 파일 생성🎜다음으로 프록시 서버를 구성하기 위한 Nginx 구성 파일을 생성해야 합니다. 로컬에서 nginx.conf라는 파일을 생성하고 다음 콘텐츠를 여기에 붙여넣을 수 있습니다. 🎜rrreee🎜위 코드에서는 포트 443에서 수신 대기하는 서버 블록을 정의합니다. server_name 지시문은 도메인 이름과 일치해야 합니다. ssl on 명령을 통해 SSL 지원을 활성화하고 SSL 인증서 경로를 지정합니다. 🎜🎜그런 다음 location / 지시문에서 들어오는 요청을 web-service-container라는 컨테이너의 포트 80으로 전달합니다. 이 이름을 프록시하려는 컨테이너 이름이나 IP 주소로 바꿀 수 있습니다. 🎜🎜4단계: Docker 컨테이너 빌드 및 실행🎜이제 다음 명령을 사용하여 Docker 컨테이너를 빌드하고 실행할 수 있습니다. 🎜rrreee🎜위 명령은 nginx-proxy라는 Docker 이미지를 빌드합니다. nginx-proxy-container라는 컨테이너로 이미지를 실행합니다. 컨테이너의 포트 443을 호스트의 포트 443에 매핑합니다. 🎜🎜이 시점에서 웹 서비스에 대한 HTTPS 액세스를 지원하도록 Docker 컨테이너에서 Nginx 프록시 서버를 성공적으로 구성했습니다. 이제 https://yourdomain.com을 방문하여 웹 서비스에 액세스할 수 있습니다. 🎜🎜요약🎜이 문서에서는 웹 서비스에 대한 HTTPS 액세스를 지원하도록 Docker 컨테이너에서 Nginx 프록시 서버를 구성하는 방법을 설명합니다. SSL 인증서와 Nginx 구성 파일을 사용하여 웹 서비스의 데이터 전송 보안을 보호할 수 있습니다. 이러한 Docker 기반 접근 방식은 개발 및 배포 프로세스를 용이하게 할 뿐만 아니라 강력한 코드 격리 및 확장성을 제공합니다. 이 글이 도움이 되셨으면 좋겠습니다. 읽어주셔서 감사합니다! 🎜

위 내용은 웹 서비스에 대한 HTTPS 액세스를 지원하도록 Docker 컨테이너에서 Nginx 프록시 서버를 구성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.