nginx配置文件结构

简介: nginx配置文件结构

nginx Configuration File’s Structure

前言

本篇博客主要讲解nginx配置文件中的组成部分,以及各个部分的常用的简单指令和块指令,适合刚接触nginx的同学。通过本篇文章能够宏观上明确ngxin配置文件的主要组成部分和作用。

配置文件的结构

nginx由模块组成,这些模块由配置文件中指定的指令控制。

指令分为两种指令,一种是简单指令,一种是块指令。

简单指令由名称和参数组成,由空格分开由分号(;)结束。

如:listen 80;
块指令与简单指令具有相同的结构,不同的是他是由一组{}包围的附加指令。

如果块指令可以在{}内包含其他指令,则成为上下文。如events、http、server、location。


在配置文件中,位于上下文之外的指令被称为主上下文(main context)。

events和http都位于主上下文中,sever位于http中、location位于server中。

nginx 配置文件结构示例

##Nginx worker进程运行的用户及用户组,如果不指定group,则使用与user名称相同的组。
##语法:user user [group];
##Default:user nobody nobody;
user  root;
##当其中一个不确定时,将其设置为可用CPU核数将是一个好的开始(值" auto "将尝试自动检测它)。
##语法:worker_processesnumber|auto;
##Default:worker_processes 1;
worker_processes  1;
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
##pid文件(master进程ID的pid文件存放路径)的路径
#pid        logs/nginx.pid;
events {
##设置工作进程可以打开的最大并发连接数。
##这个数字包括所有连接(例如与代理服务器的连接),而不仅仅是与客户端的连接。
##另一个需要考虑的问题是,并发连接的实际数量不能超过当前打开文件的最大数量的限制,该限制可以通过##worker_rlimit_nofile进行更改。
##语法:worker_connections number;
##Default:worker_connections 512;
    worker_connections  1024;
}
http {
  ##嵌入其他配置文件 语法:include /path/file
    ##参数既可以是绝对路径也可以是相对路径(相对于Nginx的配置目录,即nginx.conf所在的目录)
    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;
    log_format info escape=json '{ "@timestamp": "$time_iso8601", '
      '"remote_addr": "$remote_addr",'
              '"costime": "$request_time",'
              '"realtime": "$upstream_response_time",'
              '"status": $status,'
              '"x_forwarded": "$http_x_forwarded_for",'
              '"referer": "$http_referer",'
              '"request": "$request",'
              '"upstr_addr": "$upstream_addr",'
              '"bytes":$body_bytes_sent,'
              '"dm":$request_body,'
             '"agent": "$http_user_agent" }';
    sendfile        on;
    #tcp_nopush     on;
    #keepalive_timeout  0;
    keepalive_timeout  65;
    #gzip  on;
    server {
     ##监听的端口号
        listen       80;
     ##主机名称:其后可以跟多个主机名称,开始处理一个HTTP请求时,nginx会取出header头中的Host,与每个server中的server_name进行匹配,以此决定到底由那一个server来处理这个请求。
        server_name localhost;
        #return 301 https://$server_name$request_uri;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
   ##location 语法: location [=|~|~*|^~] /uri/ { ... }
    ##注意:location时有顺序的,当一个请求有可能匹配多个location时,实际上这个请求会被第一个location处理。   
        location /arapp/ {
         autoindex on;
            root /home/admin/;
#                if (!-e $request_filename) {
#                        rewrite  ^(.*)$  /index.html?s=$1  last;
#                        break;
#                }
           index  index.html;
           proxy_set_header x-forwarded-for  $proxy_add_x_forwarded_for;
        }
        location / {
            autoindex on;
            root  /home/admin/arpro-front-test;
            if (!-e $request_filename) {
                rewrite  ^(.*)$  /index.html?s=$1  last;
                break;
               }
            index  index.html;
            proxy_set_header x-forwarded-for  $proxy_add_x_forwarded_for;
        }
        location /ar-plus-front-dev/ {
            autoindex on;
            root  /home/admin;
            index  index.html;
        }
        location /arpro-web/ {
            proxy_pass http://localhost;
            access_log logs/access-arpro-web.log info;
           #proxy_set_header x-forwarded-for  $proxy_add_x_forwarded_for;
        }

参考资料:

Nginx —— nginx服务的基本配置(nginx.conf文件的详解)

nginx官网

如果博主的文章对您有所帮助,可以评论、点赞、收藏,支持一下博主!!!

目录
相关文章
|
5月前
|
负载均衡 算法 应用服务中间件
面试题:Nginx有哪些负载均衡算法?Nginx位于七层网络结构中的哪一层?
字节跳动面试题:Nginx有哪些负载均衡算法?Nginx位于七层网络结构中的哪一层?
113 0
|
5月前
|
存储 Ubuntu 应用服务中间件
【Nginx】centos和Ubuntu操作系统下载Nginx配置文件并启动Nginx服务详解
【Nginx】centos和Ubuntu操作系统下载Nginx配置文件并启动Nginx服务详解
80 1
|
5月前
|
负载均衡 应用服务中间件 API
Nginx配置文件详解Nginx负载均衡Nginx静态配置Nginx反向代理
Nginx配置文件详解Nginx负载均衡Nginx静态配置Nginx反向代理
135 4
|
4月前
|
缓存 负载均衡 应用服务中间件
深入解析Nginx配置文件
Nginx是一个高性能HTTP服务器和反向代理,其配置文件`nginx.conf`包含全局、事件、HTTP、Server和Location块。全局块设置如用户和工作进程数,事件块设定连接数,HTTP块涉及MIME类型、日志和包含其他配置。Server块定义虚拟主机,Location块处理URI匹配。Nginx常用于反向代理和负载均衡,如`proxy_pass`指令转发请求至后端服务器组。理解这些配置有助于服务器优化和测试。
67 0
|
2月前
|
运维 应用服务中间件 网络安全
运维系列.Nginx配置文件结构功能总结
运维系列.Nginx配置文件结构功能总结
40 0
运维系列.Nginx配置文件结构功能总结
|
3月前
|
Ubuntu 应用服务中间件 Linux
Linux学习之Ubuntu 20中OpenResty的nginx目录里内容和配置文件
总的来说,OpenResty的Nginx配置文件是一个强大的工具,它允许你以非常灵活的方式定义你的Web服务的行为。
38 2
|
3月前
|
前端开发 应用服务中间件 nginx
网页设计,若依项目修改(It must be done)01----若依打包位置,nginx代理前端静态资源和后端接口,就是怎样设置转载,访问固定端口,让他访问其他资料的配置文件,访问/,给你那些
网页设计,若依项目修改(It must be done)01----若依打包位置,nginx代理前端静态资源和后端接口,就是怎样设置转载,访问固定端口,让他访问其他资料的配置文件,访问/,给你那些
|
3月前
|
应用服务中间件 nginx
如何通过Nginx配置将请求转发到conf.d目录下的各个配置文件
如何通过Nginx配置将请求转发到conf.d目录下的各个配置文件
325 2
|
4月前
|
前端开发 应用服务中间件 nginx
nginx前后端分离、多前端部署配置文件
nginx前后端分离、多前端部署配置文件
|
4月前
|
应用服务中间件 nginx
nginx更改配置文件后重启
nginx更改配置文件后重启
132 1