记录首次在云服务器部署spring boot项目,并实现域名访问

记录首次在云服务器部署spring boot项目,并实现域名访问第一次写博客,对初次服务器部署做一个记录,写的有错或者纰漏欢迎指正文章目录前言一、服务器准备二、安装需要的东西1.jdk2.redis3.MySQL部署项目三.域名访问总结在看.

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

第一次写博客,对初次服务器部署配置做一个记录,写的有错或者纰漏欢迎指正


前言

看到这个写作页面的时候我是懵的,居然还有模板(我像个土包子一样)

情况是这样的,年前老师教过我们部署项目到虚拟机,我最近突然想到为什么不能部署到服务器上,用域名访问,我手中刚好有服务器,也有域名。

所以
我看了很多文章,因为我不知道域名解析到服务器后,服务器应该怎样去绑定
以前都是直接拿bt一键绑定,没有去深究过具体,在看了大量文章后,略懂了一点,直接开始实战


一、服务器准备

因为之前虚拟机部署是用的centos7加docker,所以在服务器上也继续用这两个,熟悉一点
我用的是腾讯云的服务器,之前系统上有bt面板,而且有其他东西,所以备份后重装了,重装系统页面有docker容器的镜像,放在以前的话,我会选择先重装centos,再手动安装docker,但是这次我直接用了腾讯的镜像,体验一下

ps:之前学习的时候,docker容器是需要改仓库地址的,不然下载巨慢,但是用国内的服务器自带的docker的话是不用改仓库的,因为仓库地址都在中国

在这里插入图片描述


服务器上除了docker以为,为了项目能运行,还需要一些其他东西

jdk
redis
MySQL

二、安装需要的东西

1.jdk

因为我项目用的jdk是1.8,所以这里我也安装1.8

yum -y list java*

获取到的列表中下载了java-1.8.0-openjdk.x86_64

 yum install -y java-1.8.0-openjdk.x86_64

安装结束后检查一下安装情况,和Windows一样

java -version

2.redis

redis我电脑上用的其实是5,服务器上我也不知道装的哪个版本,因为我是直接拉取的,没有加版本号,应该区别不大,如果后期有问题再换版本
现在有了docker就可以用这个命令直接从镜像仓库拉取,速度也会快很多

docker pull redis

拉取完成后查看一下镜像,是可以看到拉取的镜像的

docker images

安装完成后需要设置自启动

docker update redis --restart=always

然后配置启动参数,因为服务器只放一个项目,所以直接映射到6379

docker run -p 6379:6379 --name redis -d redis redis-server

然后查看一下启动情况

docker ps

3.MySQL

项目驱动是8.0的,这次我加上了版本号下载,我害怕会下载低版本的

docker pull mysql:8.0.25

和redis一样,需要设置自启动

docker update mysql --restart=always

然后启动,启动参数的话,我也没具体了解,大概就是docker run是启动命令,-p是映射端口用的,-e后面是初始化的账号和密码,其他的就不懂了,有空再了解了解

docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456  -d mysql:8.0.25  --lower_case_table_names=1

到这里基本上需要的都安装完了,与域名有关的后面再写

部署项目

这一步的话就简单了,就是上传jar包,然后直接用java命令执行。
但是这样有个不好的地方,就是ssh断开或者关了窗口,服务也就停了,运行的话,应该可以写个Linux定时执行命令来实现每天定时运行,然后到点中断,这个后面再学习一下

忘了,还有数据库

三.域名访问

其实刚开始是我把这个想复杂了,域名解析直接解析到服务器公网就行了,然后域名加项目设定的端口号就可以访问了,我一直在想域名解析过来,服务器怎么绑定到项目的事,但是到这里好像瞬间懂了,域名解析前,公网ip加端口号是可以直接访问项目的,域名解析后域名加端口号也可以访问,那就说明这里域名代替了ip,通过不同端口实现访问不同项目,不加端口号是访问不到的。
现在我不希望端口显示,我希望可以直接用域名就能访问到项目,剩下的可以用nginx做反向代理来实现了

nginx安装

在/usr/local文件夹下创建nginx文件夹,用来存放安装包

安装nginx需要安装编译环境
GCC-C++
openssl
zlib
pcre

草鸟教程上是把命令写成了一句话

yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel

感觉不容易理解
对我这种菜鸟,还是拆分成四句容易看懂,不过效果是一样的
安装c++

yum install gcc-c++

安装ssl,这个好像我暂时用不到,但是以防没有这个运行不了,也还是安装一下把

yum install -y openssl openssl-devel

安装pcre

yum install -y pcre pcre-devel

安装zlib

yum install -y zlib zlib-devel

然后就可以下载nginx了

wget https://nginx.org/download/nginx-1.19.9.tar.gz

安装我参考了Linux安装nginx这篇文章,写的很详细(我上面安装命令也是和这个一样的)

安装的话就不提了,看这个文章就行

但是文章第六条和第七条可能不是那么好理解,有二义性,容易理解为只是查看一下安装位置,sbin还在之前的目录
这个地方其实是查找到安装位置,然后切换到安装位置才能看到这个sbin文件夹
在这里插入图片描述

尤其注意后面端口开放,我在虚拟机测试的时候,安装完也是因为端口没开发,访问不了,幸好大佬提到了这一点,不然又要费老大劲去查了(感谢大佬)

实际服务器部署的时候,我这个端口是开放的,就没有再做修改

nginx启动以后访问ip,不加端口号可以看到这个内容就是没有问题了,端口号是默认的80
在这里插入图片描述
现在只需要把端口号改成项目的端口号,隐藏端口,并且用域名来访问,举个例子,例如项目本地访问是localhost:8080,隐藏端口后就成了localhost,再用域名访问就是www.xxx.com,后面就不再出现端口号了

nginx安装后默认就是隐藏端口号的,所以不需要修改
然后就是代理域名,这里我依旧遇到了问题

我的项目端口是8080,在另外一个窗口也已经启动了项目,ip访问正常,域名加端口号也是正常的,唯独域名访问只能出现默认的nginx页面

在这里插入图片描述
我的server块是这样配置的,之前有文章提到需要改hosts文件不确定是否与这个有关系

在hosts文件里面加了域名也没有变化

后来跟老师排查了一下,发现我犯了个低级错误,我修改的是解压位置的,而不是安装位置的配置文件

重新修改以后访问发现还是无法访问,带80端口也访问不到默认页面了,直接报502错误(现在也不确定原因,有人指点一下吗)
在这儿卡了一下午,第二天我安装另外一个方法,新建了一个nginx.conf,指定为配置文件,curl了一下,各个端口都是拒绝连接,然后我把指定的配置文件删了,又确认了一遍,确认nginx.conf和hosts文件没有问题之后。我启动了项目,这时候我curl一下发现居然可以直接通过域名访问了。

想了想,应该是昨天重载没有刷新,也有可能是我浏览器缓存没有更新,回想一下,我昨天修改配置以后用的都是重载命令,也可能与这个有关系。

这是我最后改的内容
在这里插入图片描述

展示一下最终成果,做个记录

在这里插入图片描述

总结

第一次在CSDN写博客,这次的内容是我这几天在学习的内容,做了一个实战,包括文章都是边实战边写出来的,所以前前后后光写就写了三天,过程中也遇到一些其他小问题,卡住之后就查百度,看社区,看各种平台的文章,不过最后也总算是成功了,文章里只写了一部分遇到的问题,其他的都是一些简单问题,很容易排查,还有操作也只写了一些对我而言的重点,基础的就没写。

对于一些技术点,可能我的理解有误,写的不对,欢迎指导。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/186499.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • MYSQL mediumText大字段存储错误问题排查「建议收藏」

    MYSQL mediumText大字段存储错误问题排查「建议收藏」思路:1:由于日志查询问题,没看到日志之前怀疑:MYSQL数据库字段长度是否真的足够,排查问题未果。2:步骤一未果,看日志了解错误信息如下Name”:”com.javartisan.audience_management.jsf_service.service.AudienceService”}org.springframework.orm.jpa.JpaSystemExcepti…

  • java sql拼接字符串_SQL中字符串拼接

    java sql拼接字符串_SQL中字符串拼接1.概述在SQL语句中经常需要进行字符串拼接,以sqlserver,oracle,mysql三种数据库为例,因为这三种数据库具有代表性。sqlserver:select’123’+’456′;oracle:select’123’||’456’fromdual;或selectconcat(‘123′,’456’)fromdual;mysql:selectconcat(‘123’,’…

  • scrt远程连接工具怎么切换窗口

    scrt远程连接工具怎么切换窗口scrt远程连接工具怎么切换窗口

  • 报关单上常出现的英文单词缩写是_报关单用英文怎么说

    报关单上常出现的英文单词缩写是_报关单用英文怎么说  一.单证(Documents)  进出口业务涉及的单证总的包括三大类:1。金融单证(信用证、汇票、支票和本票)  2.商业单证(发票、装箱单、运输单据、保险单等)3。用于政府管制的单证(许可证、原产地证明、商检证等) declarationform报关单 Threesteps—declaration,examinationofgoodsandreleaseofgoods,

  • C# 远程唤醒(远程开机)

    C# 远程唤醒(远程开机)C#远程唤醒(远程开机)近日,小白要用到远程开机的功能,网上大多介绍的是MagicPacket的工具。实际上,此MagicPacket是AMD公司开发的,请在google.cn中搜索MagicPacketTechnology。原理上我们不用深入,实现上是发一个BroadCast包,包的内容包括以下数据就可以了。FFFFFFFFFFFF,6个FF是数据的开始,紧跟着16次

  • oracle数据库学习总结在(一)

    oracle数据库学习总结在(一)对oracle已经学习三个多月了,看了不少东西,oracle数据库很复杂,光概念就很多,为了对oracle有更好的认识我打算把我这段时间的学习做下总结,为结下来的学习打下好的基础。  总结目录:1.设计数据库,设计出结构优化的数据库,可扩展性好。2.数据库的备份和恢复,权限的分配3.优化数据库,数据库性能调优。4.数据库开发,存储过程,触发器,函数等后端数据库程序,给系

    2022年10月21日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号