nginx配置文件

(文章整理的内容为网络搜集)
nginx配置文件语法:
location [=|~|~*|^~] /uri/ { … }

符号 解释 范例
= 开头表示精确匹配 location = /login {…}
^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即可nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格) location ^~ /static/ {…}
~ 开头表示区分大小写的正则匹配 location ~ .(gif
~* 开头表示不区分大小写的正则匹配 location ~* .png$ {…}
!~ 区分大小写不匹配 的正则 location !~ .xhtml$ {…}
!~* 不区分大小写不匹配 的正则 location !~* .xhtml$ {…}
/ 通用匹配,任何请求都会匹配到 location / {…}

匹配优先顺序:

首先匹配 =,其次匹配^~, 其次是按文件中顺序的正则匹配,最后是交给 / 通用匹配。当有匹配成功时候,停止匹配,按当前匹配规则处理请求。

nginx的每条配置须以 分号(;) 结束

nginx-1.9.14默认配置文件注释:

#定义nginx运行的用户和用户组 user root root
#user  nobody;

#nginx进程数,建议设置为等于CPU总核心数
worker_processes  1;

#全局错误日志定义类型,[ debug | info | notice | warn | error | crit ]
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#存放nginx进程pid的文件
#pid        logs/nginx.pid;

#nginx事件模块
events {
#use [ kqueue | rtsig | epoll | /dev/poll | select | poll ]epoll模型
是Linux 2.6以上版本内核中的高性能网络I/O模型 如:use epoll

#单个进程最大连接数(最大连接数=连接数*进程数)
    worker_connections  1024;
}


http {
#文件类型映射表
    include       mime.types;
#默认文件类型    
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

#开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件
,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常把这个改成off
    sendfile        on;

##防止网络阻塞
    #tcp_nopush     on;

#长连接超时时间,单位是秒
    #keepalive_timeout  0;
    keepalive_timeout  65;

#gzip压缩设置
    #gzip  on;

#虚拟主机配置,可配置多个server
    server {
        listen       80; #监听端口80
        server_name  localhost; #访问主机是所用的域名,可以有多个,用空格隔开

        #charset koi8-r; #字符编码设置

#本虚拟主机的访问日志
        #access_log  logs/host.access.log  main;
#参看上面的location语法
        location / {
            root   html;
            index  index.html index.htm;
        }

#出错类型及对应页面地址
        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

#对于.php后缀的请求启用反向代理127.0.0.1:80
        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }


    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

#虚拟主机2配置
    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

}

一些可用的全局变量

$args
$content_length
$content_type
$document_root
$document_uri
$host
$http_user_agent
$http_cookie
$limit_rate
$request_body_file
$request_method
$remote_addr
$remote_port
$remote_user
$request_filename
$request_uri
$query_string
$scheme
$server_protocol
$server_addr
$server_name
$server_port
$uri

你可能感兴趣的:(Linux,nginx)