记一次Centos7.5升级OpenSSH8.0p1
服务器版本:12# cat /etc/redhat-releaseCentOS Linux release 7.5.1804 (Core)
升级前ssh版本:12# ssh -VOpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017
升级后ssh版本:12# ssh -VOpenSSH_8.0p1, OpenSSL 1.0.2k-fips 26 Jan 2017
为防止升级失败无法远程连接,安装telnet:1234# yum install -y telnet-server# yum install -y xinetd# systemctl start telnet.socket# systemctl start xinetd
允许root登录:123# echo 'pts/0' >>/etc/securetty# echo 'pts/1' >>/etc/securetty# systemctl resta ...
利用docker实现mysql主从同步读写分离,附赠docker搭建mycat读写分离
下载mysql镜像。
1docker pull mysql5.7
12345ps:如果下载太慢,请添加腾讯源,依次执行echo "OPTIONS='--registry-mirror=https://mirror.ccs.tencentyun.com'" >> /etc/sysconfig/dockersystemctl daemon-reloadservice docker restart或者直接去阿里仓库下https://dev.aliyun.com/search.html把上面的--registry-mirror=https://mirror.ccs.tencentyun.com换成你的专属源就可以
下载完输入
123docker imagesREPOSITORY TAG IMAGE ID CREATED ...
常见的重定向方式
第一种:使用==rewrite==指令,通过正则匹配所有的URI后再去掉开头第一个/(反斜线)。
1rewrite ^/(.*)$ https://www.linux.com/$1;
第二种:同样使用rewrite指令,不同的是通过==$request_uri==变量匹配所有的URI。
1rewrite ^ https://www.linux.com$request_uri? permanent;
这样写的好处是省去了去掉开头第一个反斜线的过程,正则匹配上性能更优。第三种:使用==return==指令,通过301状态码和==$request_uri==参数,直接告诉Nginx这是个301重定向和抓取指定URI。
1return 301 https://www.linux.com$request_uri;
这种方法是性能上最优的,因为rewrite指令有很多写法和规则,执行完所有正则匹配后,Nginx 才会知道这是一个301永久重定向。
通过以上三种写法介绍,我们可以看出return指令在301跳转上比 ...
安装 oh-my-zsh
安装之前用的Ubuntu,现在用的Centos,所以都写一下
Ubuntu1234zsh:sudo apt-get install zsh -ygit:sudo apt-get install git -y
Centos1234zsh:sudo yum install zsh -ygit:sudo yum install git -y
下面的Ubuntu和Centos是一样的克隆仓库
1git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
备份原来的zshrc,如果文件存在的话
1cp ~/.zshrc ~/.zshrc.bak
创建一个新的zsh配置文件
1cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
改变默认的Shell
1chsh -s /bin/zsh
退出终端重新登入就可以
无题
title: Nginx rewrite模块深入浅出详解categories:
Nginxtags:
nginx
rewriteabbrlink: eee93e1edate: ‘2020/7/21 21:25:23’updated: ‘2020/7/26 21:26:23’cover: ‘https://cdn.jsdelivr.net/gh/weilain/cdn-photo/covers/nginx-rewrite.png'
ewrite模块(ngx_http_rewrite_module)nginx通过ngx_http_rewrite_module模块支持url重写、支持if条件判断,但不支持else。另外该模块需要PCRE支持,应在编译nginx时指定PCRE支持。根据相关变量重定向和选择不同的配置,从一个location跳转到另一个location,不过这样的循环最多可以执行10次,超过后nginx将返回500错误。同时,重写模块包含set指令,来创建新的变量并设其值,这在有些情景下非常有用的,如记录条件标识、传递参数到其他location、记录做了什么等等。学 ...
Nginx的location匹配
语法规则12location [ = | ~ | ~* | ^~ ] uri { ... }location @name { ... }
语法规则很简单,一个==location==关键字,后面跟着可选的修饰符,后面是要匹配的字符,花括号中是要执行的操作。
修饰符1234= 表示精确匹配。只有请求的url路径与后面的字符串完全相等时,才会命中。~ 表示该规则是使用正则定义的,区分大小写。~* 表示该规则是使用正则定义的,不区分大小写。^~ 表示如果该符号后面的字符是最佳匹配,采用该规则,不再进行后续的查找。
匹配过程对请求的url序列化。例如,对%xx等字符进行解码,去除url中多个相连的/,解析url中的.,..等。这一步是匹配的前置工作。
location有两种表示形式,一种是使用前缀字符,一种是使用正则。如果是正则的话,前面有或*修饰符。
具体的匹配过程如下:
首先先检查使用前缀字符定义的location,选择最长匹配的项并记录下来。
如果找到了精确匹配的location,也就是使用了=修饰符的location,结束查找 ...
nginx的配置
常用的命令123456789nginx -h # 帮助nginx -t # 验证配置文件的正确性nginx -v # 查看nginx的版本nginx -c filename # 按指定的配置文件启动,默认的路径conf/nginx.confnginx -s reload # 重新载入配置文件nginx -s reopen # 重启nginxnginx -s stop # 关闭nginxnginx -s quit # 退出
nginx的配置文件的详解nginx的配置分为四个部分:main(全区设置),server(主机配置),upstream(负载均衡服务器设置),和location(URL匹配特定位置设置)。
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888 ...
nginx 返回码 426 upgrade required 处理
123456789426 upgrade required请求返回 426nginx 反向代理默认走的http 1.0版本但是 被反向代理的服务器是1.1版本的!so 在反向代理的时候加上一句
1proxy_http_version 1.1;
实例
1234567 location ~* \.do { #if ($http_x_forwarded_proto != "https") { # rewrite ^(.*)$ https://$server_name$1 permanent; #} proxy_http_version 1.1; proxy_pass http://test-h5-api.7dian7fen.com;}
nginx rewrite 用法,用rewrite去除URL中的特定参数
nginx rewrite 用法,用rewrite去除URL中的特定参数日常服务中经常会用Nginx做一层代理转发,把Nginx当做前置机
比如,以下配置:
1234567891011121314server { # 对外暴露 80 端口 listen 80; server_name 192.168.10.231; # 后端API地址暴露为:http://192.168.10.231/apis location /apis { proxy_pass http://127.0.0.1:8000/; proxy_pass_request_headers on; # 重写URL 去除apis rewrite "^/apis/(.*)$" /$1 break; }}
这里的rewrite 就是为了去除URL中的/apis ...
git使用规范
新建项目
项目负责人在项目组下面新建项目(以下简称‘主项目’),所有参与该项目开发的人员,必须fork此项目到自己的工程(以下简称‘fork项目’),然后进行开发。
主项目分支
主项目建立hotfix、release、dev、test四个分支。
dev分支
dev是开发分支,开发分支是更新最频繁的分支,开发人员正在开发的代码都必须且只能提交Merge Request(以下简称MR)到这个分支。
test分支
test是测试分支,用于发布测试环境。项目完成一个或多个功能点或者用户故事时,由负责测试版本发布的人员先从dev分支合并到test分支,然后发布到测试环境。
hotfix分支
hotfix是热修复分支,用于修复线上bug。开发人员提交的修复代码提交MR时选择该分支。当问题确定被修复后,项目负责人再将hotfix分支的代码同步到dev和master分支。
release分支
release分支是版本发布分支,用于发布线上版本时,由负责版本发布的人先从master分支合并到release分支,然后发布到正式环境。
commit规范
每次的commit按照【标签 ...