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

