尝试使用 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]$

浏览器访问

image.png

我确实被拒绝了。

允许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]$

浏览器访问

image.png

一切按照计划顺利连接。

广告
将在 10 秒后关闭
bannerAds