nginx.conf

The default port has been set in /usr/local/etc/nginx/nginx.conf to 8080 so that
nginx can run without sudo.

ff:~ fengfeng$ nginx -v
nginx version: nginx/1.10.0
ff:~ fengfeng$ nginx -t
nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok
nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful

nginx 运行的用户和组

  1 
  2 #user  nobody;

nginx 进程数 可以设置为CPU的总核心数

  3 worker_processes  1;

全局错误日志类型 debug info notice warn error crit

  4 
  5 #error_log  logs/error.log;
  6 #error_log  logs/error.log  notice;
  7 #error_log  logs/error.log  info;

进程文件

  8 
  9 #pid        logs/nginx.pid;
 10 

连接数上限

 11 
 12 events {
        # 单个进程最大连接数(最大连接数 = 连接数 * 进程数)
 13     worker_connections  1024;
 14 }
 15 

http服务器

 16 
 17 http {
        # 文件扩展名与文件类型映射表 用来引用其他的配置文件 可以按照需求将不同的配置写到不同的文件里面
 18     include       mime.types;
        # 默认文件类型
 19     default_type  application/octet-stream;
 20 
        # 日志格式设定 格式名字设为 main
 21     #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
 22     #                  '$status $body_bytes_sent "$http_referer" '
 23     #                  '"$http_user_agent" "$http_x_forwarded_for"';
 24 
        # access日志文件的路径 采用上面定义的 main 格式记录
 25     #access_log  logs/access.log  main;
 26 
        # 开启高效文件传输模式 sendfile指令 指定 nginx 是否调用 sendfile函数 来输出文件
        # 对于普通应用设为 on
        # 如果用来进行下载等应用磁盘IO重负载应用 可设置为off 以平衡磁盘与网络I/O处理速度 降低系统的负载
        # 注意:如果图片显示不正常把这个改成off。
 27     sendfile        on;
        # 防止网络阻塞
 28     #tcp_nopush     on;
 29 
       # 长连接超时时间,单位是秒
 30     #keepalive_timeout  0;
 31     keepalive_timeout  65;
 32 
        # 开启gzip压缩输出
 33     #gzip  on;
 34 
        # 虚拟主机的配置
 35     server {
            # 监听端口
 36         listen       8080;
            # 域名可以有多个 用空格隔开
 37         server_name  localhost;
 38 
            # 默认编码
 39         #charset koi8-r;
 40 
            # 定义本虚拟主机的访问日志
 41         #access_log  logs/host.access.log  main;
 42 
            # 
 43         location / {
 44             root   html;
 45             index  index.html index.htm;
 46         }
 47 
 48         #error_page  404              /404.html;
 49 
 50         # redirect server error pages to the static page /50x.html
 51         #
 52         error_page   500 502 503 504  /50x.html;
 53         location = /50x.html {
 54             root   html;
 55         }
 56 
 57         # proxy the PHP scripts to Apache listening on 127.0.0.1:80
 58         #
 59         #location ~ \.php$ {
 60         #    proxy_pass   http://127.0.0.1;
 61         #}
 62 
 63         # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
 64         #
 65         #location ~ \.php$ {
 66         #    root           html;
 67         #    fastcgi_pass   127.0.0.1:9000;
 68         #    fastcgi_index  index.php;
 69         #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
 70         #    include        fastcgi_params;
 71         #}
 72 
 73         # deny access to .htaccess files, if Apache's document root
 74         # concurs with nginx's one
 75         #
 76         #location ~ /\.ht {
 77         #    deny  all;
 78         #}
 79     }
 80 
 81 
 82     # another virtual host using mix of IP-, name-, and port-based configuration
 83     #
 84     #server {
 85     #    listen       8000;
 86     #    listen       somename:8080;
 87     #    server_name  somename  alias  another.alias;
 88 
 89     #    location / {
 90     #        root   html;
 91     #        index  index.html index.htm;
 92     #    }
 93     #}
 94 
 95 
 96     # HTTPS server
 97     #
 98     #server {
 99     #    listen       443 ssl;
100     #    server_name  localhost;
101 
102     #    ssl_certificate      cert.pem;
103     #    ssl_certificate_key  cert.key;
104 
105     #    ssl_session_cache    shared:SSL:1m;
106     #    ssl_session_timeout  5m;
107 
108     #    ssl_ciphers  HIGH:!aNULL:!MD5;
109     #    ssl_prefer_server_ciphers  on;
110 
111     #    location / {
112     #        root   html;
113     #        index  index.html index.htm;
114     #    }
115     #}
        # include指令:配置文件的引入,支持相对路径
116     include servers/*;
117 }

  • nginx.conf 有三部分组成:全局块 events块 http块,http块 中又包含多个子层级块
  • 在同一配置块中嵌套的配置块 各个之间不存在次序关系

全局块

主要设置一些影响 Nginx服务器 整体运行的配置指令,指令作用域为Nginx服务器全局
通常包括:

  • 配置运行Nginx服务器的用户(组)
  • 允许生成的worker process数
  • Nginx进程PID存放路径
  • 日志的存放路径和类型
  • 配置文件引入

events块

主要配置影响Nginx服务器与用户的网络连接
这部分指令对Nginx服务器性能影响较大,根据实际情况灵活调整
常用到的配置:

  • 是否开启对多worker process下的网络连接进行序列化
  • 是否允许同时接收多个网络连接
  • 选取哪种事件驱动模型处理连接请求
  • 每个worker process可以同时支持的最大连接数

http块

Nginx服务器 配置中的重要部分
代理、缓存和日志定义等 绝大多数的功能 和 第三方模块的配置 都可以放在这个模块中
包含 http全局块server块

http全局块

  • 文件引入
  • MIME-Type定义
  • 日志自定义
  • 是否使用sendfile传输文件
  • 连接超时时间
  • 单连接请求数上限

server块虚拟主机 相关

虚拟主机虚拟服务器,该技术为了节省互联网服务器硬件成本而出现,主要应用于HTTP、FTP及EMAIL等多项服务

将一台服务器的某项或者全部服务器内容逻辑划分为多个服务单元,对外表现为多个服务器,从而充分利用服务器硬件资源

从用户角度看,一台虚拟主机和一台独立的硬件主机是完全一样的

使用 Nginx服务器 提供web服务时,利用虚拟主机的技术就可以避免为每一个要运行的网站提供单独的Nginx服务器,也无需为每个网站对应运行一组Nginx进程。虚拟主机技术使得Nginx服务器可以在同一台服务器上只运行一组Nginx进程,就可以运行多个网站

一个http块可以包含多个server块,每个server块相当于一台虚拟主机。

server块 包含 server全局块location块

server全局块常见的两个配置:

  • 本虚拟主机的监听配置
  • 本虚拟主机的名称和IP配置

location块
一个server块可以包含多个location块
作用:基于Nginx服务器接收到的请求字符串,对除虚拟主机名称之外的字符串进行匹配,对特定的请求进行处理

  • 地址定向
  • 数据缓存
  • 应答控制
  • 多数第三方模块的配置

你可能感兴趣的:(nginx.conf)