欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

NGINX基本模块与配置

程序员文章站 2022-03-25 14:31:16
...
一、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基本模块与配置,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。