企业级Web Nginx 服务优化(1)

企业级Web Nginx 服务优化

总结配置文件:

nginx.conf httpd.conf httpd-vhosts httpd-mpm.conf

my.cnf php.ini php-fpm.conf

1.1nginx.conf 配置文件基本参数优化

1.1.1 隐藏nginx header 内版本号信息

一些特定的系统及服务漏洞一般都和热定的软件及版本号有关,我们应尽量隐藏服务器的敏感信息(软件名称及版本等信息),这样黑客无法猜到有漏洞的服务是否是对应服务的版本,从而确保web服务器最大的安全。

1.利用curl查看隐藏前header内的web版本信息。

  1. [[email protected]-01 ~]# curl -I 127.0.0.1
  1. HTTP/1.1 200 OK
  2. Server: nginx/1.6.2
  3. Date: Thu, 04 Jun 2015 21:04:54 GMT
  4. Content-Type: text/html
  5. Content-Length: 11
  6. Last-Modified: Mon, 01 Jun 2015 10:17:41 GMT
  7. Connection: keep-alive
  8. ETag: "556c3145-b"
  9. Accept-Ranges: bytes
  10. 2.浏览器访问web服务报错信息:
  11. 以上两个访问不但暴露了nginx软件版本名称,而且暴露了nginx特定的版本号,这样就会给服务的安全带来了一定的风险,应该禁止掉。
  12. 3.修改nginx配置文件nginx.conf中的加入“server_tokens off”如下:
  13. worker_processes  1;
  14. events {
  15.     worker_connections  1024;
  16. }
  17. http {
  18.     server_tokens off;
  19.     include       mime.types;
  20.     default_type  application/octet-stream;
  21.     sendfile        on;
  22.     keepalive_timeout  65;
  23.     server {
  24.         listen       80;
  25.         server_name  localhost;
  26.         location / {
  27.             root   html;
  28.             index  index.html index.htm;
  29.         }
  30.         error_page   500 502 503 504  /50x.html;
  31.         location = /50x.html {
  32.             root   html;
  33.         }
  34.     }

进行重启或者重新加载:

  1. [[email protected]-01 html]# nginx -s reload

报错信息注意放置为知为http标签内,如果放错了位置,会有报错如下:
生效的结果如下:[[email protected]01 html]# curl -I 127.0.0.1HTTP/1.1 200 OKServer: nginx <<- 这里边就没有版本号,使之更加的安全Date: Thu, 04 Jun 2015 21:14:16 GMTContent-Type: text/htmlContent-Length: 11Last-Modified: Mon, 01 Jun 2015 10:17:41 GMTConnection: keep-aliveETag: "556c3145-b"Accept-Ranges: bytes2.浏览器访问去掉版本号:

官方说明:

  1. Syntax: server_tokens on | off;

  2. Default:
  3. server_tokens on;《--默认是打开的状态
  4. Context: http, server, location<--在哪个标签里面作用
  5. Enables or disables emitting nginx version in error messages and in the “Server” response header field.
  6. 来源: <http://nginx.org/en/docs/http/ngx_http_core_module.html#server_tokens>

响应的错误消息和迎面错误的消息

特别说明:更进一步,我们可以通过一些手段来把web服务软件的名称也给隐藏或者更改为其他web服务软件,迷惑黑客,此处设置见后文

1.1.2更改掉nginx的默认用户及用户组nobody

1.nginx服务启动,使用默认用户是nobody:

[[email protected] nginx]# grep ‘#user‘ conf/nginx.conf.default
                     #user  nobody;

为了防止黑客猜到这个用户,我们需要更改下特殊的用户名。提供nginx服务用。

2.更改默认用户的方法有两种,第一种为:

user nginx nginx;

设置Nginx Worker 进程运行的用户以及用户组,如果注释或者不设置,默认即是nobody用户和组,不推荐使用Nobody用户名称,最好采用一个普通用户名称,如:nginx的主机进程还是以root身份运行的,后文也会有不用root进程起动服务配置。

建立nginx用户的操作过程如下:

[[email protected] conf]# useradd nginx -s /sbin/nologin -M <----不需要系统同登陆shell 应当禁止掉 相当于apache里的用户一样的。

3.更改默认用户的方法有两种,前面讲了第一种,第二种为:


4.最后检查nginx进程的对应用户如下:

  1. [[email protected]-01 conf]# ps -ef | grep nginx | grep -v grep

  2. root       3748      1  0 05:04 ?        00:00:00 nginx: master process nginx
  3. nginx      3765   3748  0 05:11 ?        00:00:00 nginx: worker process

1.1.3配置nginx worker进程

在高并发场景,我们需要事先启动更多的nginx进程以保证快速的响应并处理用户的请求。具体的配置参数如下:

worker_processes  1;<---指定nginx要开启的进程数,建议指定和cpu的数量相等或乘2的进程数。

worker_processes 参数开始的设置可以等于cpu的个数或核数(worker_cpu_affinity参数中的配置可以指定第一个到最后一个进程分别是由哪个的cpu),进程数多了一些,起始提供服务时就不会临时启动新的进程提供服务,减少了系统开销,提升了服务速度。热数场合也可以考虑提高至CPU*2的进程数,具体情况要根据世纪的业务来选择,因为这个参数除CPU核数的影响外和硬盘存储的数据以及负载也有关系。

1.查看linux服务器的核数的方法:

[[email protected] conf]# grep process /proc/cpuinfo 
processor	: 0

2.进行修改

vim nginx.conf[[email protected] conf]# cat nginx.confworker_processes  4;events {    worker_connections  1024;}

3.进行重新加载:

[[email protected] conf]# nginx -s reload

4.进行查看并行检查:

[[email protected] conf]# ps -ef | grep nginx | grep -v grep
root       3748      1  0 05:04 ?        00:00:00 nginx: master process nginx
nginx      3828   3748  0 05:59 ?        00:00:00 nginx: worker process
nginx      3829   3748  0 05:59 ?        00:00:00 nginx: worker process
nginx      3830   3748  0 05:59 ?        00:00:00 nginx: worker process
nginx      3831   3748  0 05:59 ?        00:00:00 nginx: worker process

1.1.4根据CPU核数进行nginx进程优化:

默认情况下nginx的多个进程可能更多的跑在一颗cpu上,本节是分配不同的进程给不同的cpu处理,达到充分利用硬件多核多cpu的目的:

1.不同cpu对应配置如下

四核cpu服务器:


八核cpu服务器:

时间: 2024-10-27 13:59:28

企业级Web Nginx 服务优化(1)的相关文章

企业级Web Nginx 服务优化

企业级Web Nginx 服务优化 http://blog.51cto.com/search/result?q=%E4%BC%81%E4%B8%9A%E7%BA%A7Web+Nginx+%E6%9C%8D%E5%8A%A1%E4%BC%98%E5%8C%96%285%29 企业级nginx服务优化合集 企业级nginx服务优化(一) 企业级nginx服务优化(二 ) 企业级Web Nginx 服务优化(1) 企业级Web Nginx 服务优化(2) 企业级Web Nginx 服务优化(3) 企业

企业级Web Nginx 服务优化(2)

2.worker_cpu_affinity参数官方说明: 查看cpu的核数的情况:[[email protected] conf]# grep "physical" /proc/cpuinfophysical id : 0address sizes : 42 bits physical, 48 bits virtual top命令很好记得总结 输入top 按 1 来进行查看. 3.压力测试配置结果: a.配置前压力测试结果: 通过观察,我们发现配置前不同CPU使用率相对平均. b.配置

企业级Web Nginx 服务优化(5)

资源防盗链的技术: 1.1.1什么是资源盗链? 简单的说啊,就是某些不法的网站,通过在其自身网站程序里未经许可非法调用其他网站的资源,然后在自己的网站上显示这些调用的资源,达到了填充自身网站显示效果,但是浪费了调用资源网站的网络流量,造成了其他网站的带宽及服务压力吃紧,甚至宕机. 1.1.2资源被盗链原理详细示意图 解决的办法就是: 1.图片,视频打上水印,品牌. 2.防盗链控制,根据IP控制 3.防盗链(根据referer机制) 1.1.3网站资源被盗链带来的问题: 网站资源盗链带来的问题 当

nginx服务优化大全

第18章 nginx服务优化 18.1 复习以前的nginx知识 18.1.1 复习nginx编译安装的3部曲 ./configure????????配置(开启/关闭功能),指定安装目录 make????????????软件编译,将源代码编译成二进制文件 make install????????将一些目录进行复制,修改,文件进行修改,查看的操作 18.1.2 编译安装常用的nginx命令 nginx -t????????????????????????????语法检查 nginx -s relo

Nginx服务优化之隐藏版本号、修改用户与组、配置页面缓存与时间、日志分割以及设置连接超时

Nginx服务优化之隐藏版本号.修改用户与组.配置页面缓存与时间.日志分割以及设置连接超时 前言 ? 在企业信息化应用环境中,服务器的安全性和响应速度需要根据实际情况进行相应参数配置,以达到最优的用户体验. ? 默认的nginx安装参数只能提供最基本的服务,还需要调整如网页缓存时间.连接超时.网页压缩等相应参数,才能发挥出服务器的最大作用. 一.隐藏版本号 ? 我们为什么要隐藏版本号? ? 我们一定要有一个意识:对于软件或者说服务,其安全性必然不可能是无懈可击的,总会或多或少地存在各种bug或者

Nginx服务优化及优化深入

在企业信息化应用环境中,服务器的安全性和响应速度需要根据实际情况进行参数配置,以达到最优的用户体验.默认的Nginx安装参数只能提供最基本的服务,还需要调整如网页缓存时间.连接超时.网页压缩等相应参数,才能发挥出服务器的最大作用. Ngnix服务的安装详细介绍请参考 部署Nginx网站服务实现访问状态统计以及访问控制功能 Nginx服务优化 可以从隐藏版本号.更改用户与组.配置网页缓存时间.日志切割.设置连接超时这几个方面进行优化. 1.隐藏版本号 在生产环境中需要隐藏Nginx的版本号,以避免

Nginx服务优化

1.1Nginx.conf配置文件基本参数优化 1.1.1  隐藏nginx header内版本号信息 一些特定的系统及服务漏洞一般都和特定的软件及版本号有关,我们应尽量隐藏服务器的敏感信息(软件名称及版本等信息)这样黑客无法猜到有漏洞的服务是否是对应服务的版本,从而确保web服务器最大的安全. 彻底修改nginx错误返回页面,在编译安装之前修改nginx.h文件 sed -n '13,17p' src/core/nginx.h #define NGINX_VERSION      "1.6.3

Nginx服务优化——性能与安全

1.隐藏Nginx的版本 一般来说,软件的漏洞都和版本有关的.为了减少被人针对某一版本的恶意攻击,我们可以把我们的Nginx版本隐藏起来,提高被攻击的门槛.在隐藏版本号之前,我们可以通过curl获取到软件版本. 隐藏Nginx的版本号可以通过修改nginx.conf配置文件,在http段标签内添加 "server_tokens off"的参数 修改之后检查语法问题,没有的话重载配置文件 /usr/local/nginx/sbin/nginx -t /usr/local/nginx/sb

Nginx服务优化(七)网页压缩与防盗链

配置Nginx实现网页压缩功能 Nginx的ngx_http_gzip_module压缩模块提供对文件内容压缩的功能,允许Nginx服务器将输出内容在发送客户端之前进行压缩,以节约网站带宽,提升用户的访问体验,默认已经安装.可在配置文件中加入相应的压缩功能参数对压缩性能进行优化. 压缩功能参数讲解 gzip on:开启gzip压缩输出 gzip_min_length 1k:用于设置允许压缩的页面最小字节数 gzip_buffers 4 16k:表示申请4个单位为16k的内存作为压缩结果流缓存,默