问题定位
问题描述:
- 最近部门部门各个系统的URL又更新了,原本浏览器就已经存的地址废除了。
- 所有人的地址都要更新地址:产品、前端、后端。
解决方案:
- 搭建一个小网站:包含需要的网址(URL资源中心)
- 配置简单的域名
- 更新部署方便
需要资源:
- 前端小伙一枚(自己不想写前端界面)
- 服务器一台(可以要一台云主机)
- 域名一枚(内网的DNS)
流程解析
整体流程
- 给前端小伙说了目的(他也很支持)
- 大致画了简单的草图(简单草稿那种)
- 他搞定了界面:大概20分钟:主要是找URL花了较多时间
- 自己上传到公开的gitee仓库
- 我找李子要服务器:10分钟
- 安装Docker
- 拉Nginx镜像
- 启动容器:挂载文件
- 排查Server 500的错误(docker装vim)
- 愉快的成功了,小伙伴们分享😊
前端界面(Vue.js)
这个没学过,估计不难,最近优先学后端架构。
安装Docker(CentOS)
网上找到了这个教程很不错👍
- 查看内核版本(内核版本>3.10):
uname -r
- 更新yum包(root权限):
sudo yum update
- 卸载旧版本(可选):
sudo yum remove docker docker-common docker-selinux docker-engine
- 安装需要的软件包(yum-util提供yum-config-manager功能,另外两个是devicemapper驱动依赖的)
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
- 设置yum源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
- 查看所有仓库中所有docker版本,并选择特定版本安装
yum list docker-ce --showduplicates
- 安装docker
sudo yum install docker-ce # repo中默认只开启stable仓库,故这里安装的是最新稳定版17.12.0
sudo yum install
# 例如:sudo yum install docker-ce-17.12.0.ce - 启动并加入开机启动
sudo systemctl start docker
sudo systemctl enable docker
- 验证安装是否成功(有client和service两部分表示docker安装启动都成功了)
docker version
Docker拉取Nginx镜像,配置Nginx
找的教程,一步一步来就能解决教程很全,不过有坑
- 拉取镜像
docker pull nginx
- 创建挂载目录
mkdir -p /data/nginx/{conf,conf.d,html,logs}
- 安装vim
yum install vim
- 配置文件
vim /data/conf/nginx.conf
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main ‘$remote_addr - $remote_user [$time_local] “$request” ‘
‘$status $body_bytes_sent “$http_referer” ‘
‘“$http_user_agent” “$http_x_forwarded_for”’;
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
vim /data/conf/nginx.conf
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
autoindex on;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
整体流程
将容器中nginx的80端口映射到本地的80端口
docker run –name nginx81 -d -p 80:80
-v /data/nginx/html:/usr/share/nginx/html
-v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
-v /data/nginx/logs:/var/log/nginx
-v /data/nginx/conf.d:/etc/nginx/conf.d
-d nginx:latest
问题解析
- nginx配置注意事项:
nginx配置的资源地址必须是容器内部的地址,即映射的内部地址
- nginx错误定位:
在容器内查看错误日志:
tail -f error.log
- docker命令:
docker -p 宿主机端口:容器内端口 -v 宿主机文件路径:容器文件路径 -d 启动的镜像
- 整个过程大致花了一个小时:
主要耗时在:nginx的配置错误导致一直报500的错误(重定向错误)
问题定位不清楚,一直在纠结在挂载文件上(实际上是nginx的配置问题)