这里我们以购买阿里云的域名为例
有域名的作用:当我们在浏览器上面访问主机的某一个端口时,必须输入主机ip+端口号,这就会非常的麻烦,而且也会暴露出我们的主机名,很不安全,因此域名的好处就是可以将我们的主机ip和端口号给隐藏起来。
如www.baidu.com其代表百度的服务器ip:8080
1.购买阿里云域名
建议购买.com或者.cn后缀的域名
由于这一步比较简单,可以跳过,登录阿里云,购买自己喜欢的服务器即可。
2.主机ip绑定域名
是将主机的ip绑定到指定的域名上面
步骤
第一步:选择域名
第二步:点击域名列表,然后在点击我们指定域名的解析
第三步:点击添加记录
此时我们绑定的只是一个宿主机的ip,没有绑定特定的端口,所以去浏览器上面直接搜索该域名是搜索不出来的。
3.检测域名是否绑定成功
第一步:打开一个linux客户端或者windows命令行
4.使用域名访问特定的端口
如我们想使用这个域名访问我们自己的博客,我们博客开放的端口是8080,那如何在浏览器上面访问呢?
格式: 域名:8080 - 例如: www.laojiuxueit.cn:8080
这时我们也会有一个问题,就是我们的8080端口并没有被域名隐藏起来,那该如何办呢?
解决方法:
第一步:
在我们域名的基础上创建一个二级域名
第二步:
使用nginx反向代理,将该二级域名绑定到我们8080端口,实际上就是绑定到ip:端口这一个整体。
5.创建一个二级域名
第一步:点击域名
第二步:选择域名列表
第二步
第三步:添加记录
第四步:设置二级域名参数
域名:test.laojiuxueit.cn
到这里二级域名已经创建完成
第五步:测试二级域名是否能使用
测试一下二级域名能不能使用
6.nginx反向代理
我们需要安装Nginx Proxy Manager
在安装Nginx Proxy Manager之前我们需要先安装docker和docker-compse。
docker的安装和docker-compse安装,大家去网上自行安利即可。
1.理解代理
代理就是第三方。
什么是正向代理
你要买国外小G家的鞋子,你没有paypal和信用卡,买不了,于是你找到了叫小V的代购帮你到海外买,小V找到海外的卖家小G,帮你买了鞋子,然后寄回给了你。
这个小V就是正向代理。
正向代理的特点是,可以保护访问者的信息。因为小V是个职业代购,他在帮你代购鞋子的同时也帮别人代购鞋子,而且他不仅代购鞋子,还代购箱子、家具、电饭煲,卖家小G只知道有人买了我的鞋子,我交给了小V,但并不知道具体是谁买了他家的鞋子。
什么是反向代理
反向代理,顾名思义,正好相反,可以保护卖家的信息。也就是我们服务器的信息
Nginx Proxy Manager
2.安装
我们可以在自己绑定域名的主机上面安装,也可以做其他其他主机上面安装
1.创建安装目录
mkdir -p /root/data/docker_data/npm - cd /root/data/docker_data/npm
2.编写docker-compse.yml文件
vim docker-compose.yml
version: "3" services: app: image: 'jc21/nginx-proxy-manager:latest' restart: unless-stopped ports: - '80:80' # Public HTTP Port - '443:443' # Public HTTPS Port - '81:81' # Admin Web Port Add any other Stream port you want to expose(注释掉) - '21:21' # FTP(注释掉) environment: DB_MYSQL_HOST: "db" DB_MYSQL_PORT: 3306 DB_MYSQL_USER: "npm" DB_MYSQL_PASSWORD: "npm" DB_MYSQL_NAME: "npm" Uncomment this if IPv6 is not enabled on your host(注释掉) DISABLE_IPV6: 'true'(注释掉) volumes: - ./data:/data - ./letsencrypt:/etc/letsencrypt depends_on: - db db: image: 'jc21/mariadb-aria:latest' restart: unless-stopped environment: MYSQL_ROOT_PASSWORD: 'npm' MYSQL_DATABASE: 'npm' MYSQL_USER: 'npm' MYSQL_PASSWORD: 'npm' volumes: - ./data/mysql:/var/lib/mysql line 18, column 7 in "./docker-compose.yml", line 19, column 1
3.创建容器
cd /root/data/docker_data/npm # 来到 dockercompose 文件所在的文件夹下 - docker-compose up -d
4.web访问
宿主机ip:81
#默认登录名和密码 Email: admin@example.com Password: changeme
5.更新
cd /root/data/docker_data/npm docker-compose down cp -r /root/data/docker_data/npm /root/data/docker_data/npm.archive # 万事先备份,以防万一 docker-compose pull docker-compose up -d # 请不要使用 docker-compose stop 来停止容器,因为这么做需要额外的时间等待容器停止;docker-compose up -d 直接升级容器时会自动停止并立刻重建新的容器,完全没有必要浪费那些时间。 docker image prune # prune 命令用来删除不再使用的 docker 对象。删除所有未被 tag 标记和未被容器使用的镜像
6.卸载
cd /root/data/docker_data/npm docker-compose down rm -rf /root/data/docker_data/npm # 完全删除映射到本地的数据
3.将二级域名绑定到主机ip的某个端口上
第一步:在浏览器上面输入启动docker compose的主机IP:81
默认账户
Email: admin@example.com Password: changeme
做一下基本的配置,如果修改密码,用户名等,此处省略
第二步:绑定二级域名
设置二级域名
第三步:设置ssl秘钥
我们访问这个域名的时候会发现,我们的左上角会显示不安全的一个三角形,我们要解决这个问题所以我们要弄一个ssL。
之后选择Edit
到这里就已经完工了,此时我们就将ip:8080这个程序绑定到了一个特定的域名上面(二级域名
补充
写本机的docker网路ip的话就可以防止别人用,但是如果使用别的主机的话,就必须使用主机公网ip了。