![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux
文章平均质量分 79
私念
PHP GOLANG
展开
-
nginx location配置详细解释
语法详解语法规则: location [=|~|~*|^~] /uri/ { … }=开头表示精确匹配^~开头表示uri以某个常规字符串开头,理解为匹配url路径即可。nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~/static//aa匹配到(注意是空格)。以xx开头~开头表示区分大小写的正则匹配以xx结尾~*开头表示不区分大小写的正则匹配...原创 2022-02-22 19:27:22 · 1356 阅读 · 0 评论 -
php中cookie的值包含加号(+)获取变成空格的问题分析
背景最近发现有部分用户反馈,获取不到登录信息,于是进行分析分析我们的登录信息是加密存储到cookie中的,查看了下这个用户的 cookie加密信息中包含 加号“+” ,但是 php $_COOKIE 获取的时候,变成了空格,于是解密失败分析请求头中的信息发现,请求传过来的值是有 “+” 的,但是 :比如cookie中存储的 “cWEolyrQ0l63FG+YWHA” ,$_COOKIE 获取出来显示的 “cWEolyrQ0l63FG YWHA” ,多...原创 2022-02-11 11:56:29 · 1790 阅读 · 0 评论 -
TCP全链接队列满的问题分析之net.core.somaxconn详解
背景参考:TCP全链接队列满的问题分析之net.core.somaxconn详解_运维_PHP面试网最近控制台查看腾讯云服务器状态时,发现一个异常情况提示如下:该实例最近12小时内在2022-01-18 14:48出现过TCP全链接队列满的情况,为避免成为业务瓶颈,建议您检查业务健康情况。可参考文档:点击查看TCP 全连接队列满TCP 全连接队列的长度取net.core.somaxconn及业务进程调用 listen 时传入的 backlog 参数,两者中的较小值。若您的实..原创 2022-01-18 17:49:44 · 5385 阅读 · 0 评论 -
elasticsearch中四种常见的相关度分数优化方法
对相关度评分进行调节和优化的常见的4种方法1、query-time boost 查询的时候设置query的boost. 增加权重2、重构查询结构.如should中嵌套bool。3、negative boost 包含了negative term的doc,分数乘以negative boost,分数降低4、constant_score 如果你压根儿不需要相关度评分,直接走constant_score加filter,所有的doc分数都是1,没有评分的概念了1、query-time boost原创 2021-12-23 21:54:12 · 1451 阅读 · 0 评论 -
nginx中http转https的几种方式
参考:nginx中http转https的几种方式第一种方式使用return 301如下:server{listen80;server_namewww.phpmianshi.com;return301https://$http_host$request_uri;access_logoff;}第二种方式使用rewrite如下:server{listen80;server_namewww.phpmianshi.com;r...原创 2021-12-02 20:33:42 · 29515 阅读 · 2 评论 -
linux中入侵类问题排查思路
参考:linux中入侵类问题排查思路一、检查隐藏帐户及弱口令 检查服务器系统及应用帐户是否存在弱口令: 检查说明:检查管理员帐户、数据库帐户、网站后台管理员帐户等密码设置是否较为简单,简单的密码很容易被黑客破解。 解决方法:以管理员权限登录系统或应用程序后台,修改为复杂的密码。 使用last命令查看下服务器近期登录的帐户记录,确认是否有可疑 IP 登录过机器: 检查说明:攻击者或者恶意软件往往会往系统中注入隐藏的系统帐户实施提权或其他破坏性的攻.原创 2021-11-22 20:00:45 · 1173 阅读 · 0 评论 -
vim使用bash-support插件打造成shell编辑器
参考:vim使用bash-support插件打造成shell编辑器背景IDE就是这样一个软件,它为了最大化程序员生产效率,提供了很多编程所需的设施和组件。 IDE 将所有开发工作集中到一个程序中,使得程序员可以编写、修改、编译、部署以及调试程序。在这篇文章中,我们会介绍如何通过使用 bash-supportvim 插件将Vim 编辑器安装和配置为一个编写 Bash 脚本的 IDE。简介bash-support 是一个高度定制化的 vim 插件,它允许你插入:文件头、补全语句、注释...原创 2021-11-18 20:39:00 · 796 阅读 · 0 评论 -
linux中安全加固几条建议
参考:linux中安全加固几条建议 - PHP面试网背景本文以CentOS7版本为例来介绍,如果你使用的是秘钥登录服务器1-5步骤可以跳过。1) 设置复杂密码服务器设置大写、小写、特殊字符、数字组成的12-16位的复杂密码 ,也可使用密码生成器自动生成复杂密码,这里给您一个链接参考:生成随机密码 - 密码生成器echo"root:wgr1TDs2Mnx0XuAv"|chpasswd2) 设置密码策略修改文件/etc/login.defsPASS_MAX...原创 2021-11-17 21:10:49 · 300 阅读 · 0 评论 -
git中sh文件添加可执行权限
参考:git中sh文件添加可执行权限背景有时我们需要在git仓库中放一些可执行脚本,但是部署到线上后却没有可执行权限,还要单独加权限,过程比较繁琐,下面介绍下如果修改git仓库中文件的权限1.查看文件权限信息$gitls-files--stage100644b0a1909819160a88cf723cba9b082a41638e19d70work.sh发现644(r=4,w=2,x=1),需要将其修改为可执行权限755git-ls-files - ...原创 2021-11-09 09:22:34 · 1125 阅读 · 0 评论 -
linux中修改密码passwd、chpasswd详解
命令passwdpasswd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [-S] [--stdin] [username] passwd程序用于更新用户的身份验证令牌(口令/密码)。此任务是通过调用Linux-PAM和Libuser API实现的。实际上,它将自身初始化为Linux-PAM的”passwd”服务,并利用配置的密码模块进行身份验证,然后更新用户的密原创 2021-10-22 18:17:34 · 2432 阅读 · 0 评论 -
openresty中的高级限制请求
参考:openresty中的高级限制请求Nginx 有ngx_http_limit_req_module可用于限制请求处理速率,但大多数人似乎只使用其基本功能:通过远程地址限制请求率http{limit_req_zone$binary_remote_addrzone=one:10mrate=1r/s;...server{...location/search/{limit_reqzone=oneb...原创 2021-10-11 19:58:39 · 426 阅读 · 0 评论 -
openresty中location和lua的使用详解
参考:openresty中location和lua的使用详解与其他 location 配合nginx 世界的 location 是异常强大的,毕竟 nginx 的主要应用场景是在负载均衡、API server,在不同 server、location 之间跳转更是家常便饭。利用不同 location 的功能组合,我们可以完成内部调用、流水线方式跳转、外部重定向等几大不同方式,下面将给大家介绍几个主要应用,就当抛砖引玉。内部调用例如对数据库、内部公共函数的统一接口,可以把它们放到统一的 loca原创 2021-10-09 17:39:06 · 2100 阅读 · 0 评论 -
DNS原理什么叫域名劫持和域名欺骗/域名污染
参考:DNS原理什么叫域名劫持和域名欺骗/域名污染 - PHP面试网给大家扫盲一下 DNS 的常识。既然是扫盲 DNS,也顺带说说“域名劫持”和“域名污染”这两个很容易混淆的概念。提醒一下:这两者的其中之一是 GFW 的大杀器,爱翻墙的同学有必要了解。DNS 是啥?DNS 是洋文“Domain Name System”的缩写,直译过来就是“域名系统”。DNS 有啥用?咱们每天打交道的这个互联网,其底层的基石是“IP”。IP 是“Internet Protocol”的缩写,中文就.原创 2024-05-09 11:20:51 · 826 阅读 · 0 评论 -
Gitlab 安装与配置
参考:Gitlab 安装与配置Gitlab 安装使用 docker-compose 安装 Gitlab,traefik 反向代理 Gitlab,并开启 https编辑 docker-compose.yaml 文件 $mkdirgitlab$cat<<'EOF'|teegitlab/docker-compose.yamlversion:"3"services:gitlab:image:gitlab/gitlab-ceco...原创 2021-09-26 11:59:22 · 224 阅读 · 0 评论 -
SonarQube的安装、配置与使用
参考:SonarQube的安装、配置与使用简介sonarqube是一个代码质量管理平台,可通过安装不同的插件集成测试工具、代码质量分析工具、持续集成等多种功能。sonarqube 目前最新版为 8.0,最新稳定版本为 7.9,由于性能原因,sonar 从 7.9 之后就不再 支持 MySQL,替代方案为 PostgreSQL。这里选择postgres:12和sonarqube:7.9-community两个 docker 镜像,使用 docker-compose 配置并启动一、...原创 2021-09-23 20:13:35 · 9731 阅读 · 1 评论 -
通俗易懂解释IP段192.168.1.0/24和192.168.0.0/16
参考:通俗易懂解释IP段192.168.1.0/24和192.168.0.0/16 - PHP面试网192.168.1.0/24 包含哪些IPIP地址格式采用“斜线记法”,即:IP地址/网络前缀。例如192.168.1.0/24表示32位的二进制地址中(任何IP的二进制地址都是32位),前24位为网络前缀,后8位代表主机号。在换算中,192.168.1.0/24对应的二进制为: 11000000,10101000,00000001,00000000 其中红色为主机号,总...原创 2021-09-22 21:08:55 · 5179 阅读 · 1 评论 -
openresty操作mysql的详解
参考:openresty操作mysql的详解OpenResty (也称为 ngx_openresty)是一个全功能的 Web 应用服务器,它打包了标准的 Nginx 核心,很多的常用的第三方模块,以及它们的大多数依赖项。OpenResty 通过汇聚各种设计精良的 Nginx 模块,从而将 Nginx 有效的变成一个强大的 Web 应用服务器,这样, Web 开发人员可以使用 Lua 脚本语言调动 Nginx 支持的各种C以及Lua 模块,快速构造出足以胜任 10K+ 并发连接响应的超高性能Web原创 2021-09-14 20:31:49 · 1231 阅读 · 0 评论 -
记一次laravel项目因opcache导致的include过慢问题
参考:记一次laravel项目因opcache导致的include过慢问题 - PHP面试网问题表现 php-fpm-slow.log 大量如下日志:script_filename=/data/nginx/webroot/app-20200611-160330-feb90625/public/index.php[0x00007fc41e61da20]Composer\Autoload\includeFile()/data/nginx/webroot/app-20200611-1603...原创 2021-09-13 19:44:29 · 352 阅读 · 0 评论 -
openresty中使用淘宝的concat进行css和js合并
背景我们在访问淘宝的时候,会看到代码中的js和css文件是通过一次请求获得的,我们知道浏览器一次请求只能并发访问数个资源,这样的处理错输在网络传输层面可以大大节省时间,这里使用的技术就是把css、js等静态资源合并为一个资源。淘宝使用的tengine是基于nginx的web服务器,从11年底开源。所使用的是mod_concat模块,合并多个文件在一个响应报文中。实战先查看下当前openresty的版本和配置信息/usr/local/openresty/nginx/sbin/ng原创 2021-09-10 18:27:27 · 369 阅读 · 0 评论 -
记一次laravel项目因session导致cpu过高的问题
问题起因:腾讯云监控CPU过高报警 10:20-10:28左右持续 百分之80以上。问题排查:1.查看php-fpm慢日志发现有大量如下日志:[26-May-202010:20:36][poolwww]pid7368script_filename=/data/nginx/webroot/simulation-strategy-20200519-203518-1fe2f14c/public/index.php...省略...[0x00007ffd04d...原创 2021-09-08 21:51:02 · 1136 阅读 · 0 评论 -
Certbot-免费的https证书
参考:https://phpmianshi.com/?id=76什么是HTTPS?HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。HTTPS:全称:Hyper Text Transfer Protocol over Secure Socket Layer,则是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基原创 2021-09-01 21:53:46 · 305 阅读 · 0 评论 -
nginx实现高并发的优化手段有哪些
参考:https://phpmianshi.com/?id=281Nginx 是如何实现高并发的?异步,非阻塞,使用了epoll 和大量的底层代码优化。如果一个server采用一个进程负责一个request的方式,那么进程数就是并发数。正常情况下,会有很多进程一直在等待中。而nginx采用一个master进程,多个woker进程的模式。 master进程主要负责收集、分发请求。每当一个请求过来时,master就拉起一个worker进程负责处理这个请求。 同时maste原创 2021-08-31 19:28:39 · 193 阅读 · 0 评论 -
linux中如何检测UDP端口是否开启
参考:https://phpmianshi.com/?id=279背景搭建了一台dnsmasq DNS解析服务器,不想对外网提供服务,只给内网提供解析服务,想关闭udp53端口的入站规则如何判断UDP 53端口是否提供服务呢?我们的服务端:123.207.190.86客户端:115.159.122.651. server启动一个icmp抓包侦听:$ tcpdump -n -i eth0 icmp and host 115.159.122.65tcpdump: ver原创 2021-08-25 09:16:57 · 6349 阅读 · 0 评论 -
nginx面试中最常见的18道题
参考:https://phpmianshi.com/?id=351、请解释一下什么是Nginx?Nginx---Ngine X,是一款免费的、自由的、开源的、高性能HTTP服务器和反向代理服务器;也是一个IMAP、POP3、SMTP代理服务器;Nginx以其高性能、稳定性、丰富的功能、简单的配置和低资源消耗而闻名。也就是说Nginx本身就可以托管网站(类似于Tomcat一样),进行Http服务处理,也可以作为反向代理服务器、负载均衡器和HTTP缓存。Nginx 解决了服务器的C10K(就是.原创 2021-08-12 21:30:58 · 1276 阅读 · 4 评论 -
linux中cat EOF详解
参考:https://phpmianshi.com/?id=275关于cat << EOF语句在linux shell脚本中cat << EOF的语句,起到什么作用?首先必须要说明的是EOF在这里没有特殊的含义,你可以使用FOE或OOO等(当然也不限制在三个字符或大写字符)。接下来,简单描述一下几种常见的使用方式及其作用:1、cat<<EOF,以EOF输入字符为标准输入结束:2、cat>filename,创建文件,并把标准原创 2021-08-11 21:50:58 · 808 阅读 · 0 评论 -
linux中tee命令详解
参考:https://phpmianshi.com/?id=274介绍tee最基本的用法就是显示输出结果并且保存内容到文件中。下面例子使用free命令显示系统内存使用信息,并使用tee命令将信息输出到屏幕,并保存到文件mem.txt中。[root@localhost ~]# free -h | tee mem.txt total used free shared buff/cache availableMem: ...原创 2021-08-09 20:41:26 · 1125 阅读 · 0 评论 -
linux查看与挂载新磁盘
参考:https://phpmianshi.com/?id=262问题发现腾讯云控制台一个服务器挂载了一个数据库,但是用df -h查看磁盘占用情况,发现磁盘/dev/vdb1消失了。是磁盘坏了?还是没被系统识别?df-hFilesystemSizeUsedAvailUse%Mountedondevtmpfs3.9G03.9G0%/devtmpfs3.9G24K3.9G1%/dev/sh...原创 2021-08-04 19:41:01 · 376 阅读 · 0 评论 -
linux中df -i 100%解决方案
背景E138: Can't write viminfo file /root/.viminfo!Press ENTER or type command to continue这不科学呀,明明是root,怎么可能无法写入?后来查看磁盘inodes状态,发现/已经是100%,难怪无法写入。df -iFilesystem Inodes IUsed IFree IUse% Mounted on/dev/mapper/vg_db02-lv_...原创 2021-08-03 19:36:29 · 3880 阅读 · 0 评论 -
linux中利用nethogs查看哪些进程占用网络带宽
参考:https://www.toutiao.com/i6984761321543778823/https://phpmianshi.com/?id=256centos6版本安装1、安装依赖包yuminstallncurses*-yyuminstalllibpcap*-y2、下载源码包wgettar-zxvfv0.8.1.tar.gzcdnethogs-0.8.1/make&&makeinstall示例...原创 2021-07-14 21:04:17 · 183 阅读 · 0 评论 -
linux中set指令用法
参考:https://www.phpmianshi.com/?id=247简介我们知道,Bash 执行脚本的时候,会创建一个新的 Shell,这个 Shell 就是脚本的执行环境,Bash 默认给定了这个环境的各种参数。set命令用来修改 Shell 环境的运行参数,也就是可以定制环境。语 法[root@localhost~]#helpsetset:set[-abefhkmnptuvxBCHP][-ooption-name][--][arg...原创 2021-03-06 19:45:12 · 1861 阅读 · 0 评论 -
linux下utf-8 BOM的检查和删除
参考:https://www.phpmianshi.com/?id=240背景当源程序是gbk格式,你转换为 utf8 的时候,很多情况是头部会出现bom,当是php 程序时候,这样会出现很多意想不到的事情,那怎么办呢,你可以用linux 命令来查找,然后对文件的bom 进行删除grep-r$’\xEF\xBB\xBF’*|grep.phpbom:UTF-8签名(UTF-8 signature)也叫做BOM(Byte Order Mark)解决方案1. 用v...原创 2021-02-25 19:36:18 · 1326 阅读 · 0 评论 -
linux中流量监控工具iftop详解
参考:https://www.phpmianshi.com/?id=246要查看实时的网络流量,监控TCP/IP连接等,则可以使用iftop。一、iftop是什么?iftop是类似于top的实时流量监控工具。官方网站:http://www.ex-parrot.com/~pdw/iftop/二、iftop有什么用?iftop可以用来监控网卡的实时流量(可以指定网段)、反向解析IP、显示端口信息等,详细的将会在后面的使用参数中说明。三、安装iftop安装方法1、编译安装如果采原创 2021-02-25 19:30:14 · 323 阅读 · 0 评论 -
linux中配置sudo赋予普通用户对某些命令的执行权限
参考:https://www.phpmianshi.com/?id=238背景有时我们需要给普通用户,某个命令的执行权限,但是又不想让这个普通用户能执行更多的其他命令,这时候我们可以配置sudo,设置只能执行某几个命令即可配置vim/etc/sudoers#新增如下一行,赋予www用户能sudo执行supervisorctl命令wwwALL=(ALL:ALL)NOPASSWD:/bin/supervisorctl多个命令可以逗号分隔更多sudo介...原创 2021-02-18 14:39:50 · 2106 阅读 · 0 评论 -
linux中三种风格Unix、BSD、GNU的ps的参数说明
参考:https://www.phpmianshi.com/?id=233背景Linux系统中使用GNUps命令支持3种不同类型的命令行参数: Unix风格的参数,前面加单破折线; BSD风格的参数,前面不加破折线; GNU风格的长参数,前面加双破折线。 Unix风格参数ps [-aefFly] [-p pid] [-u userid]-a 与任何用户标识和终端相关的进程-e 所有进程(包括守护进程)-p pid 与指定PID相关的进..原创 2021-02-05 19:43:22 · 329 阅读 · 0 评论 -
HTTP状态码302、303和307的前世今生
参考:https://www.phpmianshi.com/?id=232背景《HTTP权威指南》第3章在讲解30X状态码时,完全没有讲清楚为什么要有302、303、307,以及他们的关系,一句“问题出在HTTP1.1”;而第五章在讲重定向响应时,没有说到现在很常见的302,反而是说我从没遇到过的303和307。对于这3个状态码,WiKi和RFC文档都有详解,下面我们简单介绍一下。302RFC1945(http://tools.ietf.org/html/rfc1945#page-34),也原创 2021-02-04 18:00:51 · 263 阅读 · 0 评论 -
linux中sudo提权漏洞复现及修复-CVE-2021-3156
参考:https://www.phpmianshi.com/?id=2341.背景sudo被披露存在一个基于堆的缓冲区溢出漏洞(CVE-2021-3156,该漏洞被命名为“Baron Samedit”),可导致本地权限提升。当在类Unix的操作系统上执行命令时,非root用户可以使用sudo命令来以root用户身份执行命令。由于sudo错误地在参数中转义了反斜杠导致堆缓冲区溢出,从而允许任何本地用户(无论是否在sudoers文件中)获得root权限,无需进行身份验证,且攻击者不需要知道用户密码。原创 2021-02-03 19:56:35 · 898 阅读 · 0 评论 -
linux中多文件按行拼接整合命令paste
参考:https://www.phpmianshi.com/?id=219概念Linux下的paste命令主要用于从多个文件(包括标准输入)中读取内容,将每个文件的对应行用指定分隔符(默认tab制表符)拼接起来并打印到标准输出,我们可以使用重定向命令“>”将输出结果保存到文件中,从而实现整合多个文件的功能。常用参数-d<分隔符> 指定分隔符,若未使用该参数则默认制表符分隔-s 不使用平行的行目输出模式,而是每个文件占用一行示例$catuserna...原创 2021-01-07 19:19:57 · 983 阅读 · 0 评论 -
sentry磁盘占用过大如何清理历史数据
参考:https://www.phpmianshi.com/?id=1821、SENTRY数据软清理 (清理完不会释放磁盘,如果很长时间没有运行,清理时间会很长)#登录worker容器dockerexec-itsentry_onpremise_worker_1/bin/bash#保留多少天的数据,cleanup使用delete命令删除postgresql数据,但对于delete,update等操作,只是将对应行标志为DEAD,并没有真正释放磁盘空间sentrycleanup--...原创 2020-11-09 17:04:08 · 4097 阅读 · 2 评论 -
linux中后台进程管理利器supervisord
背景Linux的后台进程运行有好几种方法,例如nohup,screen等,但是,如果是一个服务程序,要可靠地在后台运行,我们就需要把它做成daemon,最好还能监控进程状态,在意外结束时能自动重启。supervisor就是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。当用supervisor监护进程时,被监护进程不能是守护进程,这是由于守护进程通常会在fork完子进程后就让父进程”结束生命”,也即由super原创 2020-11-04 18:03:08 · 334 阅读 · 0 评论 -
nginx中request_time和upstream_response_time详解
参考:https://www.phpmianshi.com/?id=123背景最近监控报警有短暂的502,赶紧分析问题原因,查看nginx的access_log 发现短暂报警的request_time比较大,但是upstream_response_time有2个值,一个比较小,一个比较大,日志如下:request:GET/index/allHTTP/1.1request_time:30.049up_resp_time:0.015:30.033up_addr:11.11.1...原创 2020-07-15 20:12:47 · 2856 阅读 · 0 评论