尝试使用 nginx 容器(访问限制)- Part 2
尝试使用Nginx进行访问限制。
IP地址限制
在设置文件中定义deny或allow。
参数可以是IP地址或字符串”all”。
IP地址可以用CIDR表示范围。
拒绝 172.21.1.1
拒绝 172.21.0.0/16
允许所有
我立即开始修改设置文件。
[ec2-user]$ docker container run -d -p 80:80 --name nginx nginx:latest
2a01374534f5997dd2b44a8422b63eccff0d6a1ce21b82aa6f6dc3b10928de89
[ec2-user]$
[ec2-user]$ docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2a01374534f5 nginx:latest "/docker-entrypoint.…" 4 seconds ago Up 3 seconds 80/tcp nginx
[ec2-user]$
root@6775ebb4074c:~# vi /etc/nginx/nginx.conf
bash: vi: command not found
root@6775ebb4074c:~#
有没有安装vi?要安装吗?
root@6775ebb4074c:~# yum install -y vim
bash: yum: command not found
root@6775ebb4074c:~#
嗯,没有安装yum呢。
因为感到麻烦,所以我决定将配置文件复制到主机端,进行修改后再返回到容器内。
重新调整心情
首先尝试将以下内容添加到设定文件中。
拒绝一切;
[ec2-user]$ docker container cp nginx:/etc/nginx/nginx.conf .
[ec2-user]$
vi nginx.conf
~~ 前略 ~~
http {
deny all;
include /etc/nginx/mime.types;
~~ 後略 ~~
[ec2-user]$ docker container cp ./nginx.conf nginx:/etc/nginx/nginx.conf
[ec2-user]$
[ec2-user]$ docker container exec nginx /bin/bash -c "nginx -t"
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[ec2-user]$
[ec2-user]$ docker container restart nginx
nginx
[ec2-user]$ docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2a01374534f5 nginx:latest "/docker-entrypoint.…" 10 minutes ago Up 5 seconds 80/tcp nginx
[ec2-user]$
浏览器访问
我确实被拒绝了。
允许IP地址。 IP .)
进行允许权限设置时,使用allow。
如果同时写了allow和deny,首先匹配到的那个将被应用。
既然如此,保留deny all然后试着添加allow。
vi nginx.conf
~~ 前略 ~~
http {
allow xx.xx.xx.xx;
deny all;
include /etc/nginx/mime.types;
~~ 後略 ~~
[ec2-user]$ docker container cp ./nginx.conf nginx:/etc/nginx/nginx.conf
[ec2-user]$
[ec2-user]$ docker container exec nginx /bin/bash -c "nginx -t"
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[ec2-user]$
[ec2-user]$ docker container restart nginx
nginx
[ec2-user]$ docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2a01374534f5 nginx:latest "/docker-entrypoint.…" 28 minutes ago Up 4 seconds 80/tcp nginx
[ec2-user]$
浏览器访问
一切按照计划顺利连接。