• 需求场景:
  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反向代理实现二级域名转一级域名相关推荐

  1. nginx 反向代理配置二级域名正确姿势!!!

    1. 先解释下什么是反向代理? 反向代理是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代 ...

  2. Nginx反向代理 设置二级域名 (CentOS)

    nginx 配置 whereis nginx /usr/sbin/nginx     ->    执行文件 /etc/nginx/conf.d  ->    自定义.conf文件的存放位置 ...

  3. Nginx 反向代理 虚拟二级目录

    " 在nginx中配置proxy_pass代理转发时,如果在proxy_pass后面的url加/,表示绝对根路径:如果没有/,表示相对路径,把匹配的路径部分也给代理走. 假设下面四种情况分别 ...

  4. nginx反向代理二级目录 导致vue项目静态文件css js访问不到

    2022年5月30日19:06:00 nginx vue项目配置 server {listen 9888;server_name 127.0.0.1;error_log /data/log/nginx ...

  5. 使用Nginx反向代理绕过域名备案详解

    之前笔者在景安云搞过一个Wordpress博客,然后域名备案也是在景安云上面搞的,后来又搞了一个阿里云的服务器,想把博客迁移到阿里云并且使用Ghost博客,然后使用二级域名链接到阿里云,结果出事了.景 ...

  6. Nginx反向代理多个应用时,通过BluePring使Flask支持二级路径(URL前缀)

    1. 预期 最近陆续基于Nginx,完成了三个应用的部署: 应用A:<在Ngnix上部署Flask应用> 应用B:<PaddleOCR加载chinese_ocr_db_crnn_mo ...

  7. (转)IIS tomcat共用80端口解决一个IP多个域名:使用Nginx反向代理方式使两者兼容...

    from :http://www.cnblogs.com/wuyou/p/3455619.html 环境: windows server 2003,IIS6服务器,Tomcat7服务器 域名有几个: ...

  8. nginx反向代理配置解决不同域名默认页面不同问题

    nginx反向代理配置解决不同域名默认页面不同问题 背景 设计思路 步骤 背景 需求:使用同一个项目(http://localhost:8080/thzhdj)映射两个域名(test1.com,tes ...

  9. Nginx反向代理,通过域名直接访问指定的端口,比如8080

    Nginx反向代理,通过域名直接访问指定的端口,比如8080 今天写微信公众号开发网络授权的时候,通过域名加接口url的方式,始终访问不到指定的接口,最后想了很久,发现是Nginx反向代理没有配置! ...

最新文章

  1. 在 C# 中,new 关键字可用作运算符、修饰符或约束。
  2. idea包显示问题-层次显示设置-idea2020版
  3. P4562-[JXOI2018]游戏【数论,组合数学】
  4. 模型和控制器-起步阶段
  5. LeetCode 451. 根据字符出现频率排序(Sort Characters By Frequency)
  6. java ipmitool_ipmitool使用手册
  7. 肇庆市二技学校计算机电算化,肇庆市有那些技术学校
  8. 访问页面出现404的原因
  9. epoll监听文件_Go 文件监控怎么实现?
  10. IE脚本错误Automation服务器不能创建对象
  11. Dell笔记本外接显示器—显示器模糊、字体不清晰
  12. ArcGis Engine 符号
  13. 故障分析 | MySQL 8.0 解决连接满问题
  14. 华为云服务器查看备份文件,云服务器备份文件
  15. TypeScript 高级类型及用法
  16. 如何在EDUIS中导出ETL字幕模板_Arctime教程——将字幕导出到剪辑/合成软件
  17. Spring Gateway静态文件路由
  18. 详解 OpenCV 透视变换原理 及 实例
  19. js 实现页面朗读功能,利用百度语音API
  20. 离散方法(一)——有限单元方法(FEM)

热门文章

  1. 英雄会第一届在线编程大赛解题思路
  2. 【效率为王】超详细 Hexo + Github Pages 博客搭建教程
  3. java 正则 懒惰_正则表达式的最大最小原则(就是懒惰和贪婪定理),java版本
  4. 【Python】关于安装爬虫框架scrapy的感悟
  5. CSP-S 2021 游记
  6. OpenStack T版服务组件--Keyston身份服务
  7. 基本数据类型和内置方法 08
  8. Win10 应用商店打不开,错误代码0x80131500——亲测可用
  9. 跳跳涂鸦——向上跳动游戏(学习笔记)
  10. Unity碰撞体不碰撞以及代码添加EventTrigger事件