首页 > 代码库 > NGINX基本模块与配置

NGINX基本模块与配置

一、NGINX内置的基本模块

1、NGINX内核模块
2、EVENTS模块
3、HTTP核心模块

二、NGINX基本配置文件

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {
    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        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        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;
        }

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

三、NGINX内核模块

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

该模块用于控制NGINX服务器的基本功能

三、EVENT模块

events {
    worker_connections  1024;
}

该模块主要用于控制NGINX如何处理连接,该模块的一些指令参数会对应用程序的性能产生重要影响,因此设置时需要慎重

四、HTTP核心模块

http {
   ...
}

该模块实现了NGINX服务器对HTTP服务的处理功能,这可能是普通开发人员打交道最多的一个模块
1、基本指令
http {
    server {
        ...
    }
}

server:用于配置虚拟主机,一个http代码段中,可以包含多个server指令,配置多个虚拟主机

http {
    upstream mysvr {
        server 192.168.8.1x:80 weight=5;
        server 192.168.8.2x:80  weight=1;
        server 192.168.8.3x:80  weight=6;
    }
    
    server {
        ...
        location / {
            proxy_pass http://mysvr
        }
        ...   
    }
}

upstream:NGINX负载均衡


2、NGINX如何选择SERVER虚拟主机

NGINX将进入的HTTP请求头与NGINX配置文件中各个server区段比较,并且选择第一个被匹配的server区段

匹配过程按如下流程处理:

1、全域名,静态域名匹配

2、开始部分使用通配符的域名,如:*.xxx.com

3、结尾部分使用通配符的域名,如:www.xxx.*

4、带有正则表达式的域名

如果还没有找到匹配的域名,继续按下面的顺序在配置文件中选择一个server:

1、匹配listen指令被标记为[default|default_server]的区段

2、匹配listen指令(或隐含有listen 80)的第一个server区段


NGINX基本模块与配置