Nginx优化与防盗链

时间:2023-02-14 12:02:29

文章介绍

  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不间断运行,即使运行数个月也不需要重新启动。你还能够不间断服务的情况下进行软件版本的升级。


实验配置

拓扑图:

Nginx优化与防盗链

推荐步骤:
  • 在 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)挂载系统盘

Nginx优化与防盗链

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/       //卸载目前挂载光盘

Nginx优化与防盗链

[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/

Nginx优化与防盗链

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

Nginx优化与防盗链

3)检查nginx主配置文件是否出错

Nginx优化与防盗链

4)启动nginx服务监听端口

[root@centos ~]# nginx

Nginx优化与防盗链

二,在Centos02上安装DNS使用域名访问Centos01上使用域名www.suifneg.com访问,Centos03使用yum安装apache使用域名www.sakura.com访问

1,安装DNS服务设置开机自动自启

1)挂载系统光盘

Nginx优化与防盗链

[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服务

Nginx优化与防盗链

3)设置开机自启

[root@centos02 ~]# systemctl enable named

2,修改主配置文件和区域配置文件

1)修改DNS主配置文件

[root@centos02 ~]# vim /etc/named.conf

Nginx优化与防盗链

2)检查文件是否出错

[root@centos02 ~]# named-checkconf /etc/named.conf

3)修改区域配置文件

[root@centos02 ~]# vim /var/named/suifeng.com.zone

Nginx优化与防盗链

[root@centos02 ~]# vim /var/named/sakura.com.zone

Nginx优化与防盗链

4)检查文件是否出错

Nginx优化与防盗链

4,在Centos03上使用yum安装apache设置网站主页,客户端访问Nginx和Apache

1)挂载系统光盘

Nginx优化与防盗链

[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

Nginx优化与防盗链

6)客户端访问nginx

Nginx优化与防盗链

7)客户端访问apache

Nginx优化与防盗链

三,在Nginx网站隐藏Nginx版本、查看Nginx管理用户、设置网页缓存、配置Nginx日志切割、设置超时时间、配置防盗链

1,在Nginx网站服务器配置将Nginx版本伪装位IIS不显示不版本号,查看管理Nginx进程用户

1)配置修改nginx源代码伪装版本信息

[root@centos ~]# vim /usr/src/nginx-1.6.0/src/core/nginx.h

Nginx优化与防盗链

[root@centos ~]# vim /usr/src/nginx-1.6.0/src/http/ngx_http_header_filter_module.c

Nginx优化与防盗链

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版本

Nginx优化与防盗链

6)修改nginx主配置文件隐藏版本

[root@centos nginx-1.6.0]# vim /usr/local/nginx/conf/nginx.conf

Nginx优化与防盗链

7)重启服务

[root@centos nginx-1.6.0]# killall nginx
nginx: no process found
[root@centos nginx-1.6.0]# nginx

8)客户端验证

Nginx优化与防盗链

8)管理nginx服务进程用户

Nginx优化与防盗链

2,在nginx网站服务器配置网页缓存时间

1)修改nginx主配置文件

[root@centos ~]# vim /usr/local/nginx/conf/nginx.conf

Nginx优化与防盗链

2)客户端访问验证

Nginx优化与防盗链

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

Nginx优化与防盗链

2)重启nginx

[root@centos ~]# killall nginx
[root@centos ~]# killall nginx
nginx: no process found
[root@centos ~]# nginx

3)查看nginx进程

Nginx优化与防盗链

5,配置nginx压缩数据

1)修改主配置文件支持压缩数据

[root@centos ~]# vim
/usr/local/nginx/conf/nginx.conf

Nginx优化与防盗链

2)重新启动nginx服务

[root@centos ~]# killall nginx
[root@centos ~]# killall nginx
nginx: no process found
[root@centos ~]# nginx

3)查看配置的压缩数据

Nginx优化与防盗链

6,配置nginx防盗链

1)上传错误图片

[root@centos www]# ls
error.png index.html logo.jpg

2)访问nginx图片

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

Nginx优化与防盗链

5)修改nginx主配置文件防止盗链接

[root@centos www]# vim /usr/local/nginx/conf/nginx.conf

Nginx优化与防盗链

6)重启nginx服务

[root@centos www]# killall nginx
[root@centos www]# killall nginx
nginx: no process found
[root@centos www]# nginx

7)验证盗链接

Nginx优化与防盗链

Nginx优化与防盗链




“博主还是学生目前正在努力学习阶段如有不对请指出,虚心接受指导,感谢!!!”