美文网首页
nginx.conf

nginx.conf

作者: 申申申申申 | 来源:发表于2017-12-22 13:10 被阅读3次

    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

          本文链接:https://www.haomeiwen.com/subject/rzbbwxtx.html