>  기사  >  백엔드 개발  >  Docker에서 Nginx 프록시 서버를 사용하여 웹 서비스를 보호하는 방법은 무엇입니까?

Docker에서 Nginx 프록시 서버를 사용하여 웹 서비스를 보호하는 방법은 무엇입니까?

王林
王林원래의
2023-09-05 17:49:45617검색

Docker에서 Nginx 프록시 서버를 사용하여 웹 서비스를 보호하는 방법은 무엇입니까?

Docker에서 Nginx 프록시 서버를 사용하여 웹 서비스를 보호하는 방법은 무엇입니까?

인터넷의 급속한 발전과 함께 웹 애플리케이션의 배포가 점점 더 중요해지고 있으며, 애플리케이션의 보안도 고려해야 합니다. Nginx는 웹 서비스의 보안을 보호하기 위한 강력한 기능을 제공하는 고성능 웹 서버이자 역방향 프록시 서버입니다. Docker는 컨테이너 배포에 널리 사용되는 오픈 소스 프로젝트로, 두 가지를 결합하면 웹 애플리케이션의 보안을 더 잘 보호할 수 있습니다.

이 글에서는 Docker에서 Nginx 프록시 서버를 사용하여 웹 서비스의 보안을 보호하는 방법을 코드 예제와 함께 소개합니다.

1단계: Docker 및 Docker Compose 설치
시작하기 전에 먼저 Docker 및 Docker Compose를 설치해야 합니다. Linux 시스템에서는 다음 명령을 사용하여 Docker를 설치할 수 있습니다.

sudo apt-get update
sudo apt-get install docker.io

그런 다음 Docker Compose를 설치합니다.

sudo apt-get install docker-compose

2단계: Docker 컨테이너 생성
Nginx 프록시 서버를 사용하기 전에 웹을 실행하기 위한 Docker 컨테이너를 생성해야 합니다. 서비스. 다음은 간단한 Node.js 애플리케이션 예입니다.

const express = require('express');
const app = express();

app.get('/', (req, res) => {
  res.send('Hello, World!');
});

app.listen(3000, () => {
  console.log('Server is running on port 3000');
});

위 코드를 app.js로 저장하세요. app.js

然后,创建一个名为Dockerfile的文件,用于构建Docker镜像:

FROM node:12

WORKDIR /app

COPY package.json .

RUN npm install

COPY . .

EXPOSE 3000

CMD ["node", "app.js"]

在同级目录下执行以下命令构建Docker镜像:

docker build -t webapp .

然后创建一个名为docker-compose.yml的文件,用于定义Docker容器和Nginx代理服务器的配置:

version: '3'

services:
  web:
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - 3000
    networks:
      - proxy

  proxy:
    image: nginx
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf
    ports:
      - 80:80
    networks:
      - proxy

networks:
  proxy:

在同级目录下执行以下命令启动Docker容器和Nginx代理服务器:

docker-compose up -d

步骤3:配置Nginx代理服务器
现在,需要配置Nginx代理服务器来将所有的请求转发到Docker容器中运行的Web服务。创建一个名为nginx.conf的文件,用于配置Nginx代理服务器:

worker_processes 1;

events {
  worker_connections 1024;
}

http {
  upstream webapp {
    server web:3000;
  }

  server {
    listen 80;

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

保存文件后重启Docker容器和Nginx代理服务器:

docker-compose restart

步骤4:测试配置是否生效
现在,可以通过访问http://localhost来测试是否成功配置了Nginx代理服务器。如果一切正常,你应该能够看到Hello, World!

그런 다음 Docker 이미지 빌드를 위해 Dockerfile이라는 파일을 생성합니다.

rrreee

동일한 디렉터리에서 다음 명령을 실행하여 Docker 이미지를 빌드합니다.

rrreee

그런 다음 라는 파일을 생성합니다. docker-compose.yml 파일은 Docker 컨테이너와 Nginx 프록시 서버의 구성을 정의하는 데 사용됩니다.
    rrreee
  • Docker 컨테이너와 Nginx 프록시 서버를 시작하려면 동일한 디렉터리에서 다음 명령을 실행하세요.
  • rrreee
  • Step 3: Nginx 프록시 서버 구성
  • 이제 Docker 컨테이너에서 실행되는 웹 서비스에 모든 요청을 전달하도록 Nginx 프록시 서버를 구성해야 합니다. Nginx 프록시 서버를 구성하려면 nginx.conf라는 파일을 만듭니다.
  • rrreee
  • 파일을 저장한 후 Docker 컨테이너와 Nginx 프록시 서버를 다시 시작합니다.
rrreee

4단계: 구성이 적용되는지 테스트합니다

이제 http://localhost를 방문하여 Nginx 프록시 서버가 성공적으로 구성되었는지 테스트할 수 있습니다. 모든 것이 정상이면 Hello, World! 응답을 볼 수 있습니다. 🎜🎜위 단계를 통해 Docker에서 Nginx 프록시 서버를 사용하여 웹 서비스의 보안을 성공적으로 보호했습니다. Nginx는 역방향 프록시를 통해 Docker 컨테이너에서 실행되는 웹 서비스에 모든 요청을 전달하고 웹 애플리케이션의 보안을 보호하는 강력한 기능을 제공합니다. 🎜🎜요약: 🎜🎜🎜Docker와 Nginx의 조합은 웹 애플리케이션의 보안을 위한 강력한 보호를 제공할 수 있습니다. 🎜🎜Docker 및 Docker Compose를 통해 컨테이너를 만들고 Nginx 프록시 서버를 시작합니다. 🎜🎜Nginx를 사용하여 모든 것을 연결하도록 역방향 프록시를 구성합니다. 요청은 Docker 컨테이너에서 실행되는 웹 서비스로 전달됩니다. 🎜🎜🎜이 기사가 Docker에서 Nginx 프록시 서버를 사용하여 웹 서비스의 보안을 보호하는 방법을 이해하는 데 도움이 되기를 바랍니다! 🎜

위 내용은 Docker에서 Nginx 프록시 서버를 사용하여 웹 서비스를 보호하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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