Rumah > Artikel > pembangunan bahagian belakang > 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!
Dockerfile
untuk membina imej Docker: rrreee
Laksanakan arahan berikut dalam direktori yang sama untuk membina Docker Mirror:rrreee
Kemudian buat fail bernamadocker-compose.yml
untuk mentakrifkan konfigurasi bekas Docker dan pelayan proksi Nginx: nginx.conf
untuk mengkonfigurasi pelayan proksi Nginx: 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!