`
buzhucele
  • 浏览: 331963 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

nginx常用配置项详解

阅读更多
#运行用户
user  nobody nobody;

#启动进程
worker_processes  2;

#全局错误日志及PID文件
error_log  logs/error.log notice;
pid        logs/nginx.pid;

#工作模式及连接数上限
events {
        use epoll;
        worker_connections      1024;
}

#设定http服务器,利用它的反向代理功能提供负载均衡支持
http {
        #设定mime类型
        include       conf/mime.types;
        default_type  application/octet-stream;

        #设定日志格式
        log_format main         '$remote_addr - $remote_user [$time_local] '
                                                '"$request" $status $bytes_sent '
                                                '"$http_referer" "$http_user_agent" '
                                                '"$gzip_ratio"';

        log_format download '$remote_addr - $remote_user [$time_local] '
                                                '"$request" $status $bytes_sent '
                                                '"$http_referer" "$http_user_agent" '
                                                '"$http_range" "$sent_http_content_range"';

        #设定请求缓冲
        client_header_buffer_size    1k;
        large_client_header_buffers  4 4k;

        #开启gzip模块
        gzip on;
        gzip_min_length  1100;
        gzip_buffers     4 8k;
        gzip_types       text/plain;

        output_buffers   1 32k;
        postpone_output  1460;

        #设定access log
        access_log  logs/access.log  main;

        client_header_timeout  3m;
        client_body_timeout    3m;
        send_timeout           3m;

        sendfile                on;
        tcp_nopush              on;
        tcp_nodelay             on;

        keepalive_timeout  65;

        #设定负载均衡的服务器列表
        upstream mysvr {
                #weigth参数表示权值,权值越高被分配到的几率越大
                #本机上的Squid开启3128端口
                server 192.168.8.1:3128 weight=5;
                server 192.168.8.2:80   weight=1;
                server 192.168.8.3:80   weight=6;
        }

        #设定虚拟主机
        server {
                listen          80;
                server_name     192.168.8.1 www.yejr.com;

                charset gb2312;

                #设定本虚拟主机的访问日志
                access_log  logs/www.yejr.com.access.log  main;

                #如果访问 /img/*, /js/*, /css/* 资源,则直接取本地文件,不通过squid
                #如果这些文件较多,不推荐这种方式,因为通过squid的缓存效果更好
                location ~ ^/(img|js|css)/  {
                        root    /data3/Html;
                        expires 24h;
                }

                #对 "/" 启用负载均衡
                location / {
                        proxy_pass      http://mysvr;

                        proxy_redirect          off;
                        proxy_set_header        Host $host;
                        proxy_set_header        X-Real-IP $remote_addr;
                        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
                        client_max_body_size    10m;
                        client_body_buffer_size 128k;
                        proxy_connect_timeout   90;
                        proxy_send_timeout      90;
                        proxy_read_timeout      90;
                        proxy_buffer_size       4k;
                        proxy_buffers           4 32k;
                        proxy_busy_buffers_size 64k;
                        proxy_temp_file_write_size 64k;
                }

                #设定查看Nginx状态的地址
                location /NginxStatus {
                        stub_status             on;
                        access_log              on;
                        auth_basic              "NginxStatus";
                        auth_basic_user_file  conf/htpasswd;
                }
        }
}

运行以下命令检测配置文件是否无误:

  如果没有报错,那么就可以开始运行Nginx了,执行以下命令即可:
  备注:conf/htpasswd 文件的内容用 apache 提供的 htpasswd 工具来产生即可,内容大致如下:
  3.) 查看 Nginx 运行状态
  输入地址 http://192.168.8.1/NginxStatus/,输入验证帐号密码,即可看到类似如下内容:
Active connections: 291
server accepts handled requests
16630948 16630948 31070465
Reading: 6 Writing: 179 Waiting: 106active connections -- 对后端发起的活动连接数
server accepts handled requests -- nginx 总共处理了 16630948 个连接, 成功创建 16630948 次握手 (证明中间没有失败的), 总共处理了 31070465 个请求 (平均每次握手处理了 1.8个数据请求)
reading -- nginx 读取到客户端的Header信息数
writing -- nginx 返回给客户端的Header信息数
waiting -- 开启 keep-alive 的情况下,这个值等于 active - (reading + writing),意思就是Nginx说已经处理完正在等候下一次请求指令的驻留连接

==================================================================================

在10.1.146.144的/usr/local/nginx/conf/目录下可获取一份nginx典型配置的样例nginx.conf.sample。
user  nobody nobody;//使用哪个用户启动nginx 前面是用户,后面是组
worker_processes  8; //工作进程个数,一般设为cpu个数。在作proxy时,因为采用的是非阻塞收发方式,所以设置过多没有意义。
timer_resolution  10ms;//日志中的时间精度
error_log  logs/error.log  info;//默认error.log的位置,如果host中未指定特定的error log则采用此log记录
pid logs/nginx.pid;//此文件记录master进程的进程号
events {
    worker_connections 20480;//每个进程最大连接数(最大连接=连接数x进程数)
     use epoll;   //多路复用处理机制可以是poll,epoll等
}
http {
     include       mime.types;  //文件扩展名与文件类型映射表
    
     default_type  application/octet-stream;   //默认文件类型
     log_format //指定日志格式
   client_header_timeout    1m;//等待用户发请求头的超时
   client_body_timeout      1m;// 等待用户发请求体的超时,如POST
    send_timeout         1m;// 往用户发送数据的超时
    client_header_buffer_size      8k;
     large_client_header_buffers   4 32k;//与请求头大小相关的字段,调大则允许更大的请求头,遇到cookie过长的情况,可将它调大。
      client_body_buffer_size 32k; //缓冲区代理缓冲用户端请求的最大字节数,可以理解为保存 到本地再传给用户
      gzip on;//开启gzip
      gzip_min_length 1100;// 设置允许压缩的页面最小字节数,页面字节数从header头中的Content-Length中进行获取。 默认值是0,不管页面多大都压缩。
      gzip_buffers//设置系统获取几个单位的缓存用于存储gzip的压缩结果数据流。例如 4 4k 代表以4k为单位,按照原始数据大小以4k为单位的4倍申请内存。 4 8k 代表以8k为单位,按照原始数据大小以8k为单位的4倍申请内存。如果没有设置,默认值是申请跟原始数据相同大小的内存空间去存储gzip压缩结果。
       gzip_types//匹配MIME类型进行压缩,(无论是否指定)”text/html”类型总是会被压缩的。
      gzip_comp_level 9;// gzip压缩比,1 压缩比最小处理速度最快,9 压缩比最大但处理最慢(传输快但比较消耗cpu)。
      keepalive_timeout  75;//长链接超时时间
分享到:
评论

相关推荐

    Nginx配置文件详解

    ### Nginx配置文件详解 #### 一、引言 Nginx是一款广泛使用的高性能Web服务器及反向代理服务器,以其高效稳定而著称。它不仅适用于简单的静态页面服务,还可以作为动态应用服务器的反向代理,实现负载均衡等功能。...

    nginx部署配置详解

    ### Nginx 部署配置...通过上述详细介绍,我们可以了解到`proxy_read_timeout`及其他相关参数在Nginx配置中的重要性及其具体应用方法。合理设置这些参数能够帮助我们在实际生产环境中更有效地管理和优化服务器性能。

    Nginx 配置文件 nginx.conf 详解

    Nginx 配置文件 nginx.conf 详解 Nginx 配置文件 nginx.conf 是 Nginx 服务器的核心配置文件,它控制着 Nginx 服务器的行为和性能。在这个配置文件中,我们可以设置服务器的用户和组、工作进程数、错误日志、进程...

    Nginx编译安装配置.pdf

    Nginx 是一个高性能的 Web 服务器、反向代理服务器、缓存服务器,通过本文档可以了解 Nginx 的安装、配置、编译过程,掌握 Nginx 的基本用法和配置项。 一、安装编译需要的软件依赖 在编译安装 Nginx 之前,需要...

    Linux中Nginx安装与配置详解

    本教程将详细阐述如何在Linux上安装和配置Nginx,以帮助你更好地理解和应用这个强大的Web服务器。 一、Nginx的安装 1. 更新系统包: 在开始安装前,首先要确保你的Linux系统已经更新到最新版本,以获取最新的安全...

    nginx配置详解

    本文将对 Nginx 配置文件中的各个配置项进行详细的解释和注释。 用户和工作进程 * `user nginx;`:指定 Nginx 进程的用户身份为 nginx。 * `worker_processes 8;`:指定 Nginx 工作进程的数量为 8 个,根据硬件...

    nginx的各项详细配置-超多注释

    Nginx配置项详解 - **server_name**: 指定服务器域名,可以是多个,支持通配符。 - **root**: 设置网站根目录,用于定位静态资源。 - **index**: 指定默认首页文件,如"index.html index.htm"。 - **listen**: ...

    Nginx 配置详解.docx

    Nginx 的核心配置文件位于 `conf/nginx.conf`,下面是一些基本配置项的例子: ```nginx #user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error...

    Nginx高性能Web服务器详解

    ### 二、Nginx配置文件结构 Nginx的主配置文件通常为`nginx.conf`,它包含了一系列的块级配置,如`http`、`server`和`location`。这些块可以嵌套,具有继承关系,允许灵活的配置结构。 1. `http`块:定义全局的...

    nginx nginx.conf配置

    全局块配置项包括运行Nginx的工作模式、用户组、工作进程数、日志文件路径、错误日志级别等。例如: ``` worker_processes auto; # 自动设定工作进程数量 error_log /var/log/nginx/error.log warn; # 错误日志...

    Nginx高性能Web服务器详解.pdf

    配置Nginx是一项重要的任务,书中会详细讲解如何通过配置文件来定制服务器的行为。这包括定义虚拟主机、设置HTTP、HTTPS、WebSocket协议,配置日志记录,以及调整性能参数等。通过理解配置语法和指令,用户可以优化...

    PHP7+Nginx的配置与安装教程详解

    例如,以下是一些关键配置项的解释: - `user www www;`:指定Nginx进程运行的用户和用户组。 - `worker_processes 1;`:设置工作进程的数量,这里设为1。 - `worker_rlimit_nofile 65535;`:设置最大文件描述符...

    window下nginx配置

    ### Window下Nginx配置详解 #### 一、前言 一直以来,许多开发者都认为Nginx只能在Linux环境下运行,实际上,在Windows系统中同样可以部署并高效运行Nginx。随着网站流量的增长,单台服务器可能无法满足需求,此时...

    nginx服务器配置.docx

    ### Nginx 服务器配置详解 #### Nginx 基础知识 Nginx 是一款高性能的HTTP和反向代理Web服务器,同时也提供了IMAP/POP3/SMTP服务。它以其稳定性、丰富的功能集、简单的配置方式和较低的资源消耗而闻名。Nginx 可...

    Nginx 使用教程、安装部署配置及配置文件详解.pdf

    #### 四、配置项详细解释 **server 块** - **listen**: 指定监听的端口或 IP 地址。 - **server_name**: 指定虚拟主机的域名。 - **root**: 指定网站根目录。 - **index**: 指定默认索引文件。 - **location**: ...

    nginx配置文件.zip

    在本例中,Nginx配置文件可能是为了在Docker容器内优化网络服务性能和资源利用率。 4. **配置文件详解**:Nginx的配置文件通常以`.conf`为扩展名,包含一系列指令和块。`http`、`server`和`location`是最基本的配置...

    nginx-vhost-conf.zip_nginx_nginx虚拟机配置

    本篇文章将深入探讨如何通过Nginx配置文件来设置虚拟主机,特别关注如何实现Nginx运行PHP文件。 ### 1. Nginx虚拟主机基础 虚拟主机是Nginx中的一项核心特性,它允许我们基于域名或者IP的不同端口,将不同的请求...

    nginx使用配置.pdf

    ### Nginx 使用配置详解 #### 一、Linux下的配置使用 **1.... 在 Linux 下配置 Nginx 的环境通常需要以下准备: ...以上就是 Nginx 在 Linux 和 Windows 下的基本配置流程和关键配置项的介绍。希望对你有所帮助!

    Nginx 中文域名配置详解及实现

    假设我们的Nginx配置文件位于/etc/nginx/nginx.conf或类似的位置,我们需要找到对应的`server`块,并进行如下编辑: ```nginx server { listen 80; server_name blog.linuxeye.com linuxeye.xn--fiqs8s; # 添加...

Global site tag (gtag.js) - Google Analytics