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

百度搜索不到我的网站必应站长平台

百度搜索不到我的网站,必应站长平台,手机网站建设czyzj,wordpress mip插件nginx mirror流量镜像详细介绍以及实战示例 1.nginx mirror作用2.nginx安装3.修改配置3.1.nginx.conf3.2.conf.d目录下添加default.conf配置文件3.3.nginx配置注意事项3.3.nginx重启 4.测试 1.nginx mirror作用 为了便于排查问题,可能希望线上的请求能够同步到测试…

nginx mirror流量镜像详细介绍以及实战示例

  • 1.nginx mirror作用
  • 2.nginx安装
  • 3.修改配置
    • 3.1.nginx.conf
    • 3.2.conf.d目录下添加default.conf配置文件
    • 3.3.nginx配置注意事项
    • 3.3.nginx重启
  • 4.测试

1.nginx mirror作用

为了便于排查问题,可能希望线上的请求能够同步到测试环境,以便于验证某些功能;或者是在多个环境的情况下,希望能够将某些请求在几个环境中同步,比如调用环境A接口保存的数据,也需要在环境B、环境C中保存。而如果没有特别配置,则这个请求就只在当前环境中生效,这无法满足我们的需求。于是,我们需要引入流量镜像这一概念。

2.nginx安装

注意:nginx 1.13.4及后续版本才包含内置ngx_http_mirror_module模块,提供流量镜像(复制)的功能。
使用docker-compose安装nginx。本文使用的nginx版本为1.22.0.若还没有安装docker-compose的可以点击这里 查看教程。
拉取镜像:docker pull nginx:1.22.0
配置docker-compose.yml

version: "3.3"
services:mynginx:container_name: mynginximage: nginx:1.22.0
#    volumes:
#      - ./conf/nginx.conf:/etc/nginx/nginx.conf
#      - ./conf/conf.d:/etc/nginx/conf.d
#      - ./log/nginx:/var/log/nginxports:- "19096:19096"- "80:80"networks:- test-networkprivileged: truedeploy:replicas: 1update_config:parallelism: 2delay: 10srestart_policy:condition: on-failurenetworks:test-network:

启动:docker-compose up -d
注意:第一次启动时需要将volumes目录挂载注释掉,否则nginx会启动失败。
启动成功后,再将nginx的配置文件复制出来,后续直接在外面修改配置,而不需要再进入到容器内。
复制配置文件到conf目录内:

mkdir conf
docker cp mynginx:/etc/nginx/nginx.conf ./conf/nginx.conf
docker cp mynginx:/etc/nginx/conf.d ./conf/conf.d

复制完成后,再将上面docker-compose.yml中的volumes挂载都取消注释,然后重新启动,执行命令:docker-compose up -d
至此,nginx安装启动完成。

3.修改配置

3.1.nginx.conf

配置如下,include /etc/nginx/conf.d/*.conf; 表示会把/etc/nginx/conf.d目录下所有.conf结尾的文件都加载进来,所以我们不需要改这个文件,直接修改conf.d目录下的配置即可。
在这里插入图片描述

3.2.conf.d目录下添加default.conf配置文件

如果已存在default.conf配置,可以删掉再重新添加,内容如下

# 定义三个后端服务的 upstream
upstream main_server {server 192.168.80.251:9096;
}upstream mirror_server1 {server 192.168.80.251:9097;
}upstream mirror_server2 {server 192.168.80.251:9098;
}# 主要的 server 块
server {listen 19096;access_log /var/log/nginx/access.log main;error_log /var/log/nginx/error.log warn;location / {# 主要逻辑,传到 main_serverproxy_pass http://main_server;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;# 镜像流量到 mirror_serversmirror /mirror1;mirror /mirror2;mirror_request_body on;  # 启用镜像请求的请求主体proxy_pass_request_body on;}# Mirror locationlocation = /mirror1 {internal; # 内部调用,不对外开放proxy_pass http://mirror_server1$request_uri;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;}location = /mirror2 {internal; # 内部调用,不对外开放proxy_pass http://mirror_server2$request_uri;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;}}

3.3.nginx配置注意事项

  1. internal 指令的使用:internal 指令表示该 location 只能被内部请求访问。在 mirror 配置中,这是正确的设置,但请确保在 proxy_pass 指令中正确传递 URI。
  2. 检查 proxy_pass 指令:确保在 proxy_pass 指令中传递的 URI 是正确的。特别是在镜像请求部分:
	proxy_pass http://mirror_server1$request_uri;
  1. mirror_request_body on; # 启用镜像请求的请求主体 on | off,这行只需在主 location 块中配置一次。
  2. 在 Nginx 中,设置 mirror_request_body on; 会将请求主体数据镜像到指定的地方,而proxy_pass_request_body on; 则是允许在镜像请求中将客户端发送的请求主体传递到镜像的后端服务器。
      如果只设置了 mirror_request_body on; 而没有设置 proxy_pass_request_body on;,实际上 Nginx 也仍然会将请求数据保存到镜像和主体服务。这是因为 mirror_request_body on; 的作用是镜像请求主体数据,即将请求数据复制到指定的地方,而不影响实际的后端请求。即使没有显式设置 proxy_pass_request_body on;,Nginx 仍然会默认将请求主体数据通过镜像保存下来。
      当客户端发送请求时,Nginx会根据配置将请求主体数据镜像到指定的地方,无论是否设置了 proxy_pass_request_body on;。但是,如果需要将这些请求主体数据传递到后端服务器,则需要显式地设置 proxy_pass_request_body on;。
      因此,即使没有设置 proxy_pass_request_body on;,Nginx 仍然会处理请求主体数据并将其保存到镜像和主体服务,但如果需要将这些数据传递到后端服务器,还是需要设置 proxy_pass_request_body on;。
  3. $request_uri;$request_uri 是一个 Nginx 变量,代表客户端请求的 URI。在 Nginx 配置中,它可以用于传递当前请求的 URI。在主服务中,通常不需要在 proxy_pass 指令中配置 $request_uri,因为默认情况下,proxy_pass 会传递原始请求的 URI。但在一些特殊情况下,您可能希望将当前请求的 URI 传递给后端服务器,这时可以在主服务中使用 $request_uri。在镜像服务中,由于要确保传递的是镜像请求的 URI,通常会显式地使用 $request_uri。因此,需要根据具体需求在不同的 location 中决定是否使用 $request_uri。
	proxy_pass http://mirror_server1$request_uri;
  1. 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 指令用于设置向后端服务器传递的请求头信息。它们分别设置了 Host、X-Real-IP、X-Forwarded-For 和 X-Forwarded-Proto 请求头。这些请求头在代理过程中非常重要,它们能够让后端服务器了解到客户端的真实 IP、协议类型等信息。这些指令通常需要在主服务和镜像服务中都配置,以确保传递给后端的请求头是完整的、准确的,并且包含了必要的信息。

3.3.nginx重启

修改完配置nginx配置后,重启服务:docker exec -it mynginx nginx -s reload
或者 进入容器内重启:

docker exec -it mynginx 
nginx -s reload

4.测试

监听的19096端口为nginx的服务,9096、9097、9098为三个相同的服务的端口,9096端口为主服务,9097、9098为镜像服务
例如调用接口:http://192.168.80.251:9096/data/receive/receiveImgtList,数据只会保存在9096服务;
例如调用接口:http://192.168.80.251:19096/data/receive/receiveImgtList,数据会在这三个服务都保存;

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

相关文章:

  • 网站开发模式名词外贸谷歌优化
  • 网站素材 下载产品推广渠道
  • 网站后台维护怎么做seo专员工资一般多少
  • 中国网站推广黄页名录微商推广哪家好
  • 哈尔滨网站开发电话电商培训基地
  • 如何用php数据库做网站搜索seo优化托管
  • 中国城乡建设部人力网站首页优化落实疫情防控
  • 做网站到底能不能赚钱网络优化工程师前景
  • 乌镇网站建设标书百度站长工具域名查询
  • 制作公司网站价格腾讯广告代理商加盟
  • 大学生活动网站开发文案苏州seo门户网
  • 阿里云认证网站建设题库seo助理
  • 凤岗网站仿做靠谱seo外包定制
  • xampp安装wordpress说明徐州seo外包
  • 啥网站都能看的浏览器下载百度收录查询工具
  • 福田附近公司做网站建设哪家效益快奶糖 seo 博客
  • 临沂免费自助建站模板品牌整合营销
  • iis做本地视频网站找客户资源的网站
  • 做调查用哪个网站网络推广有多少种方法
  • 开发一个交易网站多少钱在线工具
  • 网站平台怎么建立的软文范例
  • 移动应用开发专业学什么东莞seo软件
  • 做宣传网站的公司手机百度极速版app下载安装
  • 私人可以做慈善网站吗外贸如何推广
  • 网站页面模板页面布局如何成为百度广告代理商
  • 瑞安外贸网站建设曲靖百度推广
  • 先做网站还是服务器销售营销方案100例
  • 用卫生纸做的礼物街网站免费网页空间到哪申请
  • 手游网站做cpc还是cpm广告号厦门网页搜索排名提升
  • 人个做外贸用什么网站好宁波百度seo点击软件