Nginx优化与防盗链
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx优化与防盗链相关的知识,希望对你有一定的参考价值。
文章介绍
nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。本文跟大家分享nginx的基础优化和安全。大家可以先看下另一篇nginx配置nginx配置
详情介绍
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器 ,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、简单的配置文件和低系统资源的消耗而闻名。
nginx一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好
服务器:
Nginx作为负载均衡服务:Nginx 既可以在内部直接支持 Rails 和 php 程序对外进行服务,也可以支持作为 HTTP代理服务对外进行服务。Nginx采用C进行编写,不论是系统资源开销还是CPU使用效率都比 Perlbal 要好很多。
处理静态文件,索引文件以及自动索引;打开文件描述符缓冲。
无缓存的反向代理加速,简单的负载均衡和容错。
FastCGI,简单的负载均衡和容错。
模块化的结构。包括 gzipping, byte ranges, chunked responses,以及 SSI-filter 等 filter。如果由 FastCG或其它代理服务器处理单页中存在的多个 SSI,则这项处理可以并行运行,而不需要相互等待。
支持 SSL 和 TLSSNI。
代码:
Nginx代码完全用C语言从头写成,已经移植到许多体系结构和操作系统,包括:Linux、FreeBSD、Solaris、Mac OS X、AIX以及Microsoft Windows。Nginx有自己的函数库,并且除了zlib、PCRE和OpenSSL之外,标准模块只使用系统C库函数。而且,如果不需要或者考虑到潜在的授权冲突,可以不使用这些第三方库。
代理服务器:
作为邮件代理服务:Nginx 同时也是一个非常优秀的邮件代理服务(最早开发这个产品的目的之一也是作为邮件代理服务器),last.fm 描述了成功并且美妙的使用经验。
Nginx 是一个安装非常的简单、配置文件非常简洁(还能够支持perl语法)、Bug非常少的服务。Nginx 启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够不间断服务的情况下进行软件版本的升级。
实验配置
拓扑图:
推荐步骤:
- 在 Centos01 上安装 Nginx,设置网站根目录/www 使用域名 www.suifeng.com 访问
- 在 Centos02 上安装 DNS ,使用域名www.suifeng.com访问 Centos01,Centos03 使用 yum 安装apache 使用域名 www.sakura.com 访问
- 在 www.suifeng.com 域名的网站隐藏 Nginx 版本、查看 Nginx 管理用户、设置网页缓存、配置Nginx 日志切割、设置超时时间
- 在 www.suifeng.com 网站配置防盗链防止 www.sakura.com 盗 www.suifeng.com 的连接
实验步骤:
一,在Centos01上安装安装Nginx,设置网站根目录/www 使用域名www.l.com访问
1,在centos01上安装nginx依赖
1)挂载系统盘
2)挂载系统光盘配置本地yum仓库
[root@centos ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@centos ~]# ls /mnt/
CentOS_BuildTag GPL
LiveOS RPM-GPG-KEY-CentOS-7
EFI images Packages
RPM-GPG-KEY-CentOS-Testing-7
EULA isolinux repodata
TRANS.TBL
[root@centos ~]# rm -rf /etc/yum.repos.d/CentOS-* //删除系统网络源
[root@centos ~]# ls /etc/yum.repos.d/
local.repo
[root@centos ~]# cat /etc/yum.repos.d/local.repo //配置本地yum仓库
[local]
name=centos7
baseurl=file:///mnt
enabled=1
gpgcheck=0
3)安装依赖程序
[root@centos ~]# yum -y install pcre-devel zlib-devel
4)创建管理nginx用户
[root@centos ~]# useradd -M -s /sbin/nologin nginx
2,配置安装nginx服务
1)切换云计算光盘
[root@centos ~]# umount /mnt/ //卸载目前挂载光盘
[root@centos ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
2)解压缩配置nginx
[root@centos ~]# tar zxf /mnt/nginx-1.6.0.tar.gz -C /usr/src/
[root@centos ~]# cd /usr/src/nginx-1.6.0/
[root@centos nginx-1.6.0]# ./configure \\
--prefix=/usr/local/nginx \\ //安装位置
--user=nginx \\ //nginx管理用户
--group=nginx \\ //管理组
--with-http_stub_status_module //配置监控模块
3)编译安装nginx
[root@centos nginx-1.6.0]# make && make install
4)优化nginx命令检查配置文件
[root@centos ~]# ln -s /usr/local/nginx/sbin/* /usr/local/sbin/
3,设置nginx服务器网站根目录设置主页修改配置文件
1)创建网站根目录设置主页
[root@centos ~]# mkdir /www
[root@centos ~]# echo "www.suifeng.com" > /www/index.html
2)修改nginx主配置文件
[root@centos ~]# cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.bak //备份配置文件预防配置出错
[root@centos ~]# vim /usr/local/nginx/conf/nginx.conf
3)检查nginx主配置文件是否出错
4)启动nginx服务监听端口
[root@centos ~]# nginx
二,在Centos02上安装DNS使用域名访问Centos01上使用域名www.suifneg.com访问,Centos03使用yum安装apache使用域名www.sakura.com访问
1,安装DNS服务设置开机自动自启
1)挂载系统光盘
[root@centos02 ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@centos02 ~]# ls /mnt/
CentOS_BuildTag GPL
LiveOS RPM-GPG-KEY-CentOS-7
EFI images Packages
RPM-GPG-KEY-CentOS-Testing-7
EULA
isolinux repodata
TRANS.TBL
2)安装DNS服务
3)设置开机自启
[root@centos02 ~]# systemctl enable named
2,修改主配置文件和区域配置文件
1)修改DNS主配置文件
[root@centos02 ~]# vim /etc/named.conf
2)检查文件是否出错
[root@centos02 ~]# named-checkconf /etc/named.conf
3)修改区域配置文件
[root@centos02 ~]# vim /var/named/suifeng.com.zone
[root@centos02 ~]# vim /var/named/sakura.com.zone
4)检查文件是否出错
4,在Centos03上使用yum安装apache设置网站主页,客户端访问Nginx和Apache
1)挂载系统光盘
[root@centos03 ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@centos03 ~]# ls /mnt/
CentOS_BuildTag GPL
LiveOS RPM-GPG-KEY-CentOS-7
EFI images Packages
RPM-GPG-KEY-CentOS-Testing-7
EULA isolinux repodata
TRANS.TBL
2)配置本地yum源
[root@centos03 ~]# rm -rf /etc/yum.repos.d/CentOS-*
[root@centos03 ~]# ls /etc/yum.repos.d/
local.repo
[root@centos03 ~]# cat /etc/yum.repos.d/local.repo
[local]
name=centos7
baseurl=file:///mnt
enabled=1
gpgcheck=0
3)安装apache服务设置开机自启
[root@centos03 ~]# yum -y install httpd
[root@centos03 ~]# systemctl enable httpd
4)设置网站主页启动服务
[root@centos03 ~]# echo "www.sakura.com" > /var/www/html/index.html
5)启动服务查看服务运行状态
[root@centos03 ~]# systemctl start httpd
6)客户端访问nginx
7)客户端访问apache
三,在Nginx网站隐藏Nginx版本、查看Nginx管理用户、设置网页缓存、配置Nginx日志切割、设置超时时间、配置防盗链
1,在Nginx网站服务器配置将Nginx版本伪装位IIS不显示不版本号,查看管理Nginx进程用户
1)配置修改nginx源代码伪装版本信息
[root@centos ~]# vim /usr/src/nginx-1.6.0/src/core/nginx.h
[root@centos ~]# vim /usr/src/nginx-1.6.0/src/http/ngx_http_header_filter_module.c
2)关闭nginx
[root@centos ~]# killall nginx
[root@centos ~]# killall nginx
nginx: no process found
3)重新配置编译安装nginx
[root@centos ~]# cd /usr/src/nginx-1.6.0/
[root@centos nginx-1.6.0]# ./configure \\
--prefix=/usr/local/nginx \\
--user=nginx --group=nginx \\
--with-http_stub_status_module
[root@centos nginx-1.6.0]# make && make install
4)启动nginx
[root@centos nginx-1.6.0]# nginx
5)验证伪装的nginx版本
6)修改nginx主配置文件隐藏版本
[root@centos nginx-1.6.0]# vim /usr/local/nginx/conf/nginx.conf
7)重启服务
[root@centos nginx-1.6.0]# killall nginx
nginx: no process found
[root@centos nginx-1.6.0]# nginx
8)客户端验证
8)管理nginx服务进程用户
2,在nginx网站服务器配置网页缓存时间
1)修改nginx主配置文件
[root@centos ~]# vim /usr/local/nginx/conf/nginx.conf
2)客户端访问验证
3,配置nginx日志切割
1)创建目录存储切割日志后数据
[root@centos ~]# mkdir /nginx_log
2)创建日志切割脚本
[root@centos ~]# vim /opt/nginx_log_bak.sh
#!/bin/bash
# Filename: fenge.sh
d=$(date -d "-1 day" "+%Y%m%d")
logs_path="/nginx_log/"
pid_path="/usr/local/nginx/logs/nginx.pid"
[ -d $logs_path ] || mkdir -p $logs_path
mv /usr/local/nginx/logs/www.suifeng.com.access.log
$logs_path/www.suifeng.com^Baccess.log-$d
kill -USR1 $(cat $pid_path)
find $logs_path -mtime +30 |xargs rm -rf
[root@centos ~]# chmod +x /opt/nginx_log_bak.sh //脚本添加执行权限
3)设置计划任务周期备份nginx日志,每间隔两分钟备份一次日志
[root@centos ~]# crontab -e
*/2 * * * * /opt/nginx_log_bak.sh
4)查看生成日志
[root@centos ~]# ls /nginx_log/
www.suifeng.com?access.log-20230211
4,设置nginx网站服务器保持时间和进程优化
1)修改nginx主配置文件支持保持时间和进程优化
[root@centos ~]# vim /usr/local/nginx/conf/nginx.conf
2)重启nginx
[root@centos ~]# killall nginx
[root@centos ~]# killall nginx
nginx: no process found
[root@centos ~]# nginx
3)查看nginx进程
5,配置nginx压缩数据
1)修改主配置文件支持压缩数据
[root@centos ~]# vim
/usr/local/nginx/conf/nginx.conf
2)重新启动nginx服务
[root@centos ~]# killall nginx
[root@centos ~]# killall nginx
nginx: no process found
[root@centos ~]# nginx
3)查看配置的压缩数据
6,配置nginx防盗链
1)上传错误图片
[root@centos www]# ls
error.png index.html logo.jpg
2)访问nginx图片
3)设置apache盗用nginx链接
[root@centos03 ~]# vim /var/www/html/index.html
www.sakura.com<br/>
<img src="http://www.suifeng.com/logo.jpg"/>
4)访问apache
5)修改nginx主配置文件防止盗链接
[root@centos www]# vim /usr/local/nginx/conf/nginx.conf
6)重启nginx服务
[root@centos www]# killall nginx
[root@centos www]# killall nginx
nginx: no process found
[root@centos www]# nginx
7)验证盗链接
“博主还是学生目前正在努力学习阶段如有不对请指出,虚心接受指导,感谢!!!”
以上是关于Nginx优化与防盗链的主要内容,如果未能解决你的问题,请参考以下文章