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

南阳网站建设培训怎么创建一个网页

南阳网站建设培训,怎么创建一个网页,网站域名怎么做变更,代理公司注销公司费用大概要多少一 nginx代理多个服务,且服务之间需要相互通信 多个服务运行在docker容器中,nginx同样在docker容器中 比如前端服务需要请求后端服务,用户请求服务器80或者443 ,nginx代理请求到前端服务,前端服务业务请求到后端服务…

一 nginx代理多个服务,且服务之间需要相互通信

多个服务运行在docker容器中,nginx同样在docker容器中

比如前端服务需要请求后端服务,用户请求服务器80或者443 ,nginx代理请求到前端服务,前端服务业务请求到后端服务

1.1 docker需要创建网络

docker network create --driver bridge --subnet 172.30.1.0/24 --gateway 172.30.1.1 my_net
# my_net 自定义网络名称
# 172.30.1.0/24 自定义网段
# geteway 定义

1.2 创建docker容器时需要指定网络到自己创建的网络,并可以分配一个ip

这里使用docker compose

创建了一个remarkbackContainer的容器,指定了端口映射,指定网络,并固定一个ip地址

version: "3"
services:remarkbackContainer:image: remarkback:v1.0container_name: remarkbackContainerrestart: alwaysports:- 9012:9012networks:my_net:ipv4_address: 172.30.1.3 #固定ip
networks:my_net:external: true

1.3 前端服务请求后端服务,通过nginx代理完成

因为前端项目如果直接请求后端服务的地址和端口,那么将后端服务直接暴露出来,使用nginx进行代理则可以隐藏后端服务

在nginx的配置文件中增加匹配

比如,前端请求直接后端接口统一用api路径,[http://demain.com/api/xxx],那么在nginx中这样配置

proxy_pass 可以直接写后端服务的容器名称,这样请确保nginx,前后端服务都在docker 同一个网络中

              location /api{proxy_pass http://remarkbackContainer:9012; # 后端服务ip接口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-Forwarded-Proto $scheme;#proxy_set_header access_token $http_access_token;# 添加 CORS 头信息add_header 'Access-Control-Allow-Origin' '*';add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE';add_header 'Access-Control-Allow-Headers' 'Origin, X-Requested-With, Content-Type, Accept, Authorization';add_header 'Access-Control-Allow-Credentials' 'true';add_header 'Access-Control-Max-Age' '86400';}

二 nginx代理后 header信息丢失

比如使用 jwt进行验证,将token放入了一个 access_token中 ,但是登录成功后仍然需要验证权限,通过后端服务日志查看,header中并没有token信息

原因:

这是因为nginx默认会剔除掉 _ 等特殊字符的header key,需要修改nginx配置

增加 underscores_in_headers on;

http {include       mime.types;default_type  application/octet-stream;sendfile        on;underscores_in_headers on;    # 用于解决请求头中包含下划线'_'的keykeepalive_timeout  65;client_max_body_size 50m;...
}

三 使用域名、https时 前端访问出现跨域问题

1. 先确保在http协议下能正常请求

2. 再确认单独https请求后端服务是否正常

3. 如果不正常,那么是后端服务的https代理未配置好

4. 如果正常,那么可能是前端服务请求后端服务的地址不是https

情况1

        比如域名是 demain.com,用户请求 https://demain.com时访问了前端服务页面,但是点击操作时前端服务请求后端时出现跨域,如果是请求后端地址不是同一个域名,那么会出现跨域问题

        这种情况可以将请求地址改成 https://demain.com/api这种带有固定前缀的,再在nginx上进行转发到实际后端服务上【参考1.3】

情况2

        如果请求的地址也是经过nginx转发,但是仍然出现,那么就看看后端服务的https转发是否正确,

http://www.hkea.cn/news/746116/

相关文章:

  • 开发网站开发工程师培训心得简短200字
  • 网站优化工具升上去软文营销代理
  • 北京监理协会培训网站变现流量推广app
  • 邯郸做wap网站最全bt搜索引擎入口
  • 用网站做自我介绍pptsem推广竞价托管
  • 建设网站项目的目的是什么意思营销型网站方案
  • 濮阳网站建设价格南昌seo排名收费
  • jsp做网站案例steam交易链接在哪里看
  • 做网站需要招聘内容范本信息流广告
  • 如何建公众号外贸网站建设优化
  • 怎么把网站横幅做很大东莞营销推广公司
  • 网站运营与管理实训报告松松软文平台
  • 奉化云优化seo手机网站排名优化软件
  • h5响应式集团网站推荐电商平台有哪些?
  • 企业所得税税率三个档次关键词优化快排
  • 长宁区网站建设b2b免费发布平台
  • php 个人网站网站安全检测工具
  • 做的网站很卡是什么原因seochan是什么意思
  • 怎么做盗版视频网站吗百度权重1
  • 政府网站 建设 计划品牌推广策划方案案例
  • 临沂网站建设那家好小米市场营销案例分析
  • 德化网站建设企业中层管理人员培训课程
  • 网站怎么通过流量赚钱爱站网能不能挖掘关键词
  • 网站建设课后感营销型网站有哪些平台
  • 哪个网站做生鲜配送厦门seo外包公司
  • 水电行业公司设计logo重庆seo排名扣费
  • 可信赖的南昌网站制作站长工具网站
  • 济南建站公司电话成都关键词自然排名
  • 门户网站开发公司推广网页
  • 如何做网站认证实时军事热点