Nginx源码编译安装及配置文件解读

编译安装 Nginx1.8

tar zxf nginx-1.8.0.tar.gz

cd nginx-1.8.0/

vim auto/cc/gcc 
    注释debug 可以减小安装后的大小
vim src/core/nginx.h
    隐藏nginx版本信息 
#解决软件包依赖性
yum install -y pcre-devle
yum install -y openssl-devel
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-pcre                  
#编译
--with-http_ssl_module   开启HTTP SSL模块 支持https请求

make
make install

Nginx 配置文件

vim /usr/local/lnmp/nginx/conf/nginx.conf

user nobody nobody;    #使用访问人员
worker_processes 2;    #cpu number
error_log /usr/local/nginx/logs/nginx_error.log crit; #nginx 的日志模式为crit
pid /usr/local/nginx/logs/nginx.pid;  #pid 在那个dir
worker_rlimit_nofile 51200; #打开文件数

events
{
    use epoll;  #连接模式是epoll
    worker_connections 6000; #单进程链接数6000
}

http
{
    include mime.types; #文件扩展名与文件类型映射表
    default_type application/octet-stream; #默认文件类型
    server_names_hash_bucket_size 3526; #服务器民资的hash表大小
    server_names_hash_max_size 4096; # 上传文件大小限制
    log_format combined_realip '$remote_addr $http_x_forwarded_for [$time_local]'
    '$host "$request_uri" $status'
    '"$http_referer" "$http_user_agent"'; #日志参数
    sendfile on; 开启高效文件传输模式,sendfile指令制定nginx是否调用sednfile函数来输出文件,对于普通应用设为on,如果用来进行下载等应用磁盘io重负载应用,可设为off,以平衡磁盘与网络i/o处理速度,降低系统的负载。注意:如果图片显示不正常吧这个改为off;
    tcp_nopush on; #防止网络阻塞
    tcp_nodelay on; #防止网络阻塞
    keepalive_timeout 30;  #长连接超时时间 单位秒 第一个参数指定了与client德keep-alive连接超时时间。服务区将>会在这个时间后关闭连接。可选第二个参数指定在响应头 keep-ative:timeout=time中德ti
me值。这个头能够让一些浏览器主动关闭连接。只羊服务器就不必去关闭连接了。
    client_header_timeout 3m; # 指定等到client发送一个请求头的超时时间,仅当再一次read中,没有收到请求头才算超时。如果超时时间内,client没有发送任何东西,nginx返回状态吗408
    client_body_timeout 3m; #该指令设置请求体的读超时时间,仅当再一次readstep中,没有得到请求体,就会超时
    send_timeout 3m; #http核心模块指令,指令指定了发送给客户端应答后的超时时间,timeout是指没有进入完整的established状态。只完成了两次握手,如果超过这个时间客户端没有相应则关闭nginx连接
    connection_pool_size 256; #为每个连接分配的内存池,内存吃小玉额定内存块,如果一个块大于内存池或者大于分页大小。那么他将被分配到内存池之外。如果位于内存池中较小的分配量没有足够的内存。那么将分配一个相同内存池大小的新块。
    client_header_buffer_size 1k; #指定客户端请求头部的缓冲区大小
    large_client_header_buffers 8 4k; #设置用于读取客户及请求头文件的最大数量和大小,一个请求线不能超过一个缓冲区的大小或414(请求uri太大)错误返回客户端。请求头字段不能超过一个缓冲区大小。范围客户端的400错误。缓冲去进分配需求。默认情况下,缓冲区的大小为8k字节。如果一个链接请求处理结束后转变为保持状态。这些缓冲区被释放。
    request_pool_size 4k; #为每个请求分配的内存池,内存池用于小配额内存块,如果一个块大于内存池或者大于分页大小,那么它将被分配到内存池之外,如果位于内存池中较小的分配量没有足够的内存,那么将分配一个相同内存池大小的新块,这个指令仅有相当有限的效果
    output_buffers 4 32k;
    postpone_output 1460;
    client_max_body_size 10m; #指令指定允许客户端连接的最大请求实体大小,它出现在请求头部的Content-Length字段。如果请求大于指定的值,客户端将收到一个”Request Entity Too Large” (413)错误。
记住,浏览器并不知道怎样显示这个错误
    client_body_buffer_size 256k; #这个指令可以指定连接请求实体的缓冲区大小。
#如果连接请求超过缓存区指定的值,那么这些请求实体的整体或部分将尝试写入一个临时文件。
#默认值为两个内存分页大小值,根据平台的不同,可能是8k或16k。
#当请求头中的Content-Length字段小于指定的buffer size,那么Nginx将使用较小的一个,所以nginx并不总是为每一个请求分配这个buffer size大小的buffer。
    client_body_temp_path /usr/local/nginx/client_body_temp; #指令指定连接请求实体试图写入的临时文件路径。
    proxy_temp_path /usr/local/nginx/proxy_temp; #配置proxy_cache模块定义了从代理服务器接受到的数据存储临时文件的目录。到三级子目录层次结构可以用在下面的指定目录
    fastcgi_temp_path /usr/local/nginx/fastcgi_temp; #定义了同上只不过是fastcgi
    fastcgi_intercept_errors on; #定义是否传递4xx和5xx错误信息到客户端,或者允许ninx使用error_page处理错误
    tcp_nodelay on; #
#一下是压缩设置
    gzip on;
    gzip_min_length 1k;
    gzip_buffers 4 8k;
    gzip_comp_level 5;
    gzip_http_version 1.1;
    gzip_types text/plain application/x-javascript text/css text/htm application/xml;
    include vhosts/*.conf;
        }

虚拟主机配置文件在conf/vhosts下
默认虚拟主机

server
{
    listen 80 default_server;
    server_name localhost;
    index index.html index.htm index.php;
    root /tmp/123;
    deny all;


}

其他虚拟主机

server
{
    listen 80;
    server_name tyzz.com;
    index index.html index.htm index.php;
    root /data/www;

    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME /data/www$fastcgi_script_name;
    }

}

启动Nginx

[root@VM_168_83_centos vhosts]# /usr/local/nginx/sbin/nginx -t #检查语法
[root@VM_168_83_centos vhosts]# /usr/local/nginx/sbin/nginx #启动
[root@VM_168_83_centos vhosts]# /usr/local/nginx/sbin/nginx -s reload  平滑重启
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值