Nginx在配置负载均衡要注意的问题

  • 时间:2018-12-21 23:13 作者:一点热 来源:一点热 阅读:855
  • 扫一扫,手机访问
摘要:我们在上两节已经对Nginx的少量安全配置做了一个分析说明,把少量防攻击的少量方法,罗列出来。假如需要看回之前的文章,可以订阅我的头条号:一点热,并查阅之前的文章快速入口Nginx负载均衡安全配置说明2那么今天要说的是,把Nginx配置要注意的问题,进行讲解少量。1、防止空主机头的设置。那什么是空主

我们在上两节已经对Nginx的少量安全配置做了一个分析说明,把少量防攻击的少量方法,罗列出来。假如需要看回之前的文章,可以订阅我的头条号:一点热,并查阅之前的文章

快速入口

Nginx负载均衡安全配置说明2

那么今天要说的是,把Nginx配置要注意的问题,进行讲解少量。

1、防止空主机头的设置。

那什么是空主机头?这个简单的来说,就是多个域名指向同一个主机的时候,用来区分每个域名执行对应请求的方法。

那么又为什么需要加个空主机头?

一般来说,我们的网站的域名指向比较简单,直接在DNS做解析的时候,增加对应的域名指向的IP,即可以通过访问改域名直接转向到改IP的服务器了,但是,这里有一个问题,就是,假如我们其余人,增加增加一个自己的域名同时指向到你的网站,那么会出现的是,他也可以访问到你的资源,那你可能会这样说,随意他吧,反正我们的网站还是我们的网站,你这样想就大错特错了,其实,在我们的实际的网站中,确实会有很多人都会通过这样来转向到人家的网站,特别是新建的网站域名,他们的目的是,他们本身是没有资源网站的,但是因为刚刚建站后,域名是没有权重的,那么他们可以通过转向其余少量高质素的网站,通过转向IP,来提升自己的域名权重.

对于Nginx默认是可以允许通过IP访问的,也可以通过域名访问到你的服务器,那当然也允许其余人通过域名绑定到改服务器的IP地址来访问Nginx的,

我们可以看到nginx conf里面的server代码中,增加下面的一句话

server {

listen 80 default;

server_name _;

return 500;

}

listen 80 default;表示的是允许所有指向的域名。

2、设置跨越访问

在我们的jsp页面可能需要访问到外部的JS或者者需要请求外部的资源,所以我们需要配置Nginx的跨域访问。

http {

......

add_header Access-Control-Allow-Origin *;

add_header Access-Control-Allow-Headers X-Requested-With;

add_header Access-Control-Allow-Methods GET,POST,OPTIONS;

......

}

假如要指定域名的话,可以输入

add_header Access-Control-Allow-Origin xxx.com;

3、日志查看

对于我们经营一个网站来说,我们要时刻注意到网站产生的日志,便于我们修改与维护,提高安全性,而对于我们开发的来说我们也需要如何看到这些日志,那么Nginx是如何查看日志的

我们可以在nginx logs目录下查看access.log,

我们大概可以看到如下的文字:

121.23.0.36 - - [15/Jun/2016:06:47:24 +0800] "GET /images/yeehot.png HTTP/1.1" 404 571 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;Alibaba.Security.Heimdall.950384.p)"

用户端访问ip 121.23.0.36

日志中默认设置即为- -

记录客户HTTP的身份验证 -

服务器完成请求解决时的时间 [15/Jun/2016:06:47:24 +0800]

请求方式,请求资源,协议 GET /images/yeehot.png HTTP/1.1

协议状态码 404

服务器向用户端发送的字节数 571

记录从哪个页面链接访问过来的(非页面链接访问的则为-) -

用户浏览器信息 Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;Alibaba.Security.Heimdall.950384.p)

4、Nginx版本的隐藏

国内很多的网站都使用Nginx转向,包括少量大型网站,有时,我们会看到这些网站服务器在访问没有响应的时候,会返回一个nginx,并且带上相应的版本, 一般网站都不会经常同步官方Nginx的版本,可能会存在相应的bug,假如少量别有用心的人看到原来你使用的是这个版本,那么网站就成为攻击的对象。

我们可以在Nginx隐藏版本,

我们可以对变量server_tokens,设置相应的开关,on,表示打开显示版本,off表示关闭显示版本

例如关闭版本的操作方法如下:

server {

listen 80 ;

server_name yeehot.com;

server_tokens off

}

4、关于访问返回 400 Bad request的说明

有时我们访问网站会返回400 Bad request,一般来说,是我们用户端请求的herader 超出了缓冲区设置的值,那么我们可以对nginx的值调整一下

在nginx.conf,我们可以看到有两个变量可以设置

client_header_buffer_size,默认是1k

large_client_header_buffers 默认值为4KB

我们可以根据实际情况,将相应的数值调大,看看问题有没有处理。

5、在日志中,会出现连接超时的问题,

我们查看日志的时候回出现connect() failed (110: Connection timed out),我们可以调整一下连接超时的时间。

location /{

...

proxy_read_timeout 20;

...

}

不过,这个只是优化作用,最终,还是更新一下服务器的执行能力。

6、nginx禁止列出站点目录

对于列出站点的目录这个操作,可能对于我们开发的来说,会忽略的一个问题,假如我们在配置nginx,打开了这个配置的话,那么网站下目录的所有文件会列举出来,那么你网站的信息可能一律暴露出去了

对于我们禁止NGINX列出站点目录的方法,一般来说nginx默认是关闭的,假如看到有autoindex这句,把它注释就好了,

#autoindex on;

7、nginx无法启动检查

有时我们会看到nginx无法启动,一般来说,就是端口被占用了。处理办法就是中止占用的端口

我们可以输入如下的命令查看端口占用情况,因为nginx是使用80端口的,所以我们可以查看80端口。

netstat -anp | grep 80

而后我们中止对应的进程

输入指令

kill -9 XX

8、nginx 404页面

一个良好的网站,都需有一个好的页面体验,但用户访问不到服务器的一个网站,我们服务器需要返回一个友好的提醒,这个就是404页面。

对于nginx的配置,我们可以这样配置

在server里面加入如下代码

server{

...

error_page 404 /404.html;

...

}

今天的课程讲到这里,我们下一节将开始讲解session的问题,请大家继续关注我的头条号:一点热,假如有问题欢迎留言咨询,欢迎转发与收藏,假如转载到其余地方,请与我联络。

  • 全部评论(0)
最新发布的资讯信息
【系统环境|】从谷歌到手机厂商都下决心了,要清除32位应用这匹“害群之马”(2025-10-17 05:41)
【系统环境|】Windows上使用QEMU创建aarch64(ARM64)虚拟机(2025-10-17 05:40)
【系统环境|】nodejs 如何安装在aarch64平台(2025-10-17 05:39)
【系统环境|】常用git命令-从远程更新代码合并分支、提交代码等(2025-10-17 05:38)
【系统环境|】技术干货|常用的 Git 功能和选项(2025-10-17 05:38)
【系统环境|】掌握git命令,图解一目了然(2025-10-17 05:37)
【系统环境|】总结几个常用的Git命令的使用方法(2025-10-17 05:36)
【系统环境|】这篇 Git 教程太清晰了,很多 3 年经验程序员都收藏了(2025-10-17 05:35)
【系统环境|】Git常用命令及操作指南(2025-10-17 05:35)
【系统环境|】「实用」盘点那些开发中最常用的Git命令(2025-10-17 05:34)
手机二维码手机访问领取大礼包
返回顶部