03 - docker搭建nginx实现反向代理 配置多域名以及多端口号

目录

01 - ECS准备
02 - 个人博客 wordpress + docker 搭建
03 - docker搭建nginx实现反代 配置多域名以及多端口号


前面的教程我们都是直接用IP来进行访问,那么有些小伙伴购买了域名的,该怎么绑定并且访问呢?

1.需求:

我的需求,需要将多个域名解析到同一台服务器上(即宿主机),并采用nginx反代的方式,将不同的域名和不同的容器端口号对应映射。

2.技术:

由于现在网站就架设在docker的容器上,所以我将采用docker进行搭建相应的配置,采用nginx服务器做反向代理。

3.实现:

  • 第一步:

安装docker,如果你的服务器上还没有相应的docker,可以参考CentOS安装步骤或者Ubuntu 系列安装 Docker步骤进行安装。(请自行google或者使用DaoCloud管理平台

  • 第二步:

获取nginx镜像,执行命令:

docker pull nginx

  • 第三步:

创建并启动nginx容器,执行命令:
docker run --name=nginx -p 80:80 -v /nginx/conf.d:/etc/nginx/conf.d -d nginx

此时你已经创建了一下名字为nginx的容器,该容器中/etc/nginx/conf.d目录下的文件将与宿主机中/nginx/conf.d目录下的文件保持同步,而/etc/nginx/conf.d是nginx的站点配置文件夹,下面每一个conf配置文件各自对应一个站点。反代的配置也得写在里面。


进入配置文件目录

新建配置文件,我是根据需要配置的域名来命名的

第四步:

到此你的nginx容器已经创建成功,我们在此修改对应的配置文件即可,例如我现在需要将 www.aaa.com 的域名路径指向一个容器运行端口号8000(上节教程中我们是把wordpress的容器运行在8000端口上的,不记得的可以看 docker-compose.yaml, 或者 docker ps -a一下看看)上,只需要进入你宿主机中/nginx/conf.d目录中增加一个文件(命令cd /nginx/conf.d),文件名字要求必须为.conf格式,例如可以改名为:www.aaa.com.conf 命令vi www.aaa.com.conf,里面的内容如下(自己修改对应的地方,然后粘贴到vi中,按esc 输入:wq!来保存文件):

 server {
    listen       80;
    server_name www.aaa.com自己域名;
    location / {
       proxy_pass http://宿主机ip:容器对外的端口号;
      }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}
配置文件

如果你需要多个域名的配置,只需要在/nginx/conf.d目录下加相应的配置文件即可,一般只需要修改server_name和proxy_pass即可。然后重启nginx容器,即:
sudo docker restart nginx

访问您的域名,就可以看到效果了,当然得先解析你的域名
https://console.cloud.tencent.com/cns

解析界面大概是这样的

如果还没有服务器,请自行购买,趁着活动哦!
此处为腾讯云活动地址https://cloud.tencent.com/act/cps/redirect?fromSource=gwzcw.3018172.3018172.3018172&redirect=10140&cps_key=1f60ff9e0192ca8340b519ea987139b3&from=activity

腾讯云
禁止转载,如需转载请通过简信或评论联系作者。