文章目录
复习一下:
在各种网站服务器软件中,除了 Apache HTTP Server 外,还有一款轻量级的 HTTP 服务器软件——Nginx
轻量级体现在低系统资源消耗方面,所占用内存较小
在连接高并发的情况下,Nginx 是 Apache 服务很不错的替代品,其应对 HTTP 并发连接的高性能处理能力(单台物理服务器可支持 30000~50000 个并发请求)也是其另外一个重要的优点
一、你用 Nginx 做过哪些关于配置(优化)?
默认的 Nginx 安装参数只提供最基本的服务,还需要我们继续深入优化才能发挥出服务器最大的作用,适应生产环境
①隐藏版本号
在生产环境中,需要隐藏 Nginx 的版本号,避免黑客根据特定的版本号进行攻击
比如你没有及时更新,版本号又暴露在外面,漏洞总是会被人慢慢找出来的
举个例子,比如市场上那么多的破解版本软件资源
--
vim /usr/local/nginx/conf/nginx.conf
server_tokens off; //关闭版本号
--
systemctl restart nginx.service
curl -I http://[Nginx服务器IP] //查看版本号信息
#curl的作用是发出网络请求,然后获取数据,“-I”选项是只显示服务器返回的HTTP头部信息
----
还有一种方法,相当于“修改”版本号,“混淆”黑客?
vim /opt/nginx-1.12.0/src/core/nginx.h
#define NGINX_VERSION "1.0.0" //修改版本号
#define NGINX_VER "IIS" NGINX_VERSION //修改服务器类型,IIS代表是windows类型
--
保存退出来,重新进行编译编译安装,然后再把之前关闭版本号的“off”改成“on”,打开显示版本号配置,显示出我们设置的版本号来混淆黑客
②修改用户与组
Nginx运行时,进程需要由用户与组的支持,用以对网站文件的读取进行访问控制
主进程由root创建,子进程由用户与组创建
Nginx默认是使用nobody用户账号与组账号,一般也是需要修改的
--
1.之前我们在编译安装Nginx服务中,一般创建运行用户与组是为nginx,以便其更准确地控制其访问权限
2.如果我们在访问nginx的时候全部都是nobody用户,有些缓冲区加载之类的请求可能会因为权限问题而被拒绝,导致前端不能正常查看到访问信息
--
补充一下nobody的意义:
1.nobody在Linux中是一个不能登录的账号,apache、nginx等都会采用一些特殊的账号来运行,可以防止程序本身有安全问题时,不会被黑客获取root权限
2.nobody是一个普通用户,非特权用户,使用nobody用户名的目的是使人和人都可以登录系统,但是其UID和GID不提供任何权限,即只能访问人人皆可读写的文件(权限最小)
3.服务器向外服务,即我们访问服务器时,会以nobody的身份登录
4.nobody就是一个普通账户,默认登录shell为'/sbin/nologin',无法直接登录系统,黑客登录了也很难通过漏洞来破坏服务器
5.这个用户的权限配置很低,某种意义上具有较高安全性,一切都只给最低权限,这就是nobody存在的意义
----
vim /usr/local/nginx/conf/nginx.conf
user nginx nginx;