Docker中用 Nginx 镜像可以创建多个网站。
假设用Nginx镜像创建了容器1:
- 容器名称:nginx
- 访问的地址:http://ip:80(即直接用ip或者域名可访问)
- 配置文件:nginx.conf
- 网页:index.html
用Nginx镜像创建了容器2:
- 容器名称:ai_html_index
- 访问地址:http://ip:9080(或者 http://域名:9080 )
- 网站目录:nginx-index(内含index.html)
那容器1可以通过域名直接访问,想把容器2的访问设置一个二级域名的操作步骤如下。
准备工作
1.ip和域名
假设我的ip为:110.22.33.44,域名为:abc.com,当然已经设置好了域名解析。
想要添加的二级域名为:ai.abc.com
2.容器1的配置文件nginx.conf
准备好文件以及容器1的配置文件nginx.conf,内容如下:
1 | events { |
3.创建容器1和容器2
1 | # 创建容器1 nginx |
操作步骤
1.域名解析添加A记录
首先,需要在域名解析服务商处添加一个A记录,将 ai.abc.com 指向 110.22.33.44。这样访问ai.abc.com 时,DNS解析会将其解析为110.22.33.44。
2.修改 nginx.conf 配置文件
需要在容器1的 nginx的配置文件中添加一个新的server块,用于处理 ai.abc.com 的请求。nginx.conf 文件修改后的内容为:
1 | events { |
修改好后,直接重启一下容器1:docker restart nginx
,就可以用二级域名 ai.abc.com 访问容器2的网站了。
proxy_set_header
在nginx的反向代理配置中,
proxy_set_header
指令用于设置HTTP请求头。具体来说:
proxy_set_header Host $host;
:该指令将设置代理请求的Host
头字段为客户端请求的Host
头字段。这是为了确保后端服务器能够正确处理请求,并根据请求的域名进行相应的处理。
proxy_set_header X-Real-IP $remote_addr;
:该指令将设置代理请求的X-Real-IP
头字段为客户端的真实IP地址。这是为了将客户端的真实IP地址传递给后端服务器,以便后端服务器能够获取到客户端的真实IP地址。这两个指令在反向代理配置中是常见的设置,可以确保后端服务器能够正确处理请求,并获取到客户端的真实IP地址。在你的配置中,这两个指令用于将客户端请求的
Host
头字段和真实IP地址传递给第二个容器。
- 本文标题:为 Docker 创建的 Nginx 容器配置二级域名
- 本文作者:HDUZN
- 创建时间:2023-07-02 23:12:49
- 本文链接:http://hduzn.cn/2023/07/02/为Docker创建的Nginx容器配置二级域名/
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!