Nginx学习笔记02 —— 认识Nginx的配置文件
写在前面
在上一篇博客中,我们已经在Linux系统中成功地安装了Nginx,但是Nginx安装完成之后,发生了什么?或者说Nginx的相关配置文件在什么地方?我们如果想要根据实际需求修改Nginx配置,应该修改哪些文件?
带着这些疑问,我们开始本篇文章的分享,主要跟大家分享如何找到Nginx的配置文件以及一些基本的配置规则。
一、Nginx的配置文件在哪些地方
在Linux系统中成功安装Nginx之后,它并没有给我们什么安装信息提示,如果想要查看Nginx的相关文件,可以使用Linux一个rpm包管理工具命令,比如我们想要查看Nginx的相关文件,可以执行以下命令:
rpm -ql nginx
在上述命令中,我们使用rpm包管理工具进行查找,其中 -q 表示查询, -l 表示返回查询列表。这里查询Nginx,返回的列表如下:
可以看到,返回的相关内容还是非常多的,这里我们先关注红框中的一些文件及文件夹,这是我们在配置Nginx过程中,经常修改的内容。
我们切换到 /etc/nginx 文件夹下,在这里有Nginx的主配置文件 /etc/nginx/nginx.conf ,里面的配置代码没有很多,我在这里全部列出来,并对每一行做一个注释。对里面的每一项,我们没有必要全部掌握,只需要简单了解即可。
user nginx; #运行用户,默认即是nginx,可以不进行设置
worker_processes 1; #Nginx进程,一般设置为和CPU核数一样
error_log /var/log/nginx/error.log warn; #错误日志存放目录
pid /var/run/nginx.pid; #进程pid存放位置
events {
worker_connections 1024; # 单个后台进程的最大并发数
}
http {
include /etc/nginx/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 /var/log/nginx/access.log main; #nginx访问日志存放位置
sendfile on; #开启高效传输模式
#tcp_nopush on; #减少网络报文段的数量
keepalive_timeout 65; #保持连接的时间,也叫超时时间
#gzip on; #开启gzip压缩
include /etc/nginx/conf.d/*.conf; #包含的子配置项位置和文件
}
作为一个Nginx小白,这个文件中的配置我们几乎不需要做任何修改,大致了解每一项配置的功能就可以了。不过我们要注意一下文件的最后一行,这一行通过include语法,引入了Nginx的子配置项和配置文件。
二、Nginx的基本配置文件
这些子配置项是我们要重点关注的,也是我们后面要具体修改的文件。在默认状态下,Nginx把这些子配置项全部放在了 /etc/nginx/conf.d/ 文件夹中,我们最好遵守这一默认规则,后期如果要增加新的配置文件,也要放在该文件夹下。
现在我们切换到 /etc/nginx/conf.d/ 文件夹中,可以看到这里目前只有一个配置文件 default.conf ,这里我把该文件中的代码列出来,并作出解释:
server {
listen 80; # 配置监听端口
server_name localhost; # 配置域名
location / {
root /usr/share/nginx/html; # 服务默认启动目录,可以理解为网站代码存放的目录
index index.html index.htm; # 默认访问的文件
}
# 配置404 403 错误状态码,一旦出现这些状态码,页面跳转到 /404x.html
# location 配置/404x.html 文件所在的文件夹
error_page 404 403 /404.html;
location = /404.html {
root /usr/share/nginx/html;
}
# 配置5** 错误状态码,一旦出现这些状态码,页面跳转到 /50x.html
# location 配置/50x.html 文件所在的文件夹
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
在这个默认的配置文件中,我们可以指定Nginx服务监听的端口,一般情况下,都是监听80端口。然后最重要的就是location选项,即:
location / {
root /usr/share/nginx/html; # 服务默认启动目录,可以理解为网站代码存放的目录
index index.html index.htm; # 默认访问的文件
}
这是Nginx启动服务的根目录配合选项,如果你是想要搭建一个网站,那么根据上面的配置,你网站的代码都是放在 /usr/share/nginx/html 目录下,当你打开你的网页的时候,会默认查找根目录下的 index.html 文件,如果找不到这个文件,那就默认查找 index.htm 这个文件。如果这里指定的文件都没有找到,那么Nginx会报 403 错误。
报了403错误之后,你的网站会显示什么呢?这个时候我们要注意到Nginx的error_page配置选项:
# 配置404 403 错误状态码,一旦出现这些状态码,页面跳转到 /404x.html
# location 配置/404x.html 文件所在的文件夹
error_page 404 403 /404.html;
location = /404.html {
root /usr/share/nginx/html;
}
如果指定的文件找不到,Nginx报403错误的时候,根据上面的配置,网站就会到 /usr/share/nginx/html 文件夹下,查找404.html文件,将该文件的内容显示在网页上。
需要我们注意的是,配置错误页面的时候,我们不仅可以指定网站内部的一些页面,还可以指定其他的一些网站,比如:我们规定,当Nginx服务报404错误的时候,跳转到 www.baidu.com 页面,那么可以这样配置:
error_page 404 403 https://www.baidu.com/;
写在最后
这就是本篇博客的全部内容,主要是跟大家分享Nginx配置文件所存放的位置以及一些基本的配置规则,在后续的文章中,会进一步分享如何更详细的配置Nginx。
欢迎大家继续关注!