启用参数tcp_tw_recycle导致丢包现象

Published: Tags: LINUX

千万不要在生产环境中打开tcp_tw_recycle内核参数!因此而引起的BUG极其难定位,随机偶发,时间不定。 前后历经了近几个月的时间,最后在腾讯云技术同学的帮忙下,才找到原因,当时的情况是这样:

我们像往常一样按操作文档部署运行环境,但是最近的几个项目在公司的网络下,偶尔出现无法访问的情况。 手机连WIFI无法打开,服务器SSH连接不上,端口80抽风(过会刷新又正常),在当前项目出现的频率 …

… Read More …

常见的SSH登录缓慢的情况和解决方案

Published: Tags: SSH LINUX

最常见的SSH登录慢的处理情况,是修改客户端和服务端的UseDNSGSSAPIAuthentication参数。

这个网上可以搜到大把就不说了。将要说的是以上修改无效的情况,前后踩了几个坑都没解决。 由于客户端有密钥,而服务端使用密码登录,优先密码连接SSH的命令(可在/etc/ssh/ssh_config配置)

ssh -vvv -o …

… Read More …

修改SSH重试次数和IPTABLES屏蔽规则

Published: Tags: SHELL LINUX

前两天买了个小机器用于测试,所以就没弄密钥登录,然后发现SSH被暴力破解的频率有点高。 因此修改了SSH的最大重试次数,并且加上IPTABLES的屏蔽规则,当然最好的解决方法是使用密钥。

vi /etc/ssh/sshd_config,去掉MaxAuthTries的注释,设值为1次(默认6次),再reload下SSH即可。

然后添加两行IPTABLES的规则,在3600秒的时间内,对22端口建 …

… Read More …

使用GIT钩子进行代码自动部署

Published: Tags: GIT LINUX

利用GIT的钩子,可以减少人工部署代码出错的可能性,又能增加效率。

  • 方法一

先在 /data/web/ 目录(笔者的项目)下,使用 git clone 拉取一次项目的代码文件, 然后再修改服务器仓库(不是项目路径)中的 hooks/post-receive 文件,添加以下代码:

#!/bin/sh

unset GIT_DIR
originPath=$(pwd) …
… Read More …

改造RM命令,增加回收站防止误删除

Published: Tags: SHELL LINUX

由于网上找到的代码和方法有点繁杂,所以重新造了个轮子~

放到 /etc/bashrc 即可(不同发行版配置,路径请自行修改)

alias rm='remove2trash'; remove2trash () 
{
    datetime=$(date +'%s');
    trash="/tmp/.trash.$(whoami)";

    mkdir -m 700 …
… Read More …

显示Fiddler的目标服务器IP地址

Published: Tags: WEB DNS

服务器在响应请求之后,我们就能知道它的IP地址,在Fiddler Rules添加如下代码即可:

static function Main() {
    var today: Date = new Date();
    FiddlerObject.StatusText = " CustomRules.js was loaded at: " + today;

    // …
… Read More …

配置Nginx使用Https的最简单方法

Published: Tags: LINUX NGINX

年初的时候笔者所在的公司就配置了JAVA和NGINX的SSL接入,然而最近有个朋友也需要把NGINX加上HTTPS, 但是网上配置太多让人眼花缭乱,因此为了不求甚解,笔者就以最简单的方式为NGINX加上HTTPS的访问协议啦~

以下是原始的Nginx默认接入配置:

server {
    listen       80;
    server_name  test.jtwo.me; …
… Read More …

强制让Nginx压缩包头中未带GZip的请求

Published: Tags: LINUX NGINX

假设你已经把Nginx的GZip压缩配置正常打开了,如果没有的话麻烦先去Google相关资料,以下是针对请求头中未带「Accept-Encoding: gzip」包头时,也让Nginx始终进行GZip压缩并返回的方法。

####通常的方法有两种: * 使用Nginx的第三方模块「headers-more-nginx-module」,优点是功能齐全、配置简单,缺点是要重新编译,对于Yum/Apt安 …

… Read More …

Nginx中Location的非匹配正则写法

Published: Tags: NGINX

最近发现项目中有部分静态文件没有被客户端缓存,是由于location中没加上对应后缀, 因此应该对所有文件进行强缓存的设置,再反过来对几个动态的后缀进行匹配会更简单:

server {
    listen       80;
    server_name  test.jiangjun.vip;

    root /zone/www/test;

    location / { …
… Read More …

均衡分配Linux进程的CPU亲和力

Published: Tags: LINUX

Nginx有设置CPU亲和力的配置,只需要修改如下参数并重启进程:

worker_processes 4;
worker_cpu_affinity 1000 0100 0010 0001;

但很多程序(比如PHP)并没有可以设置CPU亲和力的配置,可以使用如下脚本处理:

#!/bin/bash
# * * * * * /worker/cpu/affinity.sh & …
… Read More …