准备要素,编译环境,创建组,创建被service所管理的脚本,两种隐藏版本方法,实现主进程用root创建 子进程有nginx 创建,图片缓存时间
在最新的centos7.3上搭建nginx 1.6.
安装需要的环境
yum install gcc gcc-c++ pcre-devel zlib-devel -y
yum install elinks -y
创建用户组
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
cd /opt/nginx-1.6.0 //准备编译
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module
make && make install //这个先不着急隐藏版本两种办法 这是第一种
隐藏版本信息在make 之前可以进行篡改 在解压的目录里面如我的解压在opt下路径 vim/opt/nginx-1.6.0/src/core/nginx.h
#define nginx_version 1006000
#define NGINX_VERSION "1.6.0" //修改双引号里面的字符串如 "1.1.1.1"
1、firewalld的基本使用
启动: systemctl start firewalld
查看状态: systemctl status firewalld
停止: systemctl disable firewalld
禁用: systemctl stop firewalld
2.systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。
启动一个服务:systemctl start firewalld.service
关闭一个服务:systemctl stop firewalld.service
重启一个服务:systemctl restart firewalld.service
显示一个服务的状态:systemctl status firewalld.service
在开机时启用一个服务:systemctl enable firewalld.service
在开机时禁用一个服务:systemctl disable firewalld.service
查看服务是否开机启动:systemctl is-enabled firewalld.service
查看已启动的服务列表:systemctl list-unit-files|grep enabled
查看启动失败的服务列表:systemctl --failed
yum install elinks -y //用于字符界面测试nginx
elinks http://IP地址/ 测试
第二种隐藏版本的方法就是在安装后修改nginx 主配置文件
vim /usr/local/nginx/conf/nginx.conf //主配置文件里面找到
http {
include mime.types;
default_type application/octet-stream;
server_tokens off; //插入这段话
#重启服务 先stop 在start 用curl -I http:// IP/
就会显示
HTTP/1.1 200 OK
Server: nginx //看个人需求
Date: Fri, 15 Jun 2018 14:59:07 GMT
修改用户和组 ps aux | grep nginx 查看进程
vim /usr/local/nginx/conf/nginx.conf //修改主配置文件
user nginx nginx; //就在开头 #号注释掉 换成nginx
location / {
root html;
index index.html index.htm;
} //在下面插入
location ~\.(gif|jpg|jepg|png|bmp|ico)$ {
root html; //支持的图片格式
expires 1d; //静态图片缓存为一天
}
重启服务 使用抓包工具进行查看
修改首页 vim/usr/local/nginx/html/index.html
Welcome to nginx!
//显示首页标题
//图片路径
重启服务 别忘把图片复制到 index.html 同一个目录里
vim /usr/local/nginx/conf/nginx.conf //默认已经就是开启的 找到keepalive_timeout 修改 单位秒
keepalive_timeout 65 180; //65 超时时间 180客户超时时间
client_header_timeout 80; // 请求头部的超时时间
client_body_timeout 80; // 读写内容超时时间
重启服务
日志分割 要创建脚本并且写入到周期性计划任务里
#!/bin/bash
#Filename:fenge.sh
d=$(date -d "-1 day" "+%Y%m%d") #显示一天前的时间
logs_path="/var/log/nginx" #日志分隔出来的保存路径
pid_path="/usr/local/nginx/logs/nginx.pid" #日志进程序列号
[ -d $logs_path ] || mkdir -p $logs_path # 判断有没有保存路径文件存在 若没有则创建并以前一天年月日的形式
mv /usr/local/nginx/logs/access.log #剪切移动访问日志 移动到保存前面备份准备的路径并且以前一天日期结尾 ${logs_path}/test.com-access.log-$d
kill -USR1 $(cat $pid_path) #杀死进程 则会重新生成新的日志文件
find $logs_path -mtime +30 | xargs rm -rf # 当存储到达30 时 则会删除前30 天的备份文件