技术专栏
优雅地部署多个项目到一台服务器,并配置多个二级域名
历经一个月,我的域名fizz.ink
终于备案成功了。于是开始了新一轮的网站折腾。
折腾的目的是想要学习网站部署的细节以及相关知识,域名解析,一台服务器部署多个二级域名的项目。以及Docker
的配置。
我的资源
- 已备案的域名
- 一台腾讯云服务器(已安装
Docker
) 配置4核8G 2M带宽
要部署的服务有这些。
fizz.ink
是网站入口,有以下链接gitlab
使用gitlab.fizz.ink
访问rancher
使用rancher.fizz.ink
访问tool
使用tool.fizz.ink
访问node-red
使用node-red.fizz.ink
访问promethus
使用promethus.fizz.ink
访问scratch
使用scratch.fizz.ink
访问jenkins
使用jenkins.fizz.ink
访问grafana
使用grafana.fizz.ink
访问
首先配置好我的域名解析
如下图
具体启动方式是使用Docker将各个项目起来,最后使用Nginx将各个端口代理起来,都使用listen 80端口
具体做法如下
mkdir -p /home/fizz/nginx/{config,www,cert}
递归在/home/fizz/nginx下创建config(存放配置文件),www(存放网站静态文件),cert(存放SSL证书)三个文件夹
使用Docker运行各个项目
Fizz
docker run -d -p 8001:80 --name=fizz fizz
(ps:请使用自己的容器名)
Rancher
docker run -d --restart=unless-stopped --name=rancher -p 8002:80 -p 8003:443 rancher/rancher
Tool
docker run -d -p 8004:80 --name=tool tool
(ps:请使用自己的容器名)
GitLab
sudo docker run --detach \
--hostname gitlab.mczaiyun.top \
--publish 8005:443 --publish 8006:80 --publish 222:22 \
--name gitlab \
--restart always \
--volume /srv/gitlab/config:/etc/gitlab \
--volume /srv/gitlab/logs:/var/log/gitlab \
--volume /srv/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest
Grafana
docker run -d -p 8007:3000 --name=grafana grafana/grafana
Prometheus
docker run -d --name=prometheus -p 8008:9090 prom/prometheus
Node-RED
docker run -d -p 8009:1880 --name=node-red nodered/node-red
Scratch
docker run -d -p 8010:80 --name=scratch scratch
(ps:请使用自己的容器名)
Jenkins
docker run -d -p 8011:8080 --name=jenkins jenkinsci/blueocean
项目启动完成后
项目启动完成后,需要先使用IP验证一下服务是否可以访问,如果不能访问检查下防火墙,安全组。查看下日志
使用命令
# 查看容器日志
docker logs [容器名]
# 查看运行的容器
dcoker ps
项目启动完整无误后,需要编写nginx配置文件
如下
创建项目的配置文件
touch fizz.conf gitlab.conf grafana.conf jenkins.conf node-red.conf prometheus.conf rancher.conf scratch.conf tool.conf
内容分别是
fizz.conf
server {
listen 80;
server_name fizz.mczaiyun.top;
location / {
proxy_pass http://127.0.0.1:8001;
}
}
rancher.conf
map $http_upgrade $connection_upgrade {
default Upgrade;
'' close;
}
server {
listen 443 ssl;
server_name rancher.mczaiyun.top;
ssl_certificate /etc/nginx/cert/rancher.mczaiyun.top.pem;
ssl_certificate_key /etc/nginx/cert/rancher.mczaiyun.top.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
add_header Access-Control-Allow-Origin *;
location / {
proxy_pass http://127.0.0.1:8002;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_read_timeout 900s;
}
}
gitlab.conf
server {
listen 80;
server_name gitlab.mczaiyun.top;
location / {
proxy_pass http://127.0.0.1:8006;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_read_timeout 900s;
}
}
node-red.conf
server {
listen 80;
server_name node-red.mczaiyun.top;
location / {
proxy_pass http://210.22.22.150:1862;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_read_timeout 900s;
}
}
tool.conf
,grafana.conf
,prometheus.conf
, scratch.conf
与fizz.conf
的内容一致,除了端口号不一样。
最后一步:启动网关Nginx代理
# 将config目录挂载到nginx的配置文件目录conf.d
# 将www目录挂载到nginx的/html目录
# 将cert目录挂载到nginx的cert目录
docker run -p 443:443 -p 80:80 --name nginx \
-v /home/fizz/nginx/config:/etc/nginx/conf.d \
-v /home/fizz/nginx/www:/usr/share/nginx/html \
-v /home/fizz/nginx/cert:/etc/nginx/cert \
-d nginx
写在最后
其中最主要是使用Nginx配置文件中的server_name
监听不同的域名访问,分别代理到不同的真实服务中,此外,http转发https,证书配置,以及websocket的转发。都是本次探索获取的知识点。
声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
红包
1
收藏
评论
打赏
- 分享
- 举报
评论
2个
手气红包
相关专栏
-
浏览量:2251次2020-04-24 18:04:21
-
浏览量:682次2023-08-21 11:47:40
-
浏览量:1843次2019-02-16 11:03:33
-
浏览量:11001次2020-11-23 10:25:22
-
浏览量:4205次2020-08-18 19:31:22
-
浏览量:1241次2019-06-18 13:45:49
-
浏览量:3829次2020-10-13 09:13:25
-
浏览量:1153次2023-06-07 14:32:02
-
浏览量:1759次2020-08-21 14:40:54
-
浏览量:2300次2020-07-28 19:16:36
-
浏览量:6815次2020-12-17 09:45:27
-
浏览量:1312次2019-12-20 09:28:00
-
浏览量:2874次2022-11-22 09:26:53
-
浏览量:6784次2021-06-24 10:38:30
-
浏览量:4241次2017-10-30 16:46:25
-
浏览量:1685次2020-09-23 11:15:05
-
浏览量:3939次2021-04-05 12:09:13
-
浏览量:1779次2020-07-14 20:19:14
-
浏览量:2678次2020-10-28 09:59:08
置顶时间设置
结束时间
删除原因
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
打赏作者
这把我C
您的支持将鼓励我继续创作!
打赏金额:
¥1
¥5
¥10
¥50
¥100
支付方式:
微信支付
打赏成功!
感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~
举报反馈
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明
审核成功
发布时间设置
发布时间:
请选择发布时间设置
是否关联周任务-专栏模块
审核失败
失败原因
请选择失败原因
备注
请输入备注
正在学习kong,确实是个好东西。
建议部署一个kong网关来把他们安全的串联起来