nginx服务加鉴权&设置日志方式

 更新时间:2025年06月07日 09:36:39   作者:岳来  
这篇文章主要介绍了nginx服务加鉴权&设置日志方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

一、鉴权

为了更好限制访问权限,需要对服务加鉴权,具体步骤如下:

1、安装httpd-tools

yum install -y httpd-tools

2、创建密码文件htpasswd.users

htpasswd -c /etc/nginx/htpasswd.users "账户名"

如果为已存在密码文件添加用户,删除-c

3、配置nginx.conf

Nginx 的配置文件中(通常位于 /etc/nginx/nginx.conf/etc/nginx/sites-available/default ,具体取决于你的安装和配置),找到或添加你想要保护的 location 块,并添加基本认证的指令。

	location / {
       auth_basic "Restricted Area";
       auth_basic_user_file /etc/nginx/htpasswd.users;
       ...
   }
  • auth_basic "Restricted Area" 设置了认证提示信息,用户在访问受保护的页面时会看到这个提示。
  • auth_basic_user_file 指令指定了之前创建的包含用户名和加密密码的文件路径。

4、验证修改并加载配置

nginx -t 

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
# 如上信息表明修改没有问题
systemctl reload nginx  # 重载NGINX  

二、设置日志

2.1、访问日志Access Log

访问日志记录了所有客户端请求的信息。你可以通过 access_log 指令来配置访问日志的位置、格式等

http {
    # 全局访问日志设置
    access_log /var/log/nginx/access.log main;

    # 自定义日志格式
    log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                    '$status $body_bytes_sent "$http_referer" '
                    '"$http_user_agent" "$http_x_forwarded_for"';
    ...
}

2.2、错误日志Error Log

错误日志记录了 Nginx 在处理请求时遇到的错误信息。你可以通过 error_log 指令来配置错误日志的位置和日志级别。

http {
    # 全局错误日志设置
    error_log /var/log/nginx/error.log warn;
    ...
    
		location / {
            # 为特定位置块设置不同的错误日志
            error_log /var/log/nginx/yourapp_error.log info;
            ...
        }
}    

2.3、nginx 日志级别

级别含义
debug最详细的日志级别,记录所有调试信息。
info记录一般信息,如请求处理详情。
notice比 info 更重要一些的信息。
warn警告信息,通常表示可能的问题。
error错误信息,表示请求处理过程中出现的错误。
crit关键错误,表示严重的错误。
alert警报级别,表示需要立即采取行动的情况。
emerg紧急情况,表示系统无法继续运行。

2.4、日志格式配置

Nginx 的日志格式非常灵活,可以通过 log_format 指令来自定义日志的输出格式。

默认情况下,Nginx 提供了一些预定义的日志格式:

变量含义
$remote_addr客户端的 IP 地址。
$remote_user客户端的用户名(如果启用了基本认证)。
$time_local本地时间(标准格式)。
$time_iso8601ISO 8601 格式的时间。
$request请求行,包括方法、URI 和协议版本。
$statusHTTP 状态码。
$body_bytes_sent发送给客户端的字节数(不包括响应头)。
$http_referer引用页面的 URL。
$http_user_agent客户端的 User-Agent 字符串。
$http_x_forwarded_for客户端的真实 IP 地址(通过代理服务器传递)。
$request_time请求处理的总时间(以秒为单位,精度为毫秒)。
$upstream_response_time从上游服务器接收响应的时间(以秒为单位,精度为毫秒)。
$request_length请求的长度(包括请求行、头部和请求体)。
$bytes_sent发送给客户端的字节数(包括响应头)。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Nginx实现浏览器可实时查看访问日志的步骤详解

    Nginx实现浏览器可实时查看访问日志的步骤详解

    我们经常需要在页面上实时查看nginx的日志输出,并且能在页面上显示,那么下面小编就给大家说下怎么在浏览器上实时动态的查看nginx的访问日志,有需要的朋友们可以参考借鉴。
    2016-09-09
  • lnmp环境中如何为nginx开启pathinfo

    lnmp环境中如何为nginx开启pathinfo

    这篇文章主要介绍了lnmp环境中如何为nginx开启pathinfo的方法,操作很简单,需要的朋友可以参考下
    2015-01-01
  • 利用nginx搭建静态资源服务器的方法步骤

    利用nginx搭建静态资源服务器的方法步骤

    这篇文章主要介绍了利用nginx搭建静态资源服务器的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • 详解Nginx服务器中map模块的配置与使用

    详解Nginx服务器中map模块的配置与使用

    这篇文章主要介绍了Nginx服务器中map模块的配置与使用,文中同时给出了ngx_http_map_module模块的map命令用于制作服务器限速白名单的示例,需要的朋友可以参考下
    2016-01-01
  • 解决Nginx转发图片不能显示的问题

    解决Nginx转发图片不能显示的问题

    在使用Nginx作为反向代理将iServer的HTTP协议转换为HTTPS协议时,可能会遇到静态资源无法加载、页面跳转回HTTP协议、访问服务管理界面权限问题等情况,本文给大家介绍解决Nginx转发图片不能显示的问题,感兴趣的朋友一起看看吧
    2024-11-11
  • Nginx+Tomcat实现动静分离的项目实践

    Nginx+Tomcat实现动静分离的项目实践

    本文主要介绍了Nginx+Tomcat实现动静分离,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-01-01
  • Nginx常用命令和部署详解以及实战案例示范

    Nginx常用命令和部署详解以及实战案例示范

    这篇文章主要介绍了Nginx的常用命令和在不同环境下的部署方法,包括在CentOS和Docker中部署Nginx,并详细说明了如何配置Nginx以实现实时刷新数据和数据分析系统的场景,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-02-02
  • Nginx轻松搞定跨域问题完整过程

    Nginx轻松搞定跨域问题完整过程

    这篇文章主要给大家介绍了关于Nginx轻松搞定跨域问题的相关资料,大家在使用nginx进行服务器管理,经常会遇到跨域问题,文中将解决方法介绍的非常详细,需要的朋友可以参考下
    2023-08-08
  • 图文详解Nginx多种匹配方式

    图文详解Nginx多种匹配方式

    nginx作为一款高性能的服务器,用途很多,下面这篇文章主要给大家介绍了Nginx多种匹配方式的相关资料,文中通过图文介绍的介绍的非常详细,需要的朋友可以参考下
    2022-05-05
  • Nginx和GeoIP模块读取IP所在的地域信息方法

    Nginx和GeoIP模块读取IP所在的地域信息方法

    今天小编就为大家分享一篇Nginx和GeoIP模块读取IP所在的地域信息方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08

最新评论