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

来源:互联网 发布:大学生程序员如何赚钱 编辑:程序博客网 时间:2024/05/21 14:32

编译安装 Nginx1.8

tar zxf nginx-1.8.0.tar.gzcd nginx-1.8.0/vim auto/cc/gcc     注释debug 可以减小安装后的大小vim src/core/nginx.h    隐藏nginx版本信息 #解决软件包依赖性yum install -y pcre-devleyum 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请求makemake install

Nginx 配置文件

vim /usr/local/lnmp/nginx/conf/nginx.confuser nobody nobody;    #使用访问人员worker_processes 2;    #cpu numbererror_log /usr/local/nginx/logs/nginx_error.log crit; #nginx 的日志模式为critpid /usr/local/nginx/logs/nginx.pid;  #pid 在那个dirworker_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中德time值。这个头能够让一些浏览器主动关闭连接。只羊服务器就不必去关闭连接了。    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  平滑重启
0 0
原创粉丝点击