04、Nginx基础配置

一、最小配置文件:
简化版的nginx.conf

Nginx的基础配置主要包括全局配置和服务器配置。下面是一个简单的示例,展示了Nginx的基础配置结构:

#全局配置
user nginx;                                       #Nginx进程运行的用户
worker_processes  1;                              #启动的worker进程数(默认为1,表示开启一个业务进程)
worker_processes auto;                            #工作进程的数量,通常设置为CPU核心数
#error_log  logs/error.log;                       #错误日志文件路径

#事件驱动模块配置
events {
    worker_connections  1024;                     #每个worker进程的连接数(每个工作进程可处理的最大连接数)
}

#HTTP模块配置
http {
    include       mime.types;                     #1、包含常见的MIME类型定义
                                                  #2、include是引入关键字,这里引入了mime.types这个配置文件(同在conf目录下,mime.types是用来定义,请求返回的content-type)
    default_type  application/octet-stream;       #默认的MIME类型,mime.types未定义的,使用默认格式application/octet-stream

    sendfile        on;                           #详情,见下文
    keepalive_timeout  65;                        #长链接超时时间
	
    #服务器配置,一个nginx可以启用多个server(虚拟服务器)
    server {
        listen       80;                          #监听的端口号80
        server_name  localhost;                   #服务器名称(接收的域名、主机名)

        location / { 
            root   html;                          #网站根目录(根目录指向html目录)
            index  index.html index.htm;          #默认首页文件(域名/index 指向 index.html index.htm文件)
        }

        error_page   500 502 503 504  /50x.html;  #服务器错误码为500 502 503 504,转到"域名/50x.html"
        location = /50x.html {                    #指定到html文件夹下找/50x.htm
            root   html;
        }

    }
}

这是一个简单的Nginx配置示例,包含了全局配置和一个简单的HTTP服务器配置。下面是配置的解释:

  • 全局配置部分(位于http块之外)包含了全局的设置,例如运行Nginx进程的用户、工作进程数量和错误日志路径。
  • events块用于配置事件模块,指定工作进程的最大连接数。
  • http块是Nginx配置的主要部分,用于配置HTTP模块。其中的include mime.types;语句用于引入常见的MIME类型定义,default_type指令用于设置默认的MIME类型。
  • http块内,可以定义一个或多个server块,每个server块表示一个虚拟主机(或服务器)的配置。在示例中,我们定义了一个监听80端口的服务器,server_name指令用于指定服务器的名称。
  • location块用于定义请求的处理位置。在示例中,我们使用了默认的/位置,并指定了网站根目录和默认的首页文件。
  • 打开sendfile,用户请求的数据不用再加载到nginx的内存中,而是直接发送

需要根据实际需求和具体情况进行适当的配置。你可以根据自己的需要添加更多的server块、修改端口号、配置SSL等。在修改配置后,需要重启Nginx使其生效。

在这里插入图片描述

每次修改配置文件,一定要重载才能生效
systemctl reload nginx
二、核心配置:

Nginx的核心配置包括全局配置指令和服务器配置块内的指令。下面是一些常用的核心配置指令的介绍:

  1. 全局配置指令
    • user:指定Nginx进程运行的用户和用户组。
    • worker_processes:指定工作进程的数量,通常设置为CPU核心数。
    • error_log:指定错误日志文件的路径。
    • pid:指定Nginx主进程的PID文件路径。
  2. 事件模块配置指令
    • worker_connections:指定每个工作进程可处理的最大连接数。
    • multi_accept:设置是否允许一个工作进程同时接受多个新连接。
  3. HTTP模块配置指令
    • include:引入其他配置文件。
    • default_type:设置默认的MIME类型。
    • keepalive_timeout:设置客户端和服务器之间的keep-alive连接超时时间。
    • server_tokens:控制Nginx在响应中显示服务器版本信息的级别。
  4. 服务器块配置指令
    • listen:指定服务器监听的端口号和可选的IP地址。
    • server_name:指定服务器的名称或域名。
    • root:指定网站根目录。
    • index:指定默认的索引文件。
    • access_log:指定访问日志文件路径。
    • error_page:指定错误页面的处理方式。
    • location:用于匹配请求的位置,并定义相应的处理规则。

这些是一些常见的核心配置指令,用于配置Nginx的全局设置、事件模块、HTTP模块以及服务器块。根据实际需求,你可以根据文档中提供的更多指令和选项进行定制化配置。

在修改Nginx的核心配置之后,需要重新加载或重启Nginx以使配置生效。可以使用nginx -t命令来检查配置文件的语法是否正确,使用nginx -s reload命令重新加载配置文件,或使用nginx -s stop命令停止Nginx进程。

三:虚拟主机配置:

Nginx使用虚拟主机配置来支持多个域名或多个网站在同一台服务器上共享端口。下面是一个简单的示例,展示了如何配置Nginx的虚拟主机:

http {
    # 虚拟主机1
    server {
        listen 80;
        server_name example.com;
        root /var/www/example.com;
        index index.html;

        location / {
            # 配置虚拟主机1的处理规则
        }
    }

    # 虚拟主机2
    server {
        listen 80;
        server_name example2.com;
        root /var/www/example2.com;
        index index.html;

        location / {
            # 配置虚拟主机2的处理规则
        }
    }
}

在上面的示例中,我们定义了两个虚拟主机,example.comexample2.com,它们都使用80端口监听请求。

对于每个虚拟主机配置块,你需要至少指定以下内容:

  1. listen:指定虚拟主机监听的端口号。
  2. server_name:指定虚拟主机的域名或服务器名称。
  3. root:指定虚拟主机的根目录,即网站文件存放的位置。
  4. index:指定默认的索引文件,当访问根目录时将自动寻找并返回该文件。

此外,你还可以在location块中定义更详细的请求处理规则,例如反向代理、重定向、缓存等。

需要注意的是,在配置虚拟主机时,确保每个虚拟主机的server_name唯一且与实际域名匹配。另外,根据你的实际需求和服务器环境,可能需要进行其他配置调整,例如SSL证书的配置、HTTP/HTTPS的配置等。

完成配置后,重新加载或重启Nginx使其生效。之后,Nginx将根据请求的域名将流量分发到相应的虚拟主机配置中。

四、Nginx配置使用场景:
1、不同二级域名,映射到不同静态网页

可以写多个server字段,从前向后匹配,先匹配到哪个就用哪个

用户访问pro.hedaodao.ltd,就会走到第一个server配置;test.hedaodao.ltd走到第二个配置

 http {
 		#....其他属性
 		server {
        listen       80;
        server_name  pro.hedaodao.ltd;

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

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
		}

 		server {
        listen       80;
        server_name  test.hedaodao.ltd;

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

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
		}
}
2、不同域名,映射到同一静态页面

server_name

http{ 		
 		server {
        listen       80;
        server_name  *.hedaodao.ltd  ~^[0-9]+\.hedaodao\.ltd$; # "\."是转译"."

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

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
		}
}

先赞后看,养成习惯!!!^ _ ^ ❤️ ❤️ ❤️
码字不易,大家的支持就是我的坚持下去的动力。点赞后不要忘了关注我哦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值