云服务器部署那点事儿 Tomcat+mysql+redis

前两天看到云服务器在做618的活动,马上六一了,想着整一台送自己当六一礼物玩玩,这俩天被这六一礼物快整奔溃了,不过这时又有点小膨胀了,你懂得 ~ ~

写个文章记录一下前两天的奔溃过程吧,有不足的地儿欢迎指正

  1. 登录服务器
  2. 安装mysql和redis
  3. 检查mysql和redis是否正常
  4. 安装Tomcat
  5. 开放端口
  6. 安装Nginx
  7. Nginx遇到的坑
  8. 项目部署
  9. 域名解析备案

1、我的服务器选用的 CentOS 7.6 64bit,据说这个版本稳定,遇到的问题,也好搜索,也不知道是真是假

这个页面中红色框里的公网ip和内网ip之后的步骤中会经常用到,看到这个就可以用公网ip登录到云服务器了,用终端登录,命令:ssh root@公网ip地址  回车 输入密码,这里的密码如果没有重置过密码的话,初始密码在站内信中,总站内信里找到后就可以登录了,初始密码太难记建议先修改,因为修改密码后需要重启服务器,之后之后都部署了再重启会有不必要的麻烦。

2、登录到服务器后 就可以进行安装操作了,我先安装的mysql、redis,这里需要注意的是下边命令里的密码123456最后提前修改成复杂的密码,避免最后都操作完了才感觉到密码太简单又得重新修改密码的麻烦。还需要注意的就是要把mysql和redis的data目录提前挂载出来,这样便于之后的操作,如果需要也可以把mysql的conf目录页挂载出来,避免之后修改my.ini文件。这两命令执行过程有点慢需要耐心等待下。

上传文件我用的是FileZiila,可以先看下步骤8

备注:这里说明下,有些博文里写里需要先docker search,在docker pull,然后在docker run,这样的步骤也可以,不过我把前两部省掉了,直接docker run  他会默认自动执行前两步

安装mysql命令:

docker run --name mysql -p 3306:3306 -v  ~/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

安装redis命令:
docker run -d -p 6379:6379 -v $PWD/redis:/data -d --name redis  redis:4.0 --appendonly yes --requirepass "123456"

3、执行完上边命令后 ,再执行命令 docker ps   看下redis和mysql是否安装完成并正在运行

4、数据库安装完成了,接下来安装Tomcat,整这个时我就没那么顺利了,安装成功了,日志也正常就是本地访问不到远端,奇了个怪了,执行完下边的安装命令,用docker ps命令查看,发现Tomcat也正常在运行了,然后从本地用http://公网ip:8087 访问,结果很失望,那只猫愣是没出来,这是为什么呢?
 

 

备注:这里可以把webapps、logs目录提前挂载出来,方便之后找日志和部署程序,端口我是讲容器内的8080端口映射到容器外的8087端口,这里的端口可以提前映射成其他端口,这样方便之后遇到问题时排查

安装Tomcat命令

docker run -d --name=tomcat-test2 -p 8087:8080 -v ~/tomcat/webapps:/usr/local/tomcat/webapps -v ~/tomcat/logs/:/usr/local/tomcat/logs tomcat

 

Tomcat安装成功了,猫没出来?

a、网络没通?

ping 公网ip   通着的

b、webapps有问题?

果然这里有问题,最新版的Tomcat webapps里是空的,webapps里的内容都在webapps.dis的文件家里,需要把dis文件夹下的内容都复制到webapps下,或者是webapps重命名一下

命令进入Tomcat容器 以下路径
docker exec -it c110e319cdd1(启动的Tomcat容器的容器id) /bin/bash

ls

cp -r webapps.dist/* webapps

执行完复制命令后,可以看到webapps里有内容了,心想这下猫应该出来了,于是重启了Tomcat,结果又失望了,猫又没出来,心里默念了句 大爷。。。再想想,还有啥原因呢,于是想到了curl,用他来看下,用curl命令查看后,看到了一堆html,细一看,这不就是那只猫的html吗,这么说Tomcat肯定是正常的,服务器上容器外也可以访问到,那问题就处在本地到服务器这之间了

重启命令: docker restart  Tomcat容器id

命令:   curl  内网ip:8087

5、本地到服务器之间会有什么问题呢?网络?不会 都可以登录到服务器。端口?于是看了下端口映射,这个在安全组里设置,可以先将一键方通设置了,它默认开启红色框里的端口,如果有其他端口需要开放,点添加规则按钮,添加蓝色框里的内容即可,本想着放开8087端口应该就可以了,结果还没好,擦。。。这是为啥呢?度娘了半天也没果,想想要不整下Nginx,通过它转发下

 

6、Nginx安装配置,conf和www目录需要提前挂载出来便于之后使用,安装完后docker ps看到Nginx容器也正常运行了,这样随便写个HTML 丢到www里,用  http://公网ip    访问,咦~  静态页面的内容出来了,这样本地到Nginx这条路通了,接下来就需要改Nginx配置,把Nginx到Tomcat这条路也通了那就ok了。

安装命令:

docker run -d -p 80:80 --name nginx-web -v ~/nginx/www:/usr/share/nginx/html -v ~/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v ~/nginx/logs:/var/log/nginx nginx

 

7、Nginx遇到的坑,由于我的配置是直接百度搜的粘贴来的,所以直接就掉坑里了,在conf里有个user属性,这个一定要提前改成自己的用户,不然你真的会后悔的,下边红色框框里的,改完这里再将下边的代码粘贴到 http{} 里,注意修改注释里一、二、三步的内容,这样Nginx部署就配置完了,这样在从本地打开http://公网ip   呀!这只猫终于出来了。。

 

upstream tomcattest {   #第三步,设置本地计算机tomcat服务器具体的 ip+端口号
    server 172.21.0.9:8087;
}
server {
    listen       80;
    server_name  beiji.run;   #第一步,我们在网页端输入的网址
    #charset koi8-r;
    #access_log  logs/host.access.log  main;
    location / {  #第二步,我们的"/"符号表示拦截所有请求
        proxy_pass http://tomcattest;  #第二步中,设置 http:// +映射访问的网址
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

8、部署项目

将项目打包上传到服务器,重启Tomcat,然后http://公网ip  就可以访问到项目首页了。

备注:这里打包时记得把mysql和redis的链接改掉,改时记得不要用localhost,要用内网ip,因为docker是隔离的,localhost或127.0.0.1是链接不到的 

上传我用的是FileZiila,直接输入红框里的公网ip、用户名、密码 快速链接就可以了。

9、域名解析、备案

通过公网ip可以访问到了,但通过域名这时还访问不到,在Nginx配置那部我们已经配置了域名,这里需要先坐下域名解析,做完解析后,如果您的域名之前已经备过案,那就可以通过域名访问到了

备案:因为我的域名购买还没48小时所以备不案,这里就先不介绍了,之后再补充。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值