CentOS 7 下使用 yum 安装 Nginx
下载对应当前系统版本的 Nginx 包(package)安装 openssl 、 zlib 、 gcc 、pcre依赖1yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel pcre-devel 安装 pcre 依赖:1234wget https://nchc.dl.sourceforge.net/project/pcre/pcre/8.45/pcre-8.45.tar.gztar -xvf pcre-8.45.tar.gz && cd pcre-8.45./configuremake && make install 下载nginx的rpm包:1wget http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm 建立nginx的yum仓库1rpm -ivh nginx-release-centos-7-0.el7.ngx.no...
利用 split 分割文件或者二进制文件
前言当需要将较大的数据上传到服务器,或从服务器下载较大的日志文件时,往往会因为网络或其它原因而导致传输中断而不得不重新传输。这种情况下,可以先将大文件分割成小文件后分批传输,传完后再合并文件。 分割文件文件分割可以使用 split 命令,该命令既支持文本文件分割,又支持二进制文件分割;而合并文件可以使用 cat 命令。 文本文件分割分割文本文件时,可以按文件大小分割,也可以按文本行数分割。 按文件大小分割 按文件大小分割文件时,需要以 -C 参数指定分割后的文件大小: 1split -C 100M large_file.txt stxt 如上所示,我们将大文件 large_file.txt 按 100M 大小进行分割,并指定了分割后文件前缀 stxt;当不指定前缀时,split 会自动对分割文件进行命名,一般会以 x 开头。 按行分割 文本文件还可以以行为单位进行分割,以行数进行分割时会忽略文件大小,并以 -l 参数指定分割后文件的行数: 1split -l 1000 large_file.txt stxt 二进制文件分割二进制文件分割类似于按大小分割文本文件,不同的是以 -...
nginx-sticky 安装及负载均衡使用
转自: https://blog.csdn.net/yyysylvia/article/details/80198021 sticky的工作原理Sticky是nginx的一个模块,它是基于cookie的一种nginx的负载均衡解决方案,通过分发和识别cookie,来使同一个客户端的请求落在同一台服务器上,默认标识名为route 客户端首次发起访问请求,nginx接收后,发现请求头没有cookie,则以轮询方式将请求分发给后端服务器。 后端服务器处理完请求,将响应数据返回给nginx。 此时nginx生成带route的cookie,返回给客户端。route的值与后端服务器对应,可能是明文,也可能是md5、sha1等Hash值 客户端接收请求,并保存带route的cookie。 当客户端下一次发送请求时,会带上route,nginx根据接收到的cookie中的route值,转发给对应的后端服务器。 nginx+sticky安装nginx安装最好采用编译安装的方式,这样可以很方便的找到nginx的安装位置,方便添加nginx-sticky模块。如果之前已经编译安装过nginx,...
ssh 远程主机执行命令或脚本
免密操控 免密操控不可以逆向,即可以一个主控方对应多个被控方,但不可以一个被控方对应多个主控方。 以下以 gitlab-runner 账户远程免密登录 root@192.168.56.100 为例: 先执行 su gitlab-runner 切换到 gitlab-runner 账户 在你的主控端机器上使用 ssh-keygen 命令创建公钥,使用 ssh-keygen -t rsa 来创建,程序会询问存放目录,如果不需要修改,直接回车几次即可 将 ~/.ssh 目录下 id_rsa.pub 文件拷贝到受控机器的 ~/.ssh 目录中,然后将文件内容导入到 ~/.ssh/authorized_keys 文件 12345# 主控方机器执行:scp ~/.ssh/id_rsa.pub root@192.168.56.100:~/.ssh/id_rsa.pub# 受控方机器执行:cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 在受控方机器设置权限: ~/.ssh 权限设置为 700,~/.ssh/authorized...
Nginx 中 $host、$http_host 和 $proxy_host 区别
nginx中$host、$http_host和$proxy_host区别 变量 是否显示端口 值 $host 不显示端口 浏览器请求的ip,不显示端口 $http_host 端口存在则显示 浏览器请求的ip和端口号 $proxy_host 默认80端口不显示,其它显示 被代理服务的ip和端口号(当proxy_pass配置的是upstream, 则$proxy_host是不生效的) 配置反向代理时,接口请求报404问题应用描述:前端应用域名为A(ww.a.com), 后端服务域名为B(www.b.com); 为了解决跨域问题,配置nginx反向代理如下: 1234567...proxy_set_header Host $host;...location ^~ /api/ { rewrite "^/api/(.*)$" /$1 break; proxy_pass http://www.b.com;} 问题:这样配置完成后,接口报404问题。解决:方案一:将proxy_set_header注释掉方案二:修改反向代理配置,...
tcpdump 的使用
转自:https://cloud.tencent.com/developer/article/1840203 简介tcpdump 是一款强大的网络抓包工具,它使用 libpcap 库来抓取网络数据包,这个库在几乎所有的 Linux/Unix 中都有。熟悉 tcpdump 的使用能够帮助你分析调试网络数据,本文将通过一个个具体的示例来介绍它在不同场景下的使用方法。不管你是系统管理员、程序员、云原生工程师还是 yaml 工程师,掌握 tcpdump 的使用都能让你如虎添翼,升职加薪。 基本语法和使用方法tcpdump 的常用参数1tcpdump -i eth0 -nn -s0 -v port 80 -i:选择要捕获的接口,通常是以太网卡或无线网卡,也可以是 vlan 或其他特殊接口。如果该系统上只有一个网络接口,则无需指定 -nn:单个 n 表示不解析域名,直接显示 IP;两个 n 表示不解析域名和端口。这样不仅方便查看 IP 和端口号,而且在抓取大量数据时非常高效,因为域名解析会降低抓取速度 -s0:tcpdump 默认只会截取前 96 字节的内容,要想截取所有的报文...
remote_addr 的一些认识
关于nginx - $remote_addr的解释 nginx的自带变量 $remote_addr 代表客户端的IP remote_addr代表客户端的IP,但它的值不是由客户端提供的,而是服务端根据客户端的ip指定的. 当你的浏览器访问某个网站时,假设中间没有任何代理,那么网站的web服务器(Nginx,Apache等)就会把remote_addr设为你的机器IP,如果你用了某个代理(比如clb),那么你的浏览器会先访问这个代理,然后再由这个代理转发到网站,这样web服务器就会把remote_addr设为这台代理机器的IP。 但是实际场景中,我们即使有代理,也需要将$remote_addr设置为真实的用户IP, 以下利用with-http_realip_module模块实现安装(nginx或者openresty编译需要加--with-http_realip_module)1./configure ...... --with-http_realip_module 添加如下配置123456789101112131415# 从哪个header头检索出要的IP地址real_ip_...
缓存的使用,开启gzip以及各种header的操作
Nginx里Header修改 修改Nginx默认Header 修改普通请求的HeaderNginx内置的模块暂时仅支持修改响应头,使用add_header。其中: add_header 来自内置模块ngx_http_headers_module,用于设置response header。参考:http://www.cnblogs.com/linxiong945/p/4174262.html 如果需要设置普通请求的request header,则需要单独安装headers-more-nginx-module模块。该模块提供了more_set_headers,more_set_input_headers分别用于设置请求、响应头。 示例: 12345678910location ~ .*\.(php|php5)?$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param LOG_ID $request_id; more_set_input_headers "...
dstat 状态监控工具
通用的系统资源统计工具。 说明dstat 命令是一个用来替换 vmstat、iostat、netstat、nfsstat 和 ifstat 这些命令的工具,是一个全能系统信息统计工具。与 sysstat 相比,dstat 拥有一个彩色的界面,在手动观察性能状况时,数据比较显眼容易观察;而且 dstat 支持即时刷新,譬如输入 dstat 3 即每三秒收集一次,但最新的数据都会每秒刷新显示。和 sysstat 相同的是,dstat 也可以收集指定的性能资源,譬如 dstat -c 即显示 CPU 的使用情况。 下载安装方法一1yum install -y dstat 方法二官网下载地址:http://dag.wieers.com/rpm/packages/dstat 12wget http://dag.wieers.com/rpm/packages/dstat/dstat-0.6.7-1.rh7.rf.noarch.rpmrpm -ivh dstat-0.6.7-1.rh7.rf.noarch.rpm 使用说明安装完后就可以使用了,dstat 非常强大,可以实时的监控 CPU、...
使用 iftop 分析带宽
背景:Linux 系统下如果服务器带宽跑满了,查看跟哪个 IP 通信占用带宽比较多,可以通过 iftop 命令进行查询。 安装CentOS 系统运行:yum install iftop -y Debian 系统运行:apt-get install iftop -y 使用 ifconfig |grep eth 查看网卡。 使用安装好后在服务器执行 iftop -i eth1 就可以查看服务器公网网卡带宽使用情况(如果只执行 iftop 默认检测第一块网卡使用情况,这样查的会是内网网卡 eth0)。 12# -P 参数会将请求服务的端口显示出来,也就是说是通过服务器哪个端口建立的连接,看内网流量执行 iftop -i eth0 -P 命令iftop -i eth0 -P iftop 的相关参数 1234567891011-i :设定监测的网卡,如:# iftop -i eth1-B : 以 bytes 为单位显示流量,默认是 bits,如:# iftop –B-n :使 host 信息默认直接都显示 IP,如:# iftop –n-N :使端口信息默认直接都显示端口号,如: ...
