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^^2^^3^^4^


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

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

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

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

相关推荐
大小科圣14 分钟前
lnmp平台
运维·服务器·nginx
沐千熏20 分钟前
Liunx(CentOS-6-x86_64)使用Nginx部署Vue项目
vue.js·nginx·centos
川石课堂软件测试2 小时前
涨薪技术|Kubernetes(k8s)之Ingress
功能测试·云原生·容器·kubernetes·单元测试
迷茫运维路2 小时前
深入解析K8s VolumeMounts中的subPath字段及其应用
云原生·容器·kubernetes
qq_487048772 小时前
K8S单机部署
云原生·容器·kubernetes
me8322 小时前
【Linux docker】关于Docker 守护程序配置远程访问,安全认证以及idea连接。
linux·安全·docker
黑夜无路人2 小时前
k8s数据存储
云原生·容器·kubernetes·数据存储
笑远2 小时前
AWS容器化部署指南
docker·容器·aws
me8322 小时前
【Linux docker 容器】关于想要让虚拟机在开机时候也docker自己启动,容器也自己启动,省去要自己开docker和容器
java·linux·docker·云原生·eureka
晴天Y283 小时前
nginx中upstream模块的使用。
运维·服务器·nginx