Docker快速极简配置nginx实现不同域名访问分流

文章目录

前言

本文主要记录如何使用docker安装配置Nginx,如何使用Nginx把通过80、443端口访问的请求根据域名分发到不同端口。那么什么是Nginx呢,下边做个简单介绍:

Nginx是一款开源的高性能、稳定、灵活的Web服务器和反向代理服务器,以其高效的数据传输能力和广泛的部署场景而闻名全球。它最初由俄罗斯程序员Igor Sysoev于2002年创建,其名字"Nginx"来源于日语单词"Ninginx",意思是"强大的、快速的",这恰好体现了其设计哲学。

Nginx的核心优势在于轻量级架构,即使在高并发环境下也能提供卓越的性能,使得它在处理静态内容和作为负载均衡器方面表现出色。它支持HTTP、HTTPS、SMTP等多种协议,并且易于扩展,能够与许多现代Web技术栈如Node.js、PHP-FPM等无缝集成。此外,Nginx还以其模块化设计、低资源占用和高效的请求处理机制著称。

在当前的互联网架构中,Nginx常被用于网站前端,作为第一道防火墙保护服务器,缓存静态资源,或者是大型分布式系统中的关键组件,比如作为CDN(内容分发网络)的一部分。许多大型网站,包括许多知名社交媒体平台和新闻网站,都在背后依赖Nginx来保障服务的稳定和高效。

安装配置使用

镜像拉取及环境配置

拉取Nginx最新镜像

bash 复制代码
docker pull nginx

配置本地参数文件挂载目录

复制代码
mkdir -p ~/nginx/conf
mkdir -p ~/nginx/log

临时运行一个容器将参数文件拷贝到挂载目录

bash 复制代码
docker run --rm --name nginx -d nginx

docker cp nginx:/etc/nginx/nginx.conf ~/nginx/conf/
docker cp nginx:/etc/nginx/conf.d ~/nginx/conf/
docker cp nginx:/usr/share/nginx/html ~/nginx/

# 拷贝完成后停止容器
docker stop nginx

修改代理文件

bash 复制代码
# ~/nginx/conf/conf.d/git.conf

server{
    listen 80;
    # 此域名是提供给最终用户的访问地址
    server_name gitlab.example.com;

    location / {
        client_max_body_size 50m;
        proxy_redirect off;
        proxy_pass http://192.168.1.88:8080;
    }
}

server{
    listen 80;
    # 此域名是提供给最终用户的访问地址
    server_name registry.gitlab.example.com;
    location / {
        client_max_body_size 50m;
        proxy_redirect off;
        proxy_pass http://192.168.1.88:5050;
    }
}

编写docker-compose文件

文件地址: ~/nginx/docker-compose.yml

bash 复制代码
networks: {}
services:
  core:
    depends_on: {}
    restart: always
    container_name: nginx
    environment:
      TERM: xterm-256color
    image: nginx
    logging:
      driver: json-file
      options:
        max-file: '5'
        max-size: 10m
    network_mode: host
    privileged: true
    shm_size: 2g
    stdin_open: true
    tty: true
    # 下边的"~"最好修改为绝对路径
    volumes:
      - ~/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:rw
      - ~/nginx/conf/conf.d:/etc/nginx/conf.d:rw
      - ~/nginx/log:/var/log/nginx:rw
      - ~/nginx/html:/usr/share/nginx/html:rw
    working_dir: /
version: '2.3'
volumes: {}

启动nginx代理

bash 复制代码
cd ~/nginx/
docker-compose up -d

修改配置后重启使用命令如下

bash 复制代码
docker restart nginx

总结

本文简单记录使用docker配置nginx的过程,方便后续参考。[1](#1)[2](#2)[3](#3)[4](#4)


  1. nginx配置详解-CSDN博客 ↩︎

  2. Docker 安装 Nginx 容器 (完整详细版)_docker nginx-CSDN博客 ↩︎

  3. Nginx配置详解_nginx配置域名-CSDN博客 ↩︎

  4. nginx安装及(域名、端口、ip)配置_nginx配置域名-CSDN博客 ↩︎

相关推荐
石小千1 小时前
Ubuntu24.04 安装Docker
运维·docker·容器
scriptsboy2 小时前
Halo Docker 迁移方法
运维·docker·容器
R.lin2 小时前
Docker核心原理详解
运维·docker·容器
Evan芙2 小时前
Nginx 安装教程(附Nginx编译安装脚本)
windows·nginx·postgresql
颜淡慕潇2 小时前
容器生态双核心:Podman与Docker深度对比及实战指南
docker·eureka·podman
头发多的码农3 小时前
jenkins docker ssh发布效率提升
运维·docker·jenkins
起个名字总是说已存在3 小时前
Kylin Linux麒麟环境docker启动容器报错permission denied解决
linux·docker·kylin
invicinble3 小时前
nginx的基本认识
运维·nginx
爆肝疯学大模型3 小时前
http转https,免费快速申请证书并实现nginx配置
nginx·http·https
qinyia3 小时前
通过 Wisdom SSH AI 助手部署和配置 Nginx Web 服务器
人工智能·nginx·ssh