linux下nginx的安全优化

上节我们说了Apache的Web服务安全与优化。分别说了进程优化,版本号的隐藏,会话连接的时间,DNS查询。我们只要掌握这些优化点就够了,大家不要一味追求求精,什么都有个度的,你弄的太过了,相应他别的方面也就会不行了,所以我们优化的标准是找一个折衷点,是最好的!接下来我们说下nginx的web服务的安全优化。

Nginx的安全优化原理跟Apache大致一样的,有一些细微的差别,和更改参数的地方不同而已!

在说优化nginx之前我们先了解下他的结构:

Nginx由内核和模块组成,其中,内核的设计非常微小和简洁,完成的工作也非常简单,仅仅通过查找配置文件将客户端请求映射到一个location block(location是Nginx配置中的一个指令,用于URL匹配),而在这个location中所配置的每个指令将会启动不同的模块去完成相应的工作。

Nginx的模块从结构上分为核心模块、基础模块和第三方模块:

核心模块:HTTP模块、EVENT模块和MAIL模块

基础模块:HTTP Access模块、HTTP FastCGI模块、HTTP Proxy模块和HTTP Rewrite模块,

第三方模块:HTTP Upstream Request Hash模块、Notice模块和HTTP Access Key模块。

一配置文件优化

1.     隐藏nginx的header里版本号信息 server_tokensoff;

2.     更改nginx的默认用户和组

nginx默认用户是nobody,编译的时候更改为nginx.(注意:这步在我们编译安装的时候已经做了)

3.     配置Nginx的worker的进程个数

这个开始根据CPU个数来做参考,随后根据业务设定。

worker_processes  5;修改此

4.     根据cpu核数进行优化nginx进程

worker_cpu_affinity0001 0010 0100 1000; 这个是四核cpu优化

5.     nginx事件处理模型优化

events {

worker_connections  1024;

use epoll;

}

6.     调整nginx单个进程允许连接最大客户数

worker_connections  20480;已经不小了

7.设置连接超时时间

keepalive_timeout 60;

8.配置nginx gzip压缩功能

配置nginx gzip压缩功能###优化重点###

http {

server_tokens off;

gzip  on;

gzip_min_length 1k;

gzip_http_version 1.1;

gzip_buffers   4 32k;

gzip_comp_level 9;

gzip_types application/javascript text/css text/xml;

gzip_vary on;

注意:gzip_types对应的文件类型在安装目录下的mime.type 文件

10.配置Nginx expires缓存功能

缓存expires 优化

expirse是指当客户访问网站的时候,文件在客户端存放多久。这个是服务器决定的,就是通过他实现的

在nginx里配置就是放在location里

expires  30d;

Nginx的优化我们掌握以上就可以了,在生产中,我们可以根据自己的实际需求来配置各个优化点的参数。是不是很简单啊!童鞋们我们一定要相信自己,如果你不相信自己,你就会觉得他很难!相信自己就不难啦!不是嘛!

时间: 2024-08-06 11:55:55

linux下nginx的安全优化的相关文章

linux下nginx实现虚拟主机(3种方法:基于域名、基于端口、基于ip地址)

在3.17日的时候已经写过一篇关于apahce的基于域名.端口.ip地址3种方式的虚拟主机实现.原理是一样的,现在记录nginx的虚拟主机这三种方式的实现. 系统版本为rhel5.6,nginx版本为1.1.6. 1.基于域名: 基于域名的方式,要先有dns服务器,这里为了方便,可以在/etc/hosts文件里面配置,把它当成dns就行了,可以参考3.17日那篇博客关于dns的配置或者其他博文也有.这里关于nginx的安装也略去. [[email protected] ~]# cat /etc/

Linux下nginx编译安装教程和编译参数详解

这篇文章主要介绍了Linux下nginx编译安装教程和编译参数详解,需要的朋友可以参考下 一.必要软件准备1.安装pcre 为了支持rewrite功能,我们需要安装pcre 复制代码代码如下: # yum install pcre* //如过你已经装了,请跳过这一步 2.安装openssl 需要ssl的支持,如果不需要ssl支持,请跳过这一步 复制代码代码如下: # yum install openssl* 3.gzip 类库安装 复制代码代码如下: yum install zlib zlib-

linux下nginx的安装

以Red Hat Enterprise Linux 5为例进行讲解. 相关系列: linux下jdk的安装 linux下ant的安装 linux下redis的安装 linux下svn的安装 linux下nginx的安装 linux下graphviz的安装 linux下doxygen的安装 安装nginx版本为0.8.36 一.下载nginx 下载地址:http://www.nginx.org/ 选择nginx-0.8.36 将该下载包拷贝到/usr/local/下(随意了,找个地方就好) 二.安

linux下nginx+php-fpm运行用户以及资源目录的权限

最近研究了下linux下nginx+php-fpm等web服务的运行用户,和web目录的权限 之前以为,nginx php-fpm 等服务,是用户登入的linux服务器上后, 然后运行对应的服务, 该服务就是以那个用户身份在跑的,后面发现是错的, 普通用户登入,没有权限启动服务. google,下,找同事了解到, 猜发现, 服务的运行身份都是在配置文件中配置的, 如nginx服务, 在nginx.conf的开头有user [用户名]  这就表示以填写的用户运行该模式了. 对应的web资源,必须对

VMware Linux 下 Nginx 安装配置 - nginx.conf 配置 [负载两个 Tomcat] (三)

首先启动Nginx 1. 转到 nginx 目录: /usr/local/nginx; 启动 nginx: /usr/local/nginx/nginx ubuntu 前要加 sudo; 关健配置 http 配置块下,一般设置在 zgip on 下: upstream localhost { #绿色对应 #ip_hash; server localhost:8090; server localhost:8080; } server / { location / { proxy_connect_t

linux下nginx启动停止重启控制脚本

这是控制nginx服务的脚本文件,包括控制nginx的启动.重启.停止.平滑重启.对配置文件的额检查. [[email protected] ~]# cat nginx.sh #!/bin/env bash # description:nginx server   ###必须加描述 # nginx - this script is used to control nginx service # processname nginx # chkconfig: - 85 15 # edit by su

linux下nginx,mysql,php(lnmp)编译安装

关闭SELINUX vi /etc/selinux/config #SELINUX=enforcing #注释掉 #SELINUXTYPE=targeted #注释掉 SELINUX=disabled #增加 :wq!  #保存退出 setenforce 0 #使配置立即生效 mysql 5.5.28安装 安装路径:/usr/local/mysql数据库路径:/usr/local/mysql/data/ mysql从5.5版本开始,不再使用./configure编译,而是使用cmake编译器,具

Linux下Nginx的安装步骤

一.下载pcre 官网下载:http://www.pcre.org/ # wget http://sourceforge.net/projects/pcre/files/pcre/8.35/pcre-8.35.tar.gz/download # cd /pcre-8.35 二.下载purge模块(用于删除Nginx缓存) # wget http://labs.frickle.com/files/ngx_cache_purge-2.1.tar.gz # tar zxvf ngx_cache_pur

linux下nginx安装

概述:Nginx是一个轻便的支持高并发的HTTP和反向代理服务器,运用很广.这里记录下Linux下Nginx的安装步骤,这里以centos系统为例,安装Nginx1.7.9,安装目录为/usr/local. 一.安装Nginx依赖环境 1.安装gcc-c++ # yum install -y gcc-c++ 2.下载pcre #cd /usr/local #wget http://sourceforge.net/projects/pcre/files/pcre/8.35/pcre-8.35.ta