草庐IT

一次不规范HTTP请求引发的nginx响应400问题分析与解决

背景最近分析数据偶然发现nginxlog中有一批用户所有的HTTPPOSTlog上报请求均返回400,没有任何200成功记录,由于只占整体请求的不到0.5%,所以之前也一直没有触发监控报警,而且很奇怪的是只对于log上报的POST接口会存在这种特定用户全部400的情况,而对于其他接口无论POST还是GET均没有此类问题。进一步分析log发现其实对某些地区的用户请求,这个比例甚至超过了10%,于是花时间跟进了一下,最终发现源于部分机型客户端发出的HTTP请求格式不规范导致,这里记录一下分析过程、原因以及最终解决方案。问题分析常见nginx400原因搜寻网上资料,发现一般可能有以下几个原因会导致n

一次不规范HTTP请求引发的nginx响应400问题分析与解决

背景最近分析数据偶然发现nginxlog中有一批用户所有的HTTPPOSTlog上报请求均返回400,没有任何200成功记录,由于只占整体请求的不到0.5%,所以之前也一直没有触发监控报警,而且很奇怪的是只对于log上报的POST接口会存在这种特定用户全部400的情况,而对于其他接口无论POST还是GET均没有此类问题。进一步分析log发现其实对某些地区的用户请求,这个比例甚至超过了10%,于是花时间跟进了一下,最终发现源于部分机型客户端发出的HTTP请求格式不规范导致,这里记录一下分析过程、原因以及最终解决方案。问题分析常见nginx400原因搜寻网上资料,发现一般可能有以下几个原因会导致n

搭建自己的个人web项目指南 (二)---安装nginx | 域名解析与备案

搭建自己的个人web项目指南(二)---安装nginx|域名解析与备案一、安装nginx安装nginx编译运行依赖    yum-yinstallgcc-c++pcrepcre-develzlibzlib-developensslopenssl-devel下载最新稳定版并解压    nginx:download目前最新稳定版是1.22.0,右击复制下载连接 使用Xsheel连接至服务器    wget https://nginx.org/download/nginx-1.22.0.tar.gz    tar-zxvf nginx-1.22.0.tar.gz配置/编译安装nginx    ./c

搭建自己的个人web项目指南 (二)---安装nginx | 域名解析与备案

搭建自己的个人web项目指南(二)---安装nginx|域名解析与备案一、安装nginx安装nginx编译运行依赖    yum-yinstallgcc-c++pcrepcre-develzlibzlib-developensslopenssl-devel下载最新稳定版并解压    nginx:download目前最新稳定版是1.22.0,右击复制下载连接 使用Xsheel连接至服务器    wget https://nginx.org/download/nginx-1.22.0.tar.gz    tar-zxvf nginx-1.22.0.tar.gz配置/编译安装nginx    ./c

SpringCloudAlibaba学习(解决SpringBoot初始化以及Nginx启动出错问题)

微服务强调每个服务都是单独的数据库在不使用微服务的情况下可以采用分布式架构,通过Template来调用远程的Rest接口但这种方式维护起来很麻烦,而且有很多弊端。一、环境搭建1、首先搭建SpringBoot框架使用SpringInitializr快速搭建SpringBoot框架时可能会遇到访问超时的问题。此问题有两种解决的办法:①将服务源改成https://start.aliyun.com,这种方法是采用alibaba的springboot架构模型,会和常规的模型有出入。(这种方法有的时候搭建出来没有pom文件,不能被识别为maven项目,这种情况采用第二种方法即可)②将服务源改成http:/

SpringCloudAlibaba学习(解决SpringBoot初始化以及Nginx启动出错问题)

微服务强调每个服务都是单独的数据库在不使用微服务的情况下可以采用分布式架构,通过Template来调用远程的Rest接口但这种方式维护起来很麻烦,而且有很多弊端。一、环境搭建1、首先搭建SpringBoot框架使用SpringInitializr快速搭建SpringBoot框架时可能会遇到访问超时的问题。此问题有两种解决的办法:①将服务源改成https://start.aliyun.com,这种方法是采用alibaba的springboot架构模型,会和常规的模型有出入。(这种方法有的时候搭建出来没有pom文件,不能被识别为maven项目,这种情况采用第二种方法即可)②将服务源改成http:/

使用Ingress-Nginx来暴露ArgoCD Web-UI

未安装ArgoCD参考GitOps实践之kubernetes部署Argocd1.查看ArgocdService可以看到是ClusterIP,因此不能从外部直接访问Argocd的WEB-UI#kubectlgetsvc-nargocdNAMETYPECLUSTER-IPEXTERNAL-IPPORT(S)AGEargocd-applicationset-controllerClusterIP10.96.52.1097000/TCP,8080/TCP25dargocd-dex-serverClusterIP10.96.57.2175556/TCP,5557/TCP,5558/TCP25dargoc

使用Ingress-Nginx来暴露ArgoCD Web-UI

未安装ArgoCD参考GitOps实践之kubernetes部署Argocd1.查看ArgocdService可以看到是ClusterIP,因此不能从外部直接访问Argocd的WEB-UI#kubectlgetsvc-nargocdNAMETYPECLUSTER-IPEXTERNAL-IPPORT(S)AGEargocd-applicationset-controllerClusterIP10.96.52.1097000/TCP,8080/TCP25dargocd-dex-serverClusterIP10.96.57.2175556/TCP,5557/TCP,5558/TCP25dargoc

Nginx如何升级Openssl

1.什么是Openssl?在计算机网络上,OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连线者的身份。这个包广泛被应用在互联网的网页服务器上。其主要库是以C语言所写成,实现了基本的加密功能,实现了SSL与TLS协议。OpenSSL可以运行在OpenVMS、MicrosoftWindows以及绝大多数类Unix操作系统上(包括Solaris,Linux,MacOSX与各种版本的开放源代码BSD操作系统)。虽然此软件是开放源代码的,但其许可书条款与GPL有冲突之处,故GPL软件使用OpenSSL时(如Wget)必须对OpenSSL给予例外。

Nginx如何升级Openssl

1.什么是Openssl?在计算机网络上,OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连线者的身份。这个包广泛被应用在互联网的网页服务器上。其主要库是以C语言所写成,实现了基本的加密功能,实现了SSL与TLS协议。OpenSSL可以运行在OpenVMS、MicrosoftWindows以及绝大多数类Unix操作系统上(包括Solaris,Linux,MacOSX与各种版本的开放源代码BSD操作系统)。虽然此软件是开放源代码的,但其许可书条款与GPL有冲突之处,故GPL软件使用OpenSSL时(如Wget)必须对OpenSSL给予例外。