1)nginx运行的默认用户
Nobody
2)创建管理用户和组
[root@nginx /]# groupadd nginx
[root@nginx /]# useradd -M -s /sbin/nologin -g nginx nginx
3)配置编译和安装
[root@nginx nginx-1.6.0]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module && make && make install
4)修改nginx主配置文件中的管理组和用户
[root@nginx /]# vim /usr/local/nginx/conf/nginx.conf
user nginx;
5)查看nginx进程管理用户
[root@nginx /]# ps aux | grep nginx
1)配置隐藏的目的
防止版本号泄露,导致黑客利用网站漏洞进行攻击
2)配置隐藏nginx版本(http全局选项中修改)
[root@nginx /]# vim /usr/local/nginx/conf/nginx.conf
server_tokens off;
1)配置nginx的版本并替换名字
迷惑黑客
黑客通过检测IIS的漏洞工具扫描nginx
2)配置隐藏版本和替换软件名字
[root@nginx /]# vim /usr/src/nginx-1.6.0/src/core/nginx.h
#define NGINX_VERSION “1.0.0” 修改版本号
#define NGINX_VER “IIS/” NGINX_VERSION 修改软件名
3)配置编译和安装
[root@nginx nginx-1.6.0]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module && make && make install
4)注意(http的全局配置中修改)
[root@nginx /]# vim /usr/local/nginx/conf/nginx.conf
server_tokens on; 开启版本号显示,或者删除这一行,否则会显示nginx,导致虚假版本号不生效
1)网页缓存的作用
加快用户访问速度
避免重复连接请求
降低资源占用
一般针对静态网页设置,对动态网页不设置缓存时间
2)修改nginx主配置文件支持缓存功能(在http段、或者server段、或者location段,小范围生效)
[root@nginx /]# vim /usr/local/nginx/conf/nginx.conf
expires 1d; 缓存1天
1)nginx日志切割的作用
减小日志大小
方便用户查询
定期删除过期日志减少磁盘空间和资源浪费
2)设计日志切割的思路
获取系统时间
重命名nginx日志
定期删除日志
设置计划任务运行日志切割脚本,自动化切割日志
3)编辑脚本
[root@nginx /]# vim /root/nginx-logs.sh
#!/bin/bash
d=$(date "+%Y%m%d") 获取系统时间
logs_path="/var/log/nginx" 定义切割后日志的位置
pid_path="/usr/local/nginx/logs/nginx.pid" 定义nginx的pid
[ -d $logs_path ] || mkdir -p $logs_path 判断是否存在日志位置
mv /usr/local/nginx/logs/access.log ${logs_path}/wordpress.error.log-$d 切割错误日志
kill -USR1 $(cat $pid_path) 查看服务是否运行
find $logs_path -mtime +30 | xargs rm -rf 删除30天以前的日志
4)运行脚本
[root@nginx ~]# chmod +x ./nginx-logs.sh
[root@nginx ~]# ./nginx-logs.sh
5)设置计划任务
[root@nginx /]# crontab -e(每天切割一次)
* * */1 * * /root/nginx-logs.sh
1)控制nginx客户端连接时间的控制
避免长时间和服务器建立连接,占用服务器资源
服务器设置超时时间,主动和客户端断开连接
2)修改nginx的主配置文件
[root@nginx /]# vim /usr/local/nginx/conf/nginx.conf
keepalive_timeout 20 60; 请求超时时间为20s,保持连接时间为60s,可在http段、server段、或者location段设置
client_header_timeout 20; 指定等待客户端发送请求头的超时时间
client_body_timeout 20; 设置请求体读超时时间
1)作用
可以对图片,文本进行压缩
减少服务器带宽资源占用
压缩数据防止占用服务器的cpu资源
2)配置压缩数据(httpd配置)
[root@nginx /]# vim /usr/local/nginx/conf/nginx.conf
gzip on; 开启压缩功能
gzip_min_length 1k; 压缩最小文件为1kb
gzip_buffers 4 16k; 申请4个单位为16k的内存作为压缩结果流缓存
gzip_http_version 1.1; 用于设置识别http协议版本,默认是1.1
gzip_comp_level 2; 用来指定gzip压缩比,1压缩比最小,处理速度最快;9压缩比最大,传输速度快,但处理速度最慢,使用默认即可
gzip_types text/plain application/javascript application/css text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png image/jpg; 压缩类型
gzip_vary on; 让前端的缓存服务器缓存经过gzip压缩的页面
1)作用
防止其他网站盗用本地资源
只能用本地网站资源的流量和访问量
2)配置防盗链
[root@nginx /]# vim /usr/local/nginx/conf/nginx.conf
location ~* \.(jpg|gif|swf)$ { 这里若出现了png则客户端无法看到错误页面
root /var/www/wordpress;
valid_referers none blocked nginx.iso.com;
if ($invalid_referer) {
rewrite ^/ http://nginx.iso.com/error.png; 给客户端返回的错误页面
或 return 403; 返回错误值
}
}
3)配置说明
valid_referers 设置信任的网站
none 浏览器中referer为空的情况,就是直接在浏览器访问图片
blocked referer 不为空的情况,但是这些值被代理或防火墙删了,这些值不以http://或者https://开头
nginx.iso.com referer中包含相关字符串的网站
if 如果链接的来源域名不在valid_referers所列出的列表中,$invalid_referer为1,则执行后面的操作,即进行重写或返回403页面