-
隐藏版本号
- 方式一
在配置文件修改 [root@localhost ~]# vi /data/nginx/conf/nginx.conf ##在http{}内添加即可 server_tokens off;
- 方式二
修改源码包 [root@localhost ~]# vi /data/nginx-1.22.0/src/core/nginx.h #解压完修改 #define NGINX_VERSION "6.6.6"
-
网页缓存
[root@localhost ~]# vi /data/nginx/conf/nginx.conf
location ~ \.(gif|jpg|jpeg|png|bmp|ico)$ {
expires 1d;
}
location ~ .*\.(js|css)$ {
expires 1h;
}
#配置禁用缓存:
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|js|css)$ {
add_header Cache-Control no-store;
}
-
连接超时
- 作用:在企业中为了避免同一个用户长时间占用连接,造成服务器资源浪费,设置相应的连接超时参数,实现控制连接访问时间。
- 配置项
keepalived_timeout 设置连接保持超时时间,一般可只设置该参数,默认为 65 秒,可根据网站的情况设置,或者关闭,可在 http 段、 server 段、或者 location 段设置。 client_header_timeout 指定等待客户端发送请求头的超时时间。 client_body_timeout 设置请求体读取超时时间。 注意: 若出现超时,会返回 408 报错
-
网页传输压缩
- 作用:将服务端传输的网页文件压缩传输,使其更加快速、减少带宽的占用;
[root@localhost ~]# vi /data/nginx/conf/nginx.conf gzip on; ##开启 gzip 压缩输出 gzip_min_length 1k; ##用于设置允许压缩的页面最小字节数 gzip_buffers 4 16k; ##表示申请4 个单位为 16k 的内存作为压缩结果流缓存,默认值是申请与原始数据大小相同的内存空间来储存 gzip 压缩结果 gzip_http_version 1.1; # #设置识别 http 协议版本,默认是 1.1 gzip_comp_level 2; ##gzip 压缩比, 1-9 等级 gzip_types text/plain text/javascript application/x-javascript text/css text/xml application/xml application/xml+rss image/jpeg; ##压缩类型,是就对哪些网页文档启用压缩功能
-
访问控制
- 作用:限制访问网站资源
- 配置项
auth_basic "Nginx Status"; 认证提示文字 auth_basic_user_file /data/nginx/conf/user.conf; 认证用户文件,可以使用apache提供的htpasswd命令来生成文件 allow 192.168.100.101; 允许客户端ip地址 deny 192.168.100.0/24; 拒绝的网段
例如
[root@localhost ~]# yum -y install httpd-tools [root@localhost ~]# htpasswd -c /data/nginx/conf/user.conf zs [root@localhost ~]# cat /data/nginx/conf/user.conf zs:VJVdQdVHEIvZo [root@localhost ~]# vi /data/nginx/conf/nginx.conf location /status { stub_status on; access_log off; auth_basic "Nginx Status"; auth_basic_user_file /usr/local/nginx/conf/user.conf; allow 192.168.100.101; deny 192.168.100.0/24; }
-
定义错误页面
- 作用:根据客户端的访问网站的返回状态码,为其制定到特定的错误页面
- 配置
[root@localhost ~]# vi /data/nginx/conf/nginx.conf error_page 403 404 /404.html; location = /404.html { root html; } [root@localhost ~]# echo "deny" >>/usr/local/nginx/html/404.html
-
自动索引
- 作用:将网站转化为ftp的站点,作为共享文件的工具
[root@localhost ~]# mkdir -p /data/nginx/html/download/test/ [root@localhost ~]# touch /data/nginx/html/download/test/{1..10}.txt [root@localhost ~]# vi /data/nginx/conf/nginx.conf location /download { autoindex on; }
-
目录别名
- 作用:将域名后缀的路径设置一个别名,通过多种方式访问
- 配置
[root@localhost ~]# vi /data/nginx/conf/nginx.conf location /dw { alias /data/nginx/html/haha/; } [root@localhost ~]# mkdir /data/nginx/html/haha [root@localhost ~]# echo "haha" >/data/nginx/html/haha/index.html
-
日志分割
-
脚本方式
- 剪切日志后,使用kill -USR1发送信号重新生成日志文件,同时还不影响网站请求处理进程。
- 错误时通过echo和tee -a命令将错误显示的同时写入到日志文件/var/log/messages。
[root@localhost ~]# vi /root/cut_nginx_log.sh #!/bin/bash datetime=$(date -d "-1 day" "+%Y%m%d") log_path="/data/nginx/logs" pid_path="/data/nginx/logs/nginx.pid" mkdir -p $log_path/backup if [ -f $pid_path ] then mv $log_path/access.log $log_path/backup/access.log-$datetime kill -USR1 $(cat $pid_path) find $log_path/backup -mtime +30 | xargs rm -f else echo "Error,Nginx is not working!" >> /var/log/messages fi :wq [root@localhost ~]# chmod +x /root/cut_nginx_log.sh [root@localhost ~]# echo "0 0 * * * /root/cut_nginx_log.sh" >>/var/spool/cron/root
-
-
防盗链
-
防盗链就是防止别人盗用服务器中的图片、文件、视频等相关资源。防盗链:是通过location + rewrite实现的;
-
应用举例
location ~* \.(wma|wmv|asf|mp3|mmf|zip|rar|jpg|gif|png|swf|flv)$ { valid_referers none blocked *.linux.cn linux.cn; ##所有信任访问路径 if ($invalid_referer) { rewrite ^/ http://www.linux.cn/error.jpg; } 第一行: wma|wmv|asf|mp3|mmf|zip|rar|jpg|gif|png|swf|flv 表示对这些后缀的文件进行防盗链。 第二行:valid_referers表示被允许的信任URL,none表示浏览器中 referer(Referer 是 header 的一部分,当浏览器向 web 服务器发送请求的时候,一般会带上 Referer,告诉服务器我是从哪个页面链接过来的,服务器基此可以获得一些信息用于处理) 为空的情况,就直接在浏览器访问图片,blocked referer 不为空的情况,但是值被代理或防火墙删除了,这些值不以http://或 https://开头,*.linux是匹配URL的域名。 第三行:if{ }判断如果是来自于invalid_referer(不被允许的URL)链接,即不是来自第二行指定的URL,就强制跳转到错误页面,当然直接返回 404(return 404)也是可以的,也可以是图片。 注意:防盗链测试时,不要和expires配置一起使用。
-
-
rewrite地址url重写
- 作用:将客户端所访问的url进行重定向
- 语法
rewrite regex http://www.baidu.com/ 参数;
-
虚拟主机
- 不同IP,不同域名,相同端口
server { listen 192.168.100.101:80; server_name www.linux1.cn; charset utf-8; access_log logs/linux1.access.log main; location / { root /var/www/linux1/; index index.html index.php; } } server { listen 192.168.100.102:80; server_name www.linux2.cn; charset utf-8; access_log logs/linux2.access.log main; location / { root /var/www/linux2/; index index.html index.php; } }
- 相同IP,不同域名,相同端口
server { listen 192.168.100.101:80; server_name www.linux1.cn; charset utf-8; access_log logs/linux1.access.log main; location / { root /var/www/linux1/; index index.html index.php; } } server { listen 192.168.100.101:80; server_name www.linux2.cn; charset utf-8; access_log logs/linux2.access.log main; location / { root /var/www/linux2/; index index.html index.php; } }
- 相同IP,不同端口,相同域名
server { listen 192.168.100.101:80; server_name www.linux1.cn; charset utf-8; access_log logs/linux1.access.log main; location / { root /var/www/linux1/; index index.html index.php; } } server { listen 192.168.100.101:81; server_name www.linux1.cn; charset utf-8; access_log logs/linux1.access.log main; location / { root /var/www/linux2/; index index.html index.php; } }