一、最小配置文件:
简化版的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的核心配置包括全局配置指令和服务器配置块内的指令。下面是一些常用的核心配置指令的介绍:
- 全局配置指令:
user
:指定Nginx进程运行的用户和用户组。worker_processes
:指定工作进程的数量,通常设置为CPU核心数。error_log
:指定错误日志文件的路径。pid
:指定Nginx主进程的PID文件路径。
- 事件模块配置指令:
worker_connections
:指定每个工作进程可处理的最大连接数。multi_accept
:设置是否允许一个工作进程同时接受多个新连接。
- HTTP模块配置指令:
include
:引入其他配置文件。default_type
:设置默认的MIME类型。keepalive_timeout
:设置客户端和服务器之间的keep-alive连接超时时间。server_tokens
:控制Nginx在响应中显示服务器版本信息的级别。
- 服务器块配置指令:
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.com
和example2.com
,它们都使用80端口监听请求。
对于每个虚拟主机配置块,你需要至少指定以下内容:
listen
:指定虚拟主机监听的端口号。server_name
:指定虚拟主机的域名或服务器名称。root
:指定虚拟主机的根目录,即网站文件存放的位置。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
- 可以写多个,用空格分开
- 使用通配符(*)
- 使用正则表达式(https://blog.csdn.net/yangyelin/article/details/112976539)
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;
}
}
}
先赞后看,养成习惯!!!^ _ ^ ❤️ ❤️ ❤️
码字不易,大家的支持就是我的坚持下去的动力。点赞后不要忘了关注我哦!