Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menggunakan pelayan proksi Nginx di Docker untuk mengamankan perkhidmatan web?

Bagaimana untuk menggunakan pelayan proksi Nginx di Docker untuk mengamankan perkhidmatan web?

王林
王林asal
2023-09-05 17:49:45679semak imbas

Bagaimana untuk menggunakan pelayan proksi Nginx di Docker untuk mengamankan perkhidmatan web?

Bagaimana untuk menggunakan pelayan proksi Nginx dalam Docker untuk melindungi keselamatan perkhidmatan web?

Dengan perkembangan pesat Internet, penggunaan aplikasi Web menjadi semakin penting, dan keselamatan aplikasi juga perlu diambil kira. Nginx ialah pelayan web berprestasi tinggi dan pelayan proksi terbalik yang menyediakan ciri berkuasa untuk melindungi keselamatan perkhidmatan web. Docker ialah projek sumber terbuka yang digunakan secara meluas dalam penggunaan kontena. Menggabungkan kedua-duanya boleh melindungi keselamatan aplikasi web dengan lebih baik.

Artikel ini akan memperkenalkan cara menggunakan pelayan proksi Nginx dalam Docker untuk melindungi keselamatan perkhidmatan web, dengan contoh kod.

Langkah 1: Pasang Docker dan Docker Compose
Sebelum anda bermula, anda perlu memasang Docker dan Docker Compose terlebih dahulu. Pada sistem Linux, anda boleh menggunakan arahan berikut untuk memasang Docker:

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

Kemudian pasang Docker Compose:

sudo apt-get install docker-compose

Langkah 2: Buat bekas Docker
Gunakan Nginx pelayan proksi Sebelum ini, anda perlu mencipta bekas Docker untuk menjalankan perkhidmatan web. Berikut ialah contoh aplikasi Node.js yang mudah:

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');
});

Simpan kod di atas sebagai 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!

Kemudian, cipta fail bernama Dockerfile untuk membina imej Docker:

rrreee

Laksanakan arahan berikut dalam direktori yang sama untuk membina Docker Mirror:

rrreee

Kemudian buat fail bernama docker-compose.yml untuk mentakrifkan konfigurasi bekas Docker dan pelayan proksi Nginx:
    rrreee#🎜 🎜#Laksanakan arahan berikut dalam direktori yang sama untuk memulakan bekas Docker dan pelayan proksi Nginx:
  • rrreee
  • Langkah 3: Konfigurasikan pelayan proksi Nginx
  • Sekarang, anda perlu mengkonfigurasi pelayan proksi Nginx untuk memajukan semua permintaan Dimajukan ke perkhidmatan web yang berjalan dalam bekas Docker. Cipta fail bernama nginx.conf untuk mengkonfigurasi pelayan proksi Nginx:
  • rrreee
  • Selepas menyimpan fail, mulakan semula bekas Docker dan pelayan proksi Nginx:
  • rrreee# 🎜🎜#Langkah 4: Uji sama ada konfigurasi itu berkesan
Sekarang, anda boleh menguji sama ada pelayan proksi Nginx berjaya dikonfigurasikan dengan melawati http://localhost. Jika semuanya baik-baik saja, anda sepatutnya dapat melihat respons Hello, World!.

Melalui langkah di atas, kami berjaya menggunakan pelayan proksi Nginx dalam Docker untuk melindungi keselamatan perkhidmatan web. Nginx memajukan semua permintaan kepada perkhidmatan web yang berjalan dalam bekas Docker melalui proksi terbalik, sambil menyediakan ciri berkuasa untuk melindungi keselamatan aplikasi web. #🎜🎜##🎜🎜#Ringkasan: #🎜🎜##🎜🎜##🎜🎜#Gabungan Docker dan Nginx boleh memberikan perlindungan yang kuat untuk keselamatan aplikasi web; Docker Compose mencipta bekas dan memulakan pelayan proksi Nginx #🎜🎜##🎜🎜# Gunakan Nginx untuk mengkonfigurasi proksi terbalik untuk memajukan semua permintaan ke perkhidmatan web yang dijalankan dalam bekas Docker. #🎜🎜##🎜🎜##🎜🎜# Saya harap artikel ini akan membantu anda memahami cara menggunakan pelayan proksi Nginx dalam Docker untuk melindungi keselamatan perkhidmatan web! #🎜🎜#

Atas ialah kandungan terperinci Bagaimana untuk menggunakan pelayan proksi Nginx di Docker untuk mengamankan perkhidmatan web?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn