docker下nginx自定義日志并限制ip訪問(wèn)方式
更新時(shí)間:2025年11月18日 08:38:38 作者:何超杰
文章介紹了如何使用Nginx和docker-compose.yml創(chuàng)建一個(gè)目錄,并在配置文件conf.d/default.conf中限制IP訪問(wèn),限制IP訪問(wèn)的語(yǔ)法包括deny和allow,可以應(yīng)用到http、server和location級(jí)別
一.Nginx部署
docker-compose.yml
version: '2'
services:
nginx:
image: 'nginx:latest'
restart: always
container_name: nginx
ports:
- '80:80'
- '443:443'
volumes:
- '/app/nginx/conf.d:/etc/nginx/conf.d'
- '/app/nginx/logs:/etc/nginx/logs'
command: nginx -g 'daemon off;'
創(chuàng)建目錄
mkdir -p /app/nginx/logs mkdir -p /app/nginx/conf.d
conf.d/default.conf配置文件
server {
listen 80;
server_name localhost;
#自定義日志路徑,log格式使用main(默認(rèn))
access_log logs/access_service.log main;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_pass http://xxx.com;
client_max_body_size 100m;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
二.限制IP訪問(wèn)
查找訪問(wèn)者ip方法
awk ‘{print $1}' access_service.log |sort |uniq -c|sort -n配置文件conf.d/default.conf
server {
listen 80;
server_name localhost;
access_log logs/access_service.log main;
# 將禁止ip放在server級(jí)別
deny 172.20.0.1;
location / {
# 將禁止ip放在location級(jí)別
# deny 172.20.0.1;
allow 172.20.0.1;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_pass http://test.xylink.cn;
client_max_body_size 100m;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
限制ip語(yǔ)法
deny和allow可以應(yīng)用到http,server,location級(jí)別
//屏蔽單個(gè)ip訪問(wèn) deny IP; //允許單個(gè)ip訪問(wèn) allow IP; //屏蔽所有ip訪問(wèn) deny all; //允許所有ip訪問(wèn) allow all; //屏蔽整個(gè)段即從123.0.0.1到123.255.255.254訪問(wèn)的命令 deny 123.0.0.0/8 //屏蔽IP段即從123.45.0.1到123.45.255.254訪問(wèn)的命令 deny 124.45.0.0/16 //屏蔽IP段即從123.45.6.1到123.45.6.254訪問(wèn)的命令 deny 123.45.6.0/24 //如果你想實(shí)現(xiàn)這樣的應(yīng)用,除了幾個(gè)IP外,其他全部拒絕, //那需要你在guolv_ip.conf中這樣寫(xiě) allow 1.1.1.1; allow 1.1.1.2; deny all;
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Nginx將http轉(zhuǎn)換成https的詳細(xì)過(guò)程
相信大家在現(xiàn)有項(xiàng)目里都會(huì)通過(guò)https訪問(wèn),這篇文章主要給大家介紹了關(guān)于Nginx將http轉(zhuǎn)換成https的詳細(xì)過(guò)程,文中將實(shí)現(xiàn)的方法介紹的非常詳細(xì),需要的朋友可以參考下2022-05-05
nginx搭建IPv6 ->IPv4反向代理服務(wù)器的實(shí)現(xiàn)
本文主要介紹了nginx搭建IPv6 ->IPv4反向代理服務(wù)器的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-05-05
WinPC搭建nginx服務(wù)器的實(shí)現(xiàn)步驟
本文主要介紹了WinPC搭建nginx服務(wù)器的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01
Nginx定時(shí)切割日志實(shí)現(xiàn)詳解
這篇文章主要介紹了Nginx定時(shí)切割日志詳解,Nginx日志默認(rèn)情況下寫(xiě)入到一個(gè)文件中,為了區(qū)分各個(gè)域下的日志,我們一般會(huì)分開(kāi)存儲(chǔ)。即時(shí)這樣,文件也會(huì)變的越來(lái)越大,非常不方便查看分析。下面來(lái)聊聊以日期來(lái)分隔Nginx日志,需要的朋友可以參考下2019-07-07
Nginx如何實(shí)現(xiàn)pathinfo模式的方法詳解
pathinfo是偽靜態(tài)的一種,對(duì)于用過(guò)thinkphp的朋友們來(lái)說(shuō)應(yīng)該都不陌生,下面這篇文章主要給大家介紹了關(guān)于Nginx如何實(shí)現(xiàn)pathinfo模式的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。2017-09-09
詳解Nginx 13: Permission denied 解決方案
這篇文章主要介紹了詳解Nginx 13: Permission denied 解決方案,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-07-07

