多个域名公用80端口是实现反向代理和负载均衡

文章目录

          • 一、快速入门
            • 1. 背景
            • 2. 案例1
            • 3. 案例2
          • 二、实战
            • 2.1. 配置备份
            • 2.2. 配置清空
            • 2.3. 配置初始化
            • 2.4. 配置统一管理
            • 2.5. 开发配置
            • 2.6. UAT配置
            • 2.7. 启动nginx

一、快速入门
1. 背景

使用nginx做反向代理的时候,可以简单的直接把请求原封不动的转发给下一个服务。设置proxy_pass请求只会替换域名,如果要根据不同的url后缀来访问不同的服务,则需要通过如下方法:

2. 案例1
server {listen              8000;server_name         abc.com;access_log  "pipe:rollback /data/log/nginx/access.log interval=1d baknum=7 maxsize=1G"  main;location ^~/user/ {proxy_set_header Host $host;proxy_set_header  X-Real-IP        $remote_addr;proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;proxy_set_header X-NginX-Proxy true;proxy_pass http://user/;}location ^~/order/ {proxy_set_header Host $host;proxy_set_header  X-Real-IP        $remote_addr;proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;proxy_set_header X-NginX-Proxy true;proxy_pass http://order/;}
}

^~/user/表示匹配前缀是user的请求,proxy_pass的结尾有/, 则会把/user/*后面的路径直接拼接到后面,即移除user。

3. 案例2
upstream user {server localhost:8089 weight=5;
}
upstream order {server localhost:8090 weight=5;
}server {listen              80;server_name  abc.com;access_log  "pipe:rollback /data/log/nginx/access.log interval=1d baknum=7 maxsize=1G"  main;location ^~/user/ {proxy_set_header Host $host;proxy_set_header  X-Real-IP        $remote_addr;proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;proxy_set_header X-NginX-Proxy true;rewrite ^/user/(.*)$ /$1 break;proxy_pass http://user;}location ^~/order/ {proxy_set_header Host $host;proxy_set_header  X-Real-IP        $remote_addr;proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;proxy_set_header X-NginX-Proxy true;rewrite ^/order/(.*)$ /$1 break;proxy_pass http://order;}
}

proxy_pass结尾没有/, rewrite重写了url。

二、实战
2.1. 配置备份
cd /usr/local/nginx/conf/
cp nginx.conf nginx.conf.bak
2.2. 配置清空

清空nginx.conf文件内容

cat /dev/null > nginx.conf
2.3. 配置初始化

添加以下内容
在这里插入图片描述

user ec2-user ec2-user;                                                                                                 
worker_processes  1;                                                                                                    events {                                                                                                                worker_connections  1024;                                                                                           
}                                                                                                                       http {                                                                                                                  include       mime.types;                                                                                           default_type  application/octet-stream;                                                                             log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '                                           '$status $body_bytes_sent "$http_referer" '                                                       '"$http_user_agent" "$http_x_forwarded_for"';                                                     access_log  logs/access.log  main;                                                                                  sendfile        on;                                                                                                 tcp_nopush     on;                                                                                                  tcp_nodelay     on;                                                                                                 keepalive_timeout  65;                                                                                              include /usr/local/nginx/conf/conf.d/*.conf;                                                                        
}
2.4. 配置统一管理

在conf目录下面创建conf.d文件夹,用于存储永不同环境的配置文件

mkdir conf.d
2.5. 开发配置

添加 开发环境配置文件dev.conf

cd conf.d
vim dev.conf

添加以下内容
在这里插入图片描述

##############################################DEV环境##################################################                 
server {                                                                                                                listen       80;                                                                                                server_name  dev-ams.gblfy.com.cn;                                                                       location / {                                                                                                    proxy_set_header Host $host;                                                                                    proxy_set_header  X-Real-IP        $remote_addr;                                                                proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;                                                  proxy_set_header X-NginX-Proxy true;                                                                            proxy_pass http://xxx.xxx.xxx.xxx:8082;                                                                            }                                                                                                                   location ^~/dev-api/ {                                                                                          proxy_set_header Host $host;                                                                                    proxy_set_header  X-Real-IP        $remote_addr;                                                                proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;                                                  proxy_set_header X-NginX-Proxy true;                                                                            rewrite ^/dev-api/(.*)$ /$1 break;                                                                              proxy_pass http://xxx.xxx.xxx.xxx:8080;                                                                            }                                                                                                                   error_page   500 502 503 504  /50x.html;                                                                        location = /50x.html {                                                                                        root   html;                                                                                                }                                                                                                               }         
2.6. UAT配置

添加 uat环境配置文件uat.conf

cd conf.d
vim uat.conf

内容详细如下
在这里插入图片描述

###############################################UAT环境##################################################                
upstream app-cluster-test {                                                                                             server xxx.xxx.xxx.xx1:8080;                                                                                    server xxx.xxx.xxx.xx2:8080;                                                                                    }                                                                                                               server {                                                                                                               listen       80;                                                                                                server_name  uat-ams.gblfy.com.cn;                                                                       location / {                                                                                                    proxy_set_header Host $host;                                                                                    proxy_set_header  X-Real-IP        $remote_addr;                                                                proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;                                                  proxy_set_header X-NginX-Proxy true;                                                                            proxy_pass http://xxx.xxx.xxx.xxx:8082;                                                                           }                                                                                                                     location ^~/uat-api/ {                                                                                          proxy_set_header Host $host;                                                                                    proxy_set_header  X-Real-IP        $remote_addr;                                                                proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;                                                  proxy_set_header X-NginX-Proxy true;                                                                            rewrite ^/uat-api/(.*)$ /$1 break;                                                                              proxy_pass  http://app-cluster-test;                                                                             }                                                                                                                   error_page   500 502 503 504  /50x.html;                                                                          location = /50x.html {                                                                                            root   html;                                                                                           }                                                                                                               }
2.7. 启动nginx
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/515597.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

投入20亿,赋能1万家,阿里云正式启动云原生合作伙伴计划

导读:在 2020 阿里云合作伙伴峰会上,阿里巴巴合伙人、阿里云智能基础产品事业部高级研究员蒋江伟发表了《深耕“被集成”,共建新生态》主题演讲,他在演讲中提到,阿里云将继续深耕“被集成”战略,做强生态&a…

全球首发|阿里云正式推出云数据库Redis6.0版本

Redis 6.0更多精彩详情 2020年6月23日,阿里云正式推出云数据库Redis 6.0版本。Redis 6.0版本为Redis开源社区于5月2日发布的全新版本,包含多项重大功能更新和大幅度的性能提升。 依托于阿里云强大的云服务与管控能力,以及团队的快速跟进&…

新春聊一下:技术架构与架构师角色的诸多思考

来源 | 阿里巴巴中间件责编 | 贾凯强头图 | 下载于视觉中国我叫道延, 2014 年加入阿里,在阿里通信工作了近两年。2016 年年底加入业务平台团队,当时 Leader 找我的第一件事就是要解决大促的问题,第二件事就是解决安全生产的问题。…

数据中台模型设计系列(一):维度建模初探

前言:更多关于数智化转型、数据中台内容可扫码加群一起探讨 阿里云数据中台官网 https://dp.alibaba.com/index 1、与几个概念的关系 操作型业务系统 对于这个概念大家都不陌生。企业业务赖以运转的交易系统就属于操作型业务系统。因此它是为了保障业务正常运转&am…

企业微信小程序获取用户信息响应40029

文章目录官网查询原因分析关系梳理解决方案官网查询 https://open.work.weixin.qq.com/devtool/query?e40029 原因分析 出现这个问题的原因,是开发环境和测试环境都已发布单独的微信小程序,在企微后台自建了2个应用来绑定小程序,但是在后…

周志明:职业电竞选手的Java大神路

云栖号资讯:【点击查看更多行业资讯】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 简介: 作为豆瓣9.0评分的作者,周志明算得上是一位Java大神,而他却对此不以为意&#xff0…

十年沉淀,阿里云发布全球领先的对象存储OSS可用性SLA

原文链接 本文为云栖社区原创内容,未经允许不得转载。

SRE 是如何保障稳定性的

作者 | 悟鹏 来源 | 阿里巴巴中间件头图 | 下载于视觉中国前言在技术工作中,对于产品/基础技术研发和 SRE 两种角色,通常会有基于「是否侧重编码」的理解。对于产品研发转做 SRE ,经常会产生是否要「脱离编码工作」的看法,或者认为…

三步在阿里云上面搭建一套个性化推荐系统

背景信息 互联网时代个性化推荐已经渗透到人们生活的方方面面,例如常见的“猜你喜欢”、“相关商品”等。互联网能够对用户投其所好,向用户推荐他们最感兴趣的内容,实时精准地把握用户兴趣。目前很多成功的手机APP都引入了个性化推荐算法&am…

漫画通信:惊呆了,手机登录还可以这么玩!

原文链接 本文为云栖社区原创内容,未经允许不得转载。

备战春招:阿里一面,给了几条SQL,问需要执行几次树搜索操作?

作者 | 捡田螺的小男孩来源 | 捡田螺的小男孩有位朋友去阿里面试,他说面试官给了几条查询SQL,问:需要执行几次树搜索操作?我朋友当时是有点懵的,后来冷静思考,才发现就是考索引的几个基础知识点~~ 本文我们分九个索引知…

阿里高级技术专家:如何结构化地思考、做事、成长?

作者 | 承风 阿里巴巴高级前端技术专家 导读:建立结构化的思维,以结构化的模式驱动工作,以结构化的体系构建自身的能力,小到写 PPT、大到为业务提供更大价值,都是非常值得我们使用的模式。阿里巴巴数字供应链事业部高…

都在说云原生,它的技术图谱你真的了解吗?

来源 | K8sMeetup社区作者 | Catherine Paganini翻译 | Sarah(K8sMeetup)校对 | 木子(才云)如果你研究过云原生应用程序和相关技术,大概率你遇到过 CNCF 的云原生全景图。这张全景图技术之多规模之大无疑会让人感到震惊…

“玄姐”孙玄,特立独行的架构师

云栖号资讯:【点击查看更多行业资讯】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 简介: 曾任58集团技术委员会主席、转转首席架构师的孙玄,一头飘逸长发,江湖人称“玄姐”。…

后端数据库中返回date日期时 前端显示为一串数字

解决方法:加上JsonFormat注解 出参时自动转换为设定格式 问题解决 ! /*** 开始时间*/JsonFormat(pattern "yyyy-MM-dd HH:mm:ss", timezone "GMT8")private Date startTime;(也可以把数据库的格式变成字符串存入数据库…

从Android到Java:如何从不同视角解决问题?

云栖号资讯:【点击查看更多行业资讯】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 阿里妹导读:Android 转 Java 开发在技术栈上有哪些差异?思考和解决问题时又会有怎样的转变&#xff1…

为什么我直接在servlet里面直接输出message不乱码,而跳转到web页面就出现乱码,而且存到数据库的也是乱码,我尝试了网上的各种方法,还是不成功。。

为什么我直接在servlet里面直接输出message不乱码,而跳转到web页面就出现乱码,而且存到数据库的也是乱码,我尝试了网上的各种方法,还是不成功。。 public class HandleRegister extends HttpServlet { public void init(Servle…

CPU 是如何执行任务的?

作者 | 小林coding来源 | 小林coding头图 | 下载于视觉中国前言关于 CPU ,你清楚下面这几个问题吗?有了内存,为什么还需要 CPU Cache?CPU 是怎么读写数据的?如何让 CPU 能读取数据更快一些?CPU 伪共享是如何…

@DateTimeFormat和@JsonFormat注解

文章目录一、场景复现1. 准备实体vo2. 定义⼀个Controller3. 请求测试二、⼊参格式化2.1. 日期转换2.2. 请求测试三、 出参格式化3.1. 现象3.2. 改造3.4. 测试验证3.5. 时间少了8小时3.6. 解决方案3.7. 效果图一、场景复现 1. 准备实体vo 定义⼀个pojo,它有⼀个 j…

初学jsp课,一个基于jsp+javabean+servlet+sql server小型房源网站,实现了用户表,房源表,及留言板的增删查改。使用deamwear编译器

1 设计目的 《Web应用开发课程设计》是实践性教学环节之一,是《Web程序设计》课程的辅助教学课程。通过课程设计,使学生掌握Web网站的基本概念,结合实际的操作和设计,巩固课堂教学内容,使学生掌握软件开发的基本概念、…