nginx--配置文件详解、错误页面的配置

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: nginx--配置文件详解、错误页面的配置

nginx的配置文件


在前面我们搭建好了nginx服务之后,浏览器访问返回给了我们一个欢迎页面。它是Nginx目录下的html文件,可以从nginx.conf中看到

location /{
            root   html;    # 这里是默认的站点html文件夹,也就是 /opt/nginx1-16/html/文件夹下的内容
            index  index.html index.htm;   # 站点首页文件名是index.html
        }

如果要部署网站业务数据,只需要把开发好的程序全放到html目录下即可。

Nginx主配置文件/opt/nginx1-16/nginx.conf是一个纯文本类型的文件,整个配置文件是以区块的形式组织的。一般,每个区块以一对大括号{}来表示开始与结束。

nginx.conf详解

CoreModule核心模块
user www;                       #Nginx进程所使用的用户
worker_processes 1;             #Nginx运行的work进程数量(建议与CPU数量一致或auto)
error_log /log/nginx/error.log  #Nginx错误日志存放路径
pid /var/run/nginx.pid          #Nginx服务运行后产生的pid进程号
events事件模块
events {            
    worker_connections   # 每个worker进程支持的最大连接数
    use epool;          # 事件驱动模型, epoll默认
}
http内核模块
# 公共的配置定义在http{}
http {  # http层开始
...    
    # 使用Server配置网站, 每个Server{}代表一个网站(简称虚拟主机)
    'server' {
        listen       80;        # 监听端口, 默认80
        server_name  localhost;   # 提供服务的域名或主机名
        access_log host.access.log  # 访问日志
        # 控制网站访问路径
        'location' / {
            root   /usr/share/nginx/html;  # 存放网站代码路径
            index  index.html index.htm;   # 服务器返回的默认页面文件
        }
        # 指定错误代码, 统一定义错误页面, 错误代码重定向到新的Locaiton
        error_page   500 502 503 504  /50x.html;
    }
    ...
    # 第二个虚拟主机配置
    'server' {
    ...
    }
    include /etc/nginx/conf.d/*.conf;   # 包含/etc/nginx/conf.d/目录下所有以.conf结尾的文件
}   # http层结束

当我们更改了配置文件之后,在重新加载配置文件之前先检查一下更改后配置文件的正确性

./sbin/nginx -t    # 检测nginx.conf 配置文件的语法正确性

没问题之后再重启

./sbin/nginx -s reload  # 平滑重启(修改了nginx配置文件,不重启服务就加载配置且生效)


nginx访问日志功能


日志功能对每个用户访问网站的日志信息记录到指定的日志文件里,开发运维人员可以分析用户的浏览器行为,此功能由ngx_http_log_module模块负责

在配置文件中,打开下面的注释,nginx.conf

log_format 日志的格式    main是日志格式指定的标签,记录日志时通过main标签选择指定的格式。

access_log  指定日志文件的路径以及格式

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;
参数详解:
# remote_addr    记录客户端ip
# remote_user    远程用户,没有就是 “-”
# time_local    对应[14/Aug/2018:18:46:52 +0800]
# request     对应请求信息"GET /favicon.ico HTTP/1.1"
# status      状态码
# body_bytes_sent  571字节 请求体的大小
# http_referer  对应“-”  由于是直接输入浏览器就是 -
# http_user_agent  客户端身份信息
# http_x_forwarded_for  记录客户端的来源真实ip

打开了功能之后,可以通过tail -f access_log查看用户身份信息

[root@HH logs]# tail -f access.log

用户访问后的日志信息如下

12.10.67.110 - - [04/Oct/2019:20:16:27 +0800] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "-"

加载配置文件

./sbin/nginx -t    # 检测nginx.conf 配置文件的语法正确性
./sbin/nginx -s reload  # 平滑重启(修改了nginx配置文件,不重启服务就加载配置且生效)


nginx错误页面优化


在网站运行过程中,可能因为页面不存在等原因,导致网站无法正常响应请求,此时web服务会返回系统的错误码,但是默认的错误页面很不友好

因此我们可以将404,403等页面的错误信息重定向到网站首页或者其他指定的页面,提升用户访问体验。

server {
        listen       80;
        server_name  www.zouzou.cn;
        root html/zouzou;
        location /{
            index  index.html index.htm;
        }
      # 在zouzou路径下的40x.html错误页面
        error_page 400 403 404 405 /40x.html;
        }

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
4月前
|
缓存 应用服务中间件 网络安全
Nginx中配置HTTP2协议的方法
Nginx中配置HTTP2协议的方法
272 7
|
3天前
|
应用服务中间件 nginx
Nginx进程配置指令详解
Nginx进程配置指令主要包括:`worker_processes`设置工作进程数;`worker_cpu_affinity`绑定CPU核心;`worker_rlimit_nofile`设置最大文件描述符数量;`worker_priority`设置进程优先级;`worker_connections`设置最大连接数;`daemon`控制守护进程模式;`master_process`启用主进程模式;`pid`设置PID文件路径;`user`指定用户和组;`error_log`配置错误日志。这些指令在`nginx.conf`中配置,用于优化和控制Nginx的运行行为。
23 10
|
1月前
|
网络协议 前端开发 应用服务中间件
nginxconf.sh 自动生成 nginx tcp 转发配置文件 conf
该脚本由 eisc.cn 开发,用于自动生成 Nginx 代理配置。它根据预设的域名、IP 和端口信息,为多个项目(如 www、work、sou 等)创建对应的 Nginx 配置文件,设置前端转发、端口对端口及后端转发规则,并生成日志和 301 跳转配置。支持自动创建 CGI 解析目录,确保各项目能够正确访问。运行时需具备 root 权限或使用 sudo。
67 9
|
2月前
|
存储 应用服务中间件 Linux
nginx配置证书和私钥进行SSL通信验证
nginx配置证书和私钥进行SSL通信验证
77 4
|
4月前
|
负载均衡 监控 应用服务中间件
配置Nginx反向代理时如何指定后端服务器的权重?
配置Nginx反向代理时如何指定后端服务器的权重?
270 61
|
4月前
|
安全 应用服务中间件 网络安全
如何测试Nginx反向代理实现SSL加密访问的配置是否正确?
如何测试Nginx反向代理实现SSL加密访问的配置是否正确?
269 60
|
4月前
|
安全 应用服务中间件 网络安全
配置Nginx反向代理实现SSL加密访问的步骤是什么?
我们可以成功地配置 Nginx 反向代理实现 SSL 加密访问,为用户提供更安全、可靠的网络服务。同时,在实际应用中,还需要根据具体情况进行进一步的优化和调整,以满足不同的需求。SSL 加密是网络安全的重要保障,合理配置和维护是确保系统安全稳定运行的关键。
361 60
|
3月前
|
存储 应用服务中间件 nginx
nginx反向代理bucket目录配置
该配置实现通过Nginx代理访问阿里云OSS存储桶中的图片资源。当用户访问代理域名下的图片URL(如 `http://代理域名/123.png`)时,Nginx会将请求转发到指定的OSS存储桶地址,并重写路径为 `/prod/files/2024/12/12/123.png`。
142 5
|
4月前
|
缓存 负载均衡 算法
如何配置Nginx反向代理以实现负载均衡?
如何配置Nginx反向代理以实现负载均衡?
|
3月前
|
负载均衡 前端开发 应用服务中间件
负载均衡指南:Nginx与HAProxy的配置与优化
负载均衡指南:Nginx与HAProxy的配置与优化
237 3