nginx配置文件结构

核心配置文件的结构

nginx.conf主要由events、http、server、location、upstream等块配置项和一些行配置项组成。

 nginx配置文件结构_第1张图片

##代码块中的events、http、server、location、upstream等都是块配置项##
##全流程:比如我们访问10.10.10.999:8080/myproject/ 这个地址,10.10.10.999:8080就是我们的nginx主机地址以及server中设置的端口号。然后myproject根据location中配置的规则进行匹配,匹配到了就用那条location里proxypass的值去找符合的upstream(upstream设置了负载均衡规则,包含哪些被代里的主机地址等)

#规定哪些用户使用,nobody的话就是所有人
#user  nobody;
 

##Nginx worker进程个数:其数量直接影响性能。
#每个worker进程都是单线程的进程,他们会调用各个模块以实现多种多样的功能。如果这些模块不会出现阻塞式的调用,那么,有多少CPU内核就应该配置多少个进程,反之,有可能出现阻塞式调用,那么,需要配置稍多一些的worker进程。
worker_processes  1;


##error日志的设置,日志默认位置是我们在linux上安装nginx时配置的,也可以在下面修改。
#语法: error_log /path/file level;
#默认: error_log / log/error.log error;
#当path/file 的值为 /dev/null时,这样就不会输出任何日志了,这也是关闭error日志的唯一手段;
#leve的取值范围是debug、info、notice、warn、error、crit、alert、emerg从左至右级别依次增大。
#当level的级别为error时,error、crit、alert、emerg级别的日志就都会输出。大于等于该级别会输出,小于该级别的不会输出。
#如果设定的日志级别是debug,则会输出所有的日志,这一数据量会很大,需要预先确保/path/file所在的磁盘有足够的磁盘空间。级别设定到debug,必须在configure时加入 --with-debug配置项。
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

 
events {
	worker_connections  1024;
}
 

http {
    #引入mime.types文件的设置,这样引入的方式主要是增加可读性
    include       mime.types;
    default_type  application/octet-stream;
    
    sendfile        on;

    #设置一个tcp连接最多保持多长时间存活
    keepalive_timeout  65;

    server {
        #这里是配置nginx首页以及出错跳转页面的,我们这里配置的是localhost:80端口,也可以根据需要定义
        #只要有请求访问了80端口,此server块就处理请求.server_name是这个server块代表的虚拟主机的名字
        listen       80;
        server_name  localhost;

        #access.log 记录所有用户请求的一种日志
        #access_log  logs/host.access.log  main;
        
        

        #location主要作用是根据请求地址路径的匹配,匹配成功进行特定的处理
        #这块的主要作用是基于 Nginx 服务器接收到的请求字符串(例如 server_name/uri-string), 
对虚拟主机名称(也可以是 IP 别名)之外的字符串(例如 前面的 /uri-string)进行匹配,对特定的请求进行处理。地址定向、数据缓存和应答控制等功能,还有许多第三方模块的配置也在这里进行。

        #跳转的nginx首页,首页文件在根目录的html文件夹下的index.html
        location / {
            root   html;
            index  index.html;
        }
		
        #出错页面,出错的话就会跳转。在根目录的html文件夹下的/50x.html
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }
    #负载均衡的策略在upstream块这里配置,如下是轮询的一个范例
    upstream bakend {
        server 192.168.1.10 weight=1;
        server 192.168.1.11 weight=2;
    }

    #引入其他的conf
    include       imooc.conf;
}
#imooc.conf

server {
        listen       81;
        server_name  localhost;

        //跳转的nginx首页,首页文件在根目录的html文件夹下的index.html
        location / {
            root   html;
            index  imooc123.html;
        }
    }

nginx进程模型

包含master进程(用来监听命令和请求)和worker进程(用来处理,是异步非阻塞模式:如果当前client阻塞,就会继续处理其他client的请求),可以通过配置开启多个worker,每个 worker可以处理几十万甚至几百万的并发(根据机器性能),不过默认每个worker的连接数是1024。

nginx配置文件结构_第2张图片

nginx配置文件结构_第3张图片

nginx配置文件结构_第4张图片

修改nginx.conf后重启

  • 修改后去sbin目录,执行 nginx -t  检查配置是否正确;
  • 没问题的话执行 ./nginx -s reload
  • 如果报错,先执行 ./nginx -c /home/nginx/conf/nginx.conf ,再执行一次./nginx -s reload

你可能感兴趣的:(后端中间件,java,后端)