nginx安装及配置优化

安装环境:centos6.5 64位

nginx版本:nginx-1.4.7

一、安装

  1. 安装必要软件 pcre和openssl

    为了支持rewrite功能,我们需要安装pcre

tar zxvf pcre-8.31.tar.gz

cd pcre-8.31

./configure && make&& make install

为了ssl支持,需要安装openssl

yum -y install openssl*

2.安装nginx

解压:

tar -zxvf nginx-1.4.7.tar.gz

配置:

cd nginx-1.4.7

./configure --prefix=/home/server/nginx --with-pcre=/root/soft/pcre-8.31 --with-http_ssl_module --with-http_stub_status_module --with-http_gzip_static_module

编译和安装:

make && make install

--with-pcre=/root/soft/pcre-8.31 /////nginx安装路径

--with-http_stub_status_module   /////支持nginx状态查询

--with-http_ssl_module           ////支持https

--with-pcre=/root/soft/pcre-8.31 ///支持rewrite重写

--with-http_gzip_static_module  ////启用nginx ngx_http_gzip_static_module 支持(在线实时压缩输出数据流)

3.启动、关闭、重置nginx

/home/server/nginx/sbin/nginx       ///启动

/home/server/nginx/sbin/nginx  -s stop  ///关闭

/home/server/nginx/sbin/nginx  -s reload //重置

/home/server/nginx/sbin/nginx  -t  //检查配置文件

整个nginx的安装到这里就结束了。

二、内核参数优化

net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 1800
net.ipv4.ip_conntrack_max = 16777216 # 如果使用默认参数,容易出现网络丢包
net.ipv4.netfilter.ip_conntrack_max = 16777216# 如果使用默认参数,容易出现网络丢包
net.ipv4.tcp_max_syn_backlog = 65536
net.core.netdev_max_backlog = 32768
net.core.somaxconn = 32768
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries =
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_mem = 94500000 915000000 927000000
net.ipv4.tcp_max_orphans = 3276800
net.ipv4.ip_local_port_range = 1024 65535

sysctl -p

三、配置文件优化

vi    nginx.conf

user  nobody nobody;   #运行nginx的所属组和所有者

worker_processes  8;     #nginx进程数(等同nginx总核心数)

error_log   /home1/logs/error.log crit; #错误日志路径

pid        logs/nginx.pid;   #pid路径

events {
    worker_connections  65535; #一个进程可以同时处理65535个链接请求
    multi_accept on;   #告诉nginx收到一个新连接通知后接受尽可能多的连接

use epoll; #设置客户端线程轮询方法,linux内核2.6+应使用epoll,高性能网络模型
}

upstream  server.com  {
       server 10.10.10.111:80 max_fails=2 fail_timeout=15s;   #代理服务器

}

http   {

include      mime.types;  #只是一个在当前文件中包含另一个文件内容的指令

default_type text/html;  #默认文件类型
charset UTF-8;  #文件的默认字符集

log_format main ‘$remote_addr – $remote_user [$time_local] “$request” ‘
‘$status $body_bytes_sent “$http_referer” ‘
‘”$http_user_agent” “$http_x_forwarded_for” ‘; #日志格式

access_log   logs/access.log  #默认访问日志路劲

sendfile  on; #开启高效传输模式

server_tokens off;    #隐藏版本号

tcp_nopush on; #告诉 nginx 在一个数据包里发送所有头文件,而不一个接一个的发送

tcp_nodelay on; #告诉 nginx 不要缓存数据,而是一段一段的发送–当需要及时发送数据时,就应该给应用设置这个属性,这样发送一小块数据信息时就不能立即得到返回值。

keepalive_timeout 65;  #keepalive 超时时间

reset_timedout_connection on; #告诉 nginx 关闭不响应的客户端连接。这将会释放那个客户端所占有的内存空间

open_log_file_cache max=1000 inactive=20s min_uses=2 valid=1m;   #日志文件缓存,off:禁用缓存;

参数注释如下:

max: 设置缓存中的最大文件描述符数量

inactive:设置存活时间,默认是 10s
min_uses:设置在 inactive 时间段内,日志文件最少使用多少次后,该日志文件描述符记入缓存中,默认是 1 次
valid:设置检查频率,默认 60s

server_names_hash_bucket_size 128;  #根据server名字的记录其hash表的大小。

client_header_buffer_size 512k;   #上传文件大小限制。

large_client_header_buffers 32 128k;  #大请求缓冲区的个数和大小。

client_max_body_size 100m;  #允许客户端连接的最大请求实体大小为100m。

gzip on;  #告诉 nginx 采用 gzip 压缩的形式发送数据。这将会减少我们发送的数据量

#开始配置一个域名,一个server配置段一般对应一个域名

gzip_disable "msie6";  #为指定的客户端禁用gzip功能。设置成IE6使之兼容。

gzip_static on; #告诉nginx在压缩资源前,先查找是否有预先gzip处理过的资源。

gzip_proxied any; #允许或者禁止压缩基于请求和响应的响应流,any将会压缩所有的请求。

gzip_min_length 1k; #最小压缩文件大小。

gzip_comp_level 4;  #设置数据压缩等级,9最慢压缩比最大,取折中值。

gzip_vary on;  #和http头有关系,加个vary头,给代理服务器用的,有的浏览器支持压缩,有的不支持。为避免浪费不支持的也压缩,需要根据客户端的HTTP头来判断,是否需要压缩。
gzip_http_version 1.0;  #识别http的协议版本

gzip_buffers 4 16k;  #设置系统获取几个单位的缓存用于存储gzip的压缩结果数据流。4 16k代表以16k为单位,安装原始数据大小以16k为单位的4倍申请内存。

gzip_types text/htm text/shtml text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;   #设置需要压缩的数据格式。

open_file_cache max=100000 inactive=20s;  #打开缓存的同时也指定了缓存的最大数目,以及缓存的时间,

open_file_cache_valid 30s;  #在 open_file_cache 中指定检测正确信息的间隔时间。

open_file_cache_min_users 2;  #定义了open_file_cache中指令参数不活动时间期间里最小的文件数。

open_file_cache_errors  on;  #指定了当搜索一个文件时是否缓存错误信息,也包括再次给配置中添加文件。

ssi on;  #开启ssi支持

ssi_silent_errors on;  #开启后处理ssi文件出错时,不输出错误提示。

ssi_types text/shtml text/xml;  #默认是ssi_types text/html,所以如果需要htm和html支持,则不需要设置这句,如果需要shtml支持,则需要设置:ssi_types text/shtml

server {

listen  80;  #在本机所有 ip 上监听 80,也可以写为 192.168.35.201:80,只监听 该IP上的 80 口

server_name    www.test.com;     #域名

root  /home/web;   #站点根目录

index index.html index.htm; #索引文件

error_page   404 /404x.html;    #定义错误页面

location = /index.shtml {
                expires -1;     #页面立即过期
        }

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
        expires 30d;      #图片缓存时间
}

location ~* ^/wap/.*$ {
            proxy_pass http:/server.com;
            proxy_redirect default;
        }

}

}

简单的写这么多,还有很多没写,以后我熟悉了再写吧!

时间: 2024-09-30 01:49:24

nginx安装及配置优化的相关文章

LVS+Nginx(LVS + Keepalived + Nginx安装及配置)

(也可以每个nginx都挂在上所有的应用服务器) nginx大家都在用,估计也很熟悉了,在做负载均衡时很好用,安装简单.配置简单.相关材料也特别多. lvs是国内的章文嵩博士的大作,比nginx被广泛接受还要早7年,并且已经被红帽作为了系统内置软件,可谓很牛了.lvs相对于nginx来说配置上就要相对复杂一些. 但是,有时候我们会看到大牛们分享的经验里面是lvs+nginx作为负载均衡了,一直想不明白这是个什么道理. 为什么会出现两者被同时使用呢?其实,这要从两者的各自优势来说了. nginx用

Eclipse 环境安装和配置优化

1.下载相应的eclipse版本.    官方下载地址:http://www.eclipse.org/downloads/    juno版本的64位下载地址:http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/juno/SR2/eclipse-jee-juno-SR2-win32-x86_64.zip 2.解压eclipse-jee-juno-SR2-win32-x86_64.

ubuntu server nginx 安装与配置

一:关于nginx http://wiki.ubuntu.org.cn/Nginx http://nginx.org/cn http://wiki.nginx.org/NginxChs 二:ubuntu server 安装 如果你之前安装了 apache2服务,请先停止掉 sudo service apache2 stop sudo apt-get install nginx #安装 安装完成之后,打开  localhost测试 安装成功之后,默认会开启nginx服务,可自行关闭,启动,重启 s

阿里云服务器Linux CentOS安装配置(八)nginx安装、配置、域名绑定

阿里云服务器Linux CentOS安装配置(八)nginx安装.配置.域名绑定 1.安装nginx yum -y install nginx 2.启动nginx service nginx start 3.访问(nginx默认是80端口) curl 127.0.0.1 4.域名子绑定 编辑文件/etc/nginx/conf.d/default.conf,在底部加入下面代码,完成前几章所述4个端口的子域名绑定 server{ listen 80; server_name tomcat.bingz

centos7系统下nginx安装并配置开机自启动操作

准备工作 我的centos7系统是最小化安装的, 缺很多库, 首先安装必须的运行库 ? 1 2 3 4 5 6 7 8 9 10 11 yum install wget gcc gcc-c++ pcre-devel zlib-devel ##创建工作目录并进入工作目录 mkdir -p /z/nginx && cd /z/nginx ##获取nginx最新的安装包 wget http://nginx.org/download/nginx-1.11.10.tar.gz ##解压缩 tar z

从零开始搭建系统1.2——Nginx安装及配置

从零开始搭建系统1.2--Nginx安装及配置 原文地址:https://www.cnblogs.com/provence666/p/8638502.html

linux nginx安装以及配置

一.Nginx简介 Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器.Nginx是由Igor Sysoev为俄罗斯访问量第二的Rambler.ru站点开发的,第一个公开版本0.1.0发布于2004年10月4日.其将源代码以类BSD许可证的形式发布,因它的稳定性.丰富的功能集.示例配置文件和低系统资源的消耗而闻名.2011年6月1日,nginx 1.0.4发布. Nginx是一款轻量级的Web 服务器/反向代理服务器

Nginx如何进行配置优化?

在日常工作的时候,搭建配置Nginx的时候,我们都会做相应的优化,那一般需要做的配置优化有哪些呢?可能有些小伙伴一听到要进行优化,内心难免有些慌. 今天咱们聊聊Nginx进行常规配置优化,这里需要注意一点,在配置完之后,一定要记得重新加载配置,运行nginx -s reload即可 1. Nginx的压缩输出配置 gzip压缩技术可以把页面大小压缩成原来30%以下,页面变小后,用户浏览页面的时候,数据传输速度就会快得多. 绝大多数都是支持解析gzip过的页面,我们主要优化服务器配置 Nginx的

linux下nginx安装、配置实战

1什么是Nginx Nginx("enginex")是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器,在高连接并发的情况下Nginx是Apache服务器不错的替代品.其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好.目前中国大陆使用nginx网站用户有:新浪.网易.腾讯,另外知名的微网志Plurk也使用nginx. Nginx作为负载均衡服务器,既可以在内部直接支持Rails和PHP程序对外进行服务,也可