当前位置: 首页 > news >正文

服务器部署‌Traefik 实现子级域名路由服务(对外子域名80,路由对内大端口)

文章目录

  • 1.‌Traefik安装
  • 2.启动nginx配置路由

本文档只是为了留档方便以后工作运维,或者给同事分享文档内容比较简陋命令也不是特别全,不适合小白观看,如有不懂可以私信,上班期间都是在得

前言,领导让我调研在线发布得技术选型
白话文就是,子级域名 a.xx.com,b.xx.com 访问可以对应到服务器得某个服务例如20001,20002端口得服务
第一时间我想到得是nginx进行调用转发,但是就会出现一个问题没办法动态更新转发配置,重启再快也需要时间。
后面经过某群友推荐得‌Traefik实现了目的

1.‌Traefik安装

使用docker-compse进行安装
创建一个treafik.yml

version: '3.7'services:traefik:image: traefik:v2.10container_name: traefik   command:- "--entrypoints.http.address=:80"- "--entrypoints.https.address=:443"- "--api=true"- "--api.insecure=true"- "--api.dashboard=true"- "--api.debug=false"- "--ping=true"- "--providers.docker=true"- "--providers.docker.watch=true"- "--providers.docker.exposedbydefault=false"- "--providers.docker.endpoint=unix:///var/run/docker.sock"- "--providers.docker.swarmMode=false"- "--providers.docker.useBindPortIP=false"- "--providers.docker.network=traefik"- "--providers.file=true"- "--providers.file.watch=true"- "--providers.file.directory=/etc/traefik/config"- "--providers.file.debugloggeneratedtemplate=true"ports:- "80:80"                                  # HTTP- "443:443"                                # HTTPS- "9999:8080"                             # Web UI 端口(通过 --api.insecure=true 启用)volumes:- "/var/run/docker.sock:/var/run/docker.sock"  # 允许 Traefik 访问 Docker API- "/home/docker/traefik/config:/etc/traefik/config"       # 这样 Traefik 可以监听 Docker 事件networks:- traefik  # 加入 traefik 网络
networks:traefik:driver: bridge  # 使用桥接网络
#启动traefik
docker-compose -f traefik.yml  up -d

启动traefik

2.启动nginx配置路由

nginx配置

user  nginx;
worker_processes  auto;pid        /var/run/nginx.pid;events {worker_connections  1024;
}http {client_max_body_size 10000M;  # 设置文件上传大小限制为20MBinclude       /etc/nginx/mime.types;default_type  application/octet-stream;underscores_in_headers on;log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';sendfile        on;keepalive_timeout  65;
server {listen       20002;server_name www.b.xx.com;if ($request_method !~ ^(GET|POST|DELETE|PUT)$) {return 403;}charset utf-8;location / {root  /usr/share/nginx/html/dist;index index.html index.htm;try_files $uri $uri/ /index.html;client_max_body_size 5000m;client_body_buffer_size 500m; }}}

还是使用docker-compse进行安装
创建一个nginx.yml

version: '3.8'   services:nginx2:image: nginx:latest  # 使用最新的 Nginx 镜像container_name: nginx_2  # 容器名称ports:- "20002:20002" labels:- "traefik.enable=true"  # 启用 Traefik 处理该服务- "traefik.http.routers.nginx2.rule=Host(`www.b.xx.com`)"  # 路由规则- "traefik.http.routers.nginx2.entrypoints=http"  # 指定入口点- "traefik.http.services.nginx2.loadbalancer.server.port=20002"  # 指定 Nginx 服务端口volumes:- /home/nginx/02/html:/usr/share/nginx/html  # 映射前端文件- /home/nginx/02/conf/nginx.conf:/etc/nginx/nginx.conf  # 映射 Nginx 配置文件- /home/nginx/02/logs:/var/log/nginx  # 映射日志目录restart: always  # 容器崩溃后自动重启networks:- traefik  # 加入 traefik 网络networks:traefik:external: false  # 不使用外部网络,而是使用本地定义的网络
#启动nginx
docker-compose -f nginx.yml  up -d

启动nginx

我们看一下效果
效果对比图

二级域名访问正常,但是一级域名访问404
我们这里在多启动一个试试
启动命令

多个效果对比图

完美实现多级域名访问路由服务器nginx

如果点赞多,评论多会更新详细教程,待补充。


http://www.mrgr.cn/news/47983.html

相关文章:

  • STM32—SPI通信外设
  • 什么是毛利净利润
  • 【网络安全】CVE-2024-46990: Directus环回IP过滤器绕过实现SSRF
  • 【LeetCode】动态规划—646. 最长数对链(附完整Python/C++代码)
  • DIFY上使用多种大语言模型(MindCraft API)
  • 《Linux从小白到高手》综合应用篇:详解Linux系统调优之服务器硬件优化
  • BypassUAC
  • 深度学习之常用数据集下载
  • C# Json文件写入、读取 ,Json文件序列化、反序列化
  • 【Java 22 | 1】 深入解析Java 22 :增强的模式匹配特性
  • 2024下半年软考中级网络工程师,这100题,必做!
  • Once In My Life(除法,思维)
  • Harbor镜像仓库安装配置及使用
  • 递归专题BFS
  • HJ212-2017协议详解:工业物联网环境监测标准简单了解
  • PCL将深度图转化为点云并存储为pcd文件
  • Verdin AM62使用CODESYS
  • 【Java SE 题库】递归的魅力之--> 汉诺塔问题
  • 初阶数据结构(2):空间复杂度和复杂度算法题
  • Alluxio在数据索引和模型分发中的核心价值与应用