nginx服務(wù)加鑒權(quán)&設(shè)置日志方式
一、鑒權(quán)
為了更好限制訪問權(quán)限,需要對(duì)服務(wù)加鑒權(quán),具體步驟如下:
1、安裝httpd-tools
yum install -y httpd-tools
2、創(chuàng)建密碼文件htpasswd.users
htpasswd -c /etc/nginx/htpasswd.users "賬戶名"
如果為已存在密碼文件添加用戶,刪除-c
3、配置nginx.conf
Nginx 的配置文件中(通常位于 /etc/nginx/nginx.conf
或 /etc/nginx/sites-available/default
,具體取決于你的安裝和配置),找到或添加你想要保護(hù)的 location
塊,并添加基本認(rèn)證的指令。
location / { auth_basic "Restricted Area"; auth_basic_user_file /etc/nginx/htpasswd.users; ... }
auth_basic "Restricted Area"
設(shè)置了認(rèn)證提示信息,用戶在訪問受保護(hù)的頁面時(shí)會(huì)看到這個(gè)提示。auth_basic_user_file
指令指定了之前創(chuàng)建的包含用戶名和加密密碼的文件路徑。
4、驗(yàn)證修改并加載配置
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
二、設(shè)置日志
2.1、訪問日志Access Log
訪問日志記錄了所有客戶端請(qǐng)求的信息。你可以通過 access_log 指令來配置訪問日志的位置、格式等
http { # 全局訪問日志設(shè)置 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、錯(cuò)誤日志Error Log
錯(cuò)誤日志記錄了 Nginx 在處理請(qǐng)求時(shí)遇到的錯(cuò)誤信息。你可以通過 error_log 指令來配置錯(cuò)誤日志的位置和日志級(jí)別。
http { # 全局錯(cuò)誤日志設(shè)置 error_log /var/log/nginx/error.log warn; ... location / { # 為特定位置塊設(shè)置不同的錯(cuò)誤日志 error_log /var/log/nginx/yourapp_error.log info; ... } }
2.3、nginx 日志級(jí)別
級(jí)別 | 含義 |
---|---|
debug | 最詳細(xì)的日志級(jí)別,記錄所有調(diào)試信息。 |
info | 記錄一般信息,如請(qǐng)求處理詳情。 |
notice | 比 info 更重要一些的信息。 |
warn | 警告信息,通常表示可能的問題。 |
error | 錯(cuò)誤信息,表示請(qǐng)求處理過程中出現(xiàn)的錯(cuò)誤。 |
crit | 關(guān)鍵錯(cuò)誤,表示嚴(yán)重的錯(cuò)誤。 |
alert | 警報(bào)級(jí)別,表示需要立即采取行動(dòng)的情況。 |
emerg | 緊急情況,表示系統(tǒng)無法繼續(xù)運(yùn)行。 |
2.4、日志格式配置
Nginx 的日志格式非常靈活,可以通過 log_format 指令來自定義日志的輸出格式。
默認(rèn)情況下,Nginx 提供了一些預(yù)定義的日志格式:
變量 | 含義 |
---|---|
$remote_addr | 客戶端的 IP 地址。 |
$remote_user | 客戶端的用戶名(如果啟用了基本認(rèn)證)。 |
$time_local | 本地時(shí)間(標(biāo)準(zhǔn)格式)。 |
$time_iso8601 | ISO 8601 格式的時(shí)間。 |
$request | 請(qǐng)求行,包括方法、URI 和協(xié)議版本。 |
$status | HTTP 狀態(tài)碼。 |
$body_bytes_sent | 發(fā)送給客戶端的字節(jié)數(shù)(不包括響應(yīng)頭)。 |
$http_referer | 引用頁面的 URL。 |
$http_user_agent | 客戶端的 User-Agent 字符串。 |
$http_x_forwarded_for | 客戶端的真實(shí) IP 地址(通過代理服務(wù)器傳遞)。 |
$request_time | 請(qǐng)求處理的總時(shí)間(以秒為單位,精度為毫秒)。 |
$upstream_response_time | 從上游服務(wù)器接收響應(yīng)的時(shí)間(以秒為單位,精度為毫秒)。 |
$request_length | 請(qǐng)求的長度(包括請(qǐng)求行、頭部和請(qǐng)求體)。 |
$bytes_sent | 發(fā)送給客戶端的字節(jié)數(shù)(包括響應(yīng)頭)。 |
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Nginx實(shí)現(xiàn)瀏覽器可實(shí)時(shí)查看訪問日志的步驟詳解
我們經(jīng)常需要在頁面上實(shí)時(shí)查看nginx的日志輸出,并且能在頁面上顯示,那么下面小編就給大家說下怎么在瀏覽器上實(shí)時(shí)動(dòng)態(tài)的查看nginx的訪問日志,有需要的朋友們可以參考借鑒。2016-09-09lnmp環(huán)境中如何為nginx開啟pathinfo
這篇文章主要介紹了lnmp環(huán)境中如何為nginx開啟pathinfo的方法,操作很簡單,需要的朋友可以參考下2015-01-01利用nginx搭建靜態(tài)資源服務(wù)器的方法步驟
這篇文章主要介紹了利用nginx搭建靜態(tài)資源服務(wù)器的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06Nginx+Tomcat實(shí)現(xiàn)動(dòng)靜分離的項(xiàng)目實(shí)踐
本文主要介紹了Nginx+Tomcat實(shí)現(xiàn)動(dòng)靜分離,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-01-01Nginx常用命令和部署詳解以及實(shí)戰(zhàn)案例示范
這篇文章主要介紹了Nginx的常用命令和在不同環(huán)境下的部署方法,包括在CentOS和Docker中部署Nginx,并詳細(xì)說明了如何配置Nginx以實(shí)現(xiàn)實(shí)時(shí)刷新數(shù)據(jù)和數(shù)據(jù)分析系統(tǒng)的場(chǎng)景,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-02-02