Docker配置nginx
创始人
2024-02-16 15:38:15
0

1.Docker安装nginx

  • 安装的命令
sudo docker search nginx
docker pull nginx
  • 查看是否安装
docker images

在这里插入图片描述

  • 运行测试nginx
docker run --name nginx-test -p 9091:80 -d nginx
--name  #给你启动的容器起个名字,以后可以使用这个名字启动或者停止容器
-p #映射端口,将docker宿主机的9091端口和容器的80端口进行绑定
-v #挂载文件用的
-d #表示启动的是哪个镜像。

在这里插入图片描述
在这里插入图片描述

2.Nginx服务的配置和部署

  • 为什么需要做文件的映射?

我们在使用容器的过程中需,有时候需要对容器中的文件进行修改管理,如果不做文件映射的化,我们使用docker exec -it 容器ID/容器名 /bin/bash 才能进入nginx中的文件里面如图
在这里插入图片描述
如果把关键文件映射到主机上,那么就可以在主机中进行修改而不必进入文件当中才进行修改了。

  • 需要在主机上建立相应的关键文件目录
  • 在home下创建一个docker文件夹,用来专门存docker容器的映射文件。
  • 在docker下创建一个nginx的文件夹,用于存nginx的映射文件。
  • 在nginx下创建三个关键的映射文件。
    www文件映射www目录,也就是网页目录。
    logs文件映射日志目录。
    conf文件映射配置目录
    在这里插入图片描述
  • 先在容器中拷贝配置文件
docker cp 容器ID:/etc/nginx/nginx.conf /home/docker/nginx/conf
#注意此时的容器必须是运行的

在这里插入图片描述

  • docker中nginx与主机文件映射规则如下
主机                                              docker
/home/docker/nginx/www                           /usr/share/nginx/html #网页文件
/home/docker/nginx/conf/nginx.conf               /etc/nginx/nginx.conf#配置文件
/home/docker/nginx/logs                          /var/log/nginx#日志文件
  • 关闭之前运行的容器
docker stop 容器ID
docker rm 容器ID
  • 运行nginx,同时进行文件挂载
docker run -d -p 9091:80  --name nginx-test -v /home/docker/nginx/www:/usr/share/nginx/html -v /home/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/docker/nginx/logs:/var/log/nginx nginx

在这里插入图片描述

  • 在www目录下建立一个html文件
    在这里插入图片描述
  • 访问nginx
    在这里插入图片描述

3.Nginx的普通配置

通过nginx为多为个域名配置服务,使得通过浏览器可以访问到相应的域名。

3.1 创建html文件

  • 在映射到主机下的/home/docker/nginx/www下创建html文件或者域名的文件夹

在这里插入图片描述

其中blog.hklblog.net和www.hklblog.com是存放不同域名访问的文件路劲。里面都有对应的index.html

3.2 修改host文件

sudo gedit /etc/hosts

在这里插入图片描述

3.3 修改nginx.conf文件

提醒 「路径问题」

  • 这里需要提醒一下,在前面我们已经把nginx中的配置文件映射到主机目录下,我们在主机目录下修改了/home/docker/nginx/www的文件,同时nginx容器中的/usr/share/nginx/html下的文件有会有相同的变化。但是在配置文件中使用的路径得是nginx的,而不应该是主机的路径。
  • 打开主机映射的nginx配置文件
sudo gedit /home/docker/nginx/conf/nginx.conf 

在这里插入图片描述

server中的配置解释参考如下:

在这里插入图片描述

  • 重启docker
docker ps#获取容器的ID
docker restart 容器ID

在这里插入图片描述

  • 在浏览器通过www.hklblog.com
    在这里插入图片描述

  • 以同样的方式为blog,hklblog.net配置服务
    「修改nginx.conf」–「添加一个server」–「重启docker」–「浏览器域名访问」
    在这里插入图片描述

  • 浏览器通过域名访问
    在这里插入图片描述

  • 错误心得

当有时启动容器,通过docker ps 发现容器并没有启动,那么通过docker ps -a可查看容器的状态:
created(已创建)
restarting(重启中)
running(运行中)
removing(迁移中)
paused(暂停)
exited(停止)
dead(死亡)
然后通过查看日志:docker logs 容器ID
可以从中发现未能启动的原因。

在这里插入图片描述

4.代理模式

4.1 正向代理

  • 描述「正向代理」

客户端<---->代理服务器<---->服务器
架设在客户机与目标主机之间,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将原本要直接发送到web服务器上的http请求发送到代理服务器中。

  • 迁移 租房 「正向代理」

A(租客=客户端),B(中介=代理服务器),C(房东=服务器)
A想要组C的房子,但是A并不认识C所以租不到,但是B认识C,A找B帮忙租到了C的房子。
此过程C是不知到是A租了房子,只知道房子租给了B,但是A知道是租C的房子。所以对客户端是透明的。

4.2 反向代理

  • 描述 「反向代理」

客户端—>代理服务器<—>服务器
反向代理服务器架设在服务端,通过缓冲经常被请求的页面来缓解服务器的工作量,将客户机请求转发给内部网络上的目标服务器;并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器与目标主机一起对外表现为一个服务器。正式反向代理对真正的服务器起到了保护作用,所以反向代理比较流行。

  • 迁移 租房 「反向代理」

A (租客=客户端),B(中介=代理服务器),C(服务器=房东)
A想租房子,B直接把房子租给了它。但实际上C才是房东,B租房给A的这个过程中,A并不知道谁是真正的房东。

4.3 配置反向代理

  • 案例 「代理访问」

通过访问blog.hklblog.net,来访问www.baidu.com

  • 操作

只需要在nginx的配置当中的server下的location中添加proxy_pass:https:www.baidu.com

 #配置服务blog.hklblog.netserver{#配置虚拟主机的相关参数,一个http块有多个serverlisten		80;#监听端口server_name	blog.hklblog.net;#配置域名root		/usr/share/nginx/html/blog.hklblog.net;#配置根目录location / {#配置请求的路由,以及各种页面的处理情况root		/usr/share/nginx/html/blog.hklblog.net;#根目录index 		index.html index.htm;#默认首页proxy_pass 	https://www.baidu.com;#配置反向代理}}
  • 通过浏览器访问
    在这里插入图片描述

相关内容

热门资讯

美国参议院Murphy:将通过... 美国参议院Murphy:将通过法律手段阻止美国总统特朗普针对风电场采取的命令。
“免申即享”,一次性信用修复政... 蓝鲸新闻12月22日讯(记者 严沁雯)个人信用重塑支持政策正式落地。12月22日,中国人民银行发布关...
一次性信用修复政策公布,将帮助... 新华社北京12月22日电题:一次性信用修复政策公布,将帮助哪些人重塑个人信用? 12月22日,中国人...
*ST惠程(002168)披露... 截至2025年12月22日收盘,*ST惠程(002168)报收于3.69元,较前一交易日上涨5.13...
苹果因应用商店追踪政策被意大利... 12月22日消息,据欧洲新闻网报道,意大利竞争管理局对苹果公司、苹果分销国际公司和苹果意大利公司处以...
形势政策系列报告会第二场报告会... 新华社北京12月22日电 由中央宣传部、中央和国家机关工委、教育部、中央军委政治工作部、北京市委联合...
中国将主要签证便利化政策延长至... On December 18, several Chinese embassies issued a...
“两高”相关部门负责人就第三批... 2025年12月22日上午10:00,最高人民法院召开新闻发布会,与最高人民检察院联合发布第三批行政...
商务部回应安世半导体问题:督促... 新华社北京12月22日电 商务部新闻发言人22日就安世半导体问题答记者问时说,中国政府本着对全球半导...
创识科技实控人张更生被留置,去... 每经记者|赵李南 每经编辑|董兴生 12月22日,创识科技(SZ300941,股价28.87元,市...