Docker中安装与配置Nginx

实现Docker容器中安装配置Nginx

1. 启动进入容器

1.1 拉取centos镜像:
docker pull centos

注意: 这样拉取的是最新的centos8镜像,如果想要拉取centos7则使用docker pull centos:7

1.2 启动进入容器
docker run -d --privileged --name nginx centos:v1 /usr/sbin/init
我这里起名为myNginx, 名字都可以只要不和其他容器冲突就行
在这里插入图片描述
docker exec -it 容器ID /bin/bash进入容器
在这里插入图片描述

2. 在容器中安装Nginx

2.1 在容器中编辑/etc/yum.repos.d/nginx.repo设置yum源

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1

2.2 yum install -y nginx安装
在这里插入图片描述
2.3 启动nginx

systemctl start nginx
systemctl enable nginx #设置开机自动启动

2.4 保存容器
docker commit 容器ID nginx
在这里插入图片描述

3. 启动Nginx

3.1 启动容器
docker run -d -p 80:80 --privileged nginx /usr/sbin/init
在这里插入图片描述

3.2 主机中使用浏览器访问虚拟机IP地址
在这里插入图片描述

4. 配置nginx主目录

4.1 进入nginx容器,查看/etc/nginx/nginx.conf文件
更改root目录
在这里插入图片描述
4.2 建立/var/webroot/www目录

编辑index.html文件
在这里插入图片描述
4.3 重新启动nginx服务并在主机使用浏览器访问
在这里插入图片描述

5. 配置Nginx错误页重定向

5.1 编辑/etc/nginx/nginx.conf文件,配置error_page指令指定404页面
在这里插入图片描述
5.2 在/var/webroot/www目录,编辑404.html文件
在这里插入图片描述
在这里插入图片描述
5.3 配置error_page 404 =200更改响应状态码
在这里插入图片描述
重启服务
在这里插入图片描述

6. 配置nginx访问控制权

6.1 在server块内增加deny all指令
在这里插入图片描述
在这里插入图片描述
6.2 使用location块进行访问控制
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

可以看到,当直接访问直接访问http://192.168.0.131/deny拒绝
访问访问index.html页面allow允许

原因:

http://192.168.0.131/的结果是 403 Forbidden,说明被匹配到location / {..deny all;}

原因很简单HTTP 请求 GET / 被“严格精确”匹配到了普通location / {} ,则会停止搜索正则location ;

http://192.168.0.131/index.html 结果是之前设置的index页面,说明没有被location / {…deny all;}匹配,否则会 403 Forbidden。

但 /index.html 的确也是以“ / ”开头的,只不过此时的普通location /的匹配结果是最大前缀匹配,所以 Nginx 会继续搜索正则location , location ~ \.html$表达了以.html结尾的都allow all; 于是接着就访问到了实际存在的index.html页面。

发布了156 篇原创文章 · 获赞 54 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_43442524/article/details/104964740