nginx反向代理实现二级域名转一级域名

2024-04-23 15:48

本文主要是介绍nginx反向代理实现二级域名转一级域名,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  • 需求场景:
  1. 有两个大项目交互必须在一级域名下,每个项目有多个前端,之前采用二级或三级域名的方式导致域名过多不好维护,故由project1.service1.city.com、project1.service2.city.com、project1.service3.city.com的方式,转换为project1.city.com/service1/、project1.city.com/service2/、project1.city.com/service3/
    后续域名仅需按项目维护
  2. 单个前端服务均为docker方式,使用nginx将静态资源转发,docker -p将端口映射出来
  • 实现方式
    采用nginx反向代理,注意项目内路径的设置问题,本次遇见的问题均有路由错误导致,供参考
# 项目nginx配置文件如下server
{listen 80;listen 443 ssl http2;server_name eztest.city.com;index index.php index.html index.htm default.php default.htm default.html;root /www/wwwroot/eztest.city.com;#SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则#error_page 404/404.html;add_header Strict-Transport-Security "max-age=31536000";error_page 497  https://$host$request_uri;#PHP-INFO-START  PHP引用配置,可以注释或修改include enable-php-00.conf;#PHP-INFO-END#REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效include /www/server/panel/vhost/rewrite/eztest.city.com;#REWRITE-END#禁止访问的文件或目录location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md){return 404;}#一键申请SSL证书验证目录相关设置location ~ \.well-known{allow all;}# ez-adminlocation /admin/ {proxy_pass http://192.168.10.217:7813/;}location /toolbox/ {proxy_pass http://192.168.10.217:7802/;}# entrancelocation / {proxy_pass http://192.168.10.217:7809/;}location  /manager/ {proxy_pass  http://192.168.10.217:7808/;}location /report/ {proxy_pass http://192.168.10.217:7815/;}location /scene/ {proxy_pass http://192.168.10.217:7806/;}access_log  /www/wwwlogs/eztest.city.com.log access_json;error_log  /www/wwwlogs/eztest.city.com.error.log;
}

备注:

  1. vue项目注意vue.config.js中publicPath:’./’,的值,若有跟路径/,可能在多次转发后找不到,建议配置为当前路径
  2. 第二种前端项目有两层,若出现200状态,页面空白的现象,需找前端人员协同查看,本次修改router.js文件,强制转换路由

服务nginx配置文件参考如下:

server {listen 8080 default_server;listen [::]:8080 default_server;server_name nginx_vue_front;gzip on;gzip_min_length 1k;gzip_comp_level 9;gzip_types text/plain application/javascript application/x-javascript text/javascript text/xml text/css application/font-sfnt;gzip_disable "MSIE [1-6]\.";gzip_vary on;root /www/wwwroot/dist/;location / {try_files $uri $uri/ /index.html;}location ~* ^.+\.(eot|ttf|otf|woff|svg)$ {access_log off;add_header Cache-Control max-age=360000;}
}

dockerfile参考如下:

/www/wwwroot # cat Dockerfile
FROM node:12.18.0-alpine3.11ARG NPM_RUN_ARG=build
RUN apk add nginx tzdata
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtimeADD . /www/wwwroot/
WORKDIR /www/wwwroot/
RUN yarn config set registry https://registry.npm.taobao.org/ && yarn install && yarn cache clean
RUN npm run --silent $NPM_RUN_ARG
RUN ln -s /www/wwwroot/deploy/nginx.conf /etc/nginx/conf.d/
RUN rm -f /etc/nginx/mime.types; ln -s /www/wwwroot/deploy/mime.types /etc/nginx/CMD ["/usr/sbin/nginx", "-g", "pid /tmp/nginx.pid; daemon off;"]

这篇关于nginx反向代理实现二级域名转一级域名的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/929221

相关文章

基于 HTML5 Canvas 实现图片旋转与下载功能(完整代码展示)

《基于HTML5Canvas实现图片旋转与下载功能(完整代码展示)》本文将深入剖析一段基于HTML5Canvas的代码,该代码实现了图片的旋转(90度和180度)以及旋转后图片的下载... 目录一、引言二、html 结构分析三、css 样式分析四、JavaScript 功能实现一、引言在 Web 开发中,

SpringBoot中使用Flux实现流式返回的方法小结

《SpringBoot中使用Flux实现流式返回的方法小结》文章介绍流式返回(StreamingResponse)在SpringBoot中通过Flux实现,优势包括提升用户体验、降低内存消耗、支持长连... 目录背景流式返回的核心概念与优势1. 提升用户体验2. 降低内存消耗3. 支持长连接与实时通信在Sp

Conda虚拟环境的复制和迁移的四种方法实现

《Conda虚拟环境的复制和迁移的四种方法实现》本文主要介绍了Conda虚拟环境的复制和迁移的四种方法实现,包括requirements.txt,environment.yml,conda-pack,... 目录在本机复制Conda虚拟环境相同操作系统之间复制环境方法一:requirements.txt方法

Nginx 重写与重定向配置方法

《Nginx重写与重定向配置方法》Nginx重写与重定向区别:重写修改路径(客户端无感知),重定向跳转新URL(客户端感知),try_files检查文件/目录存在性,return301直接返回永久重... 目录一.try_files指令二.return指令三.rewrite指令区分重写与重定向重写: 请求

Spring Boot 实现 IP 限流的原理、实践与利弊解析

《SpringBoot实现IP限流的原理、实践与利弊解析》在SpringBoot中实现IP限流是一种简单而有效的方式来保障系统的稳定性和可用性,本文给大家介绍SpringBoot实现IP限... 目录一、引言二、IP 限流原理2.1 令牌桶算法2.2 漏桶算法三、使用场景3.1 防止恶意攻击3.2 控制资源

springboot下载接口限速功能实现

《springboot下载接口限速功能实现》通过Redis统计并发数动态调整每个用户带宽,核心逻辑为每秒读取并发送限定数据量,防止单用户占用过多资源,确保整体下载均衡且高效,本文给大家介绍spring... 目录 一、整体目标 二、涉及的主要类/方法✅ 三、核心流程图解(简化) 四、关键代码详解1️⃣ 设置

Nginx 配置跨域的实现及常见问题解决

《Nginx配置跨域的实现及常见问题解决》本文主要介绍了Nginx配置跨域的实现及常见问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来... 目录1. 跨域1.1 同源策略1.2 跨域资源共享(CORS)2. Nginx 配置跨域的场景2.1

Python中提取文件名扩展名的多种方法实现

《Python中提取文件名扩展名的多种方法实现》在Python编程中,经常会遇到需要从文件名中提取扩展名的场景,Python提供了多种方法来实现这一功能,不同方法适用于不同的场景和需求,包括os.pa... 目录技术背景实现步骤方法一:使用os.path.splitext方法二:使用pathlib模块方法三

CSS实现元素撑满剩余空间的五种方法

《CSS实现元素撑满剩余空间的五种方法》在日常开发中,我们经常需要让某个元素占据容器的剩余空间,本文将介绍5种不同的方法来实现这个需求,并分析各种方法的优缺点,感兴趣的朋友一起看看吧... css实现元素撑满剩余空间的5种方法 在日常开发中,我们经常需要让某个元素占据容器的剩余空间。这是一个常见的布局需求

HTML5 getUserMedia API网页录音实现指南示例小结

《HTML5getUserMediaAPI网页录音实现指南示例小结》本教程将指导你如何利用这一API,结合WebAudioAPI,实现网页录音功能,从获取音频流到处理和保存录音,整个过程将逐步... 目录1. html5 getUserMedia API简介1.1 API概念与历史1.2 功能与优势1.3