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

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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • notepad++正则表达式替换字符串

    notepad++正则表达式替换字符串则表达式是一个查询的字符串,它包含一般的字符和一些特殊的字符,特殊字符可以扩展查找字符串的能力,正则表达式在查找和替换字符串的作用不可忽视,它能很好提高工作效率。EditPlus的查找,替换,文件中查找支持以下的正则表达式:表达式说明/t制表符./n新行..匹配任意字符.|匹配表达式左边和右边的字符.例如,”ab|bc”匹配”ab”或者”bc”….

    2022年5月17日
    43
  • mxnet 源码阅读 2

    mxnet 源码阅读 2

    2022年3月5日
    40
  • github下载文件很慢(github打开慢)

    方法:更改hosts文件第一步:查询ip地址使用https://www.ipaddress.com/查询下面3个网站的ip地址github.comgithub.global.ssl.fastly.netcodeload.github.com2020.8.21查询结果如下(请勿直接复制):140.82.112.4github.com199.232.69.194github.global.ssl.fastly.net140.82.113.10codeload.github.com第二步

    2022年4月16日
    47
  • 关于mysql的时区(下):如何设置mysql的时区

    关于mysql的时区(下):如何设置mysql的时区一、如何设置mysql时区1、命令1)查时区:showvariableslike’%time_zone%’返回有2行记录,要看time_zone变量的值,不需要看system_time_zone。若值为SYSTEM表示取值跟system_time_zone保持一致。system_time_zone的值是启动mysql服务的时候读取了操作系统的值,除非重新启动mysql服务重读否则这个值不变2)设置会话时区:settime_zone=’+8:00’仅对当前会话有效,在当前窗口立即生效

    2025年6月15日
    2
  • 如何使用keil 5 编写 51单片机 工程

    如何使用keil 5 编写 51单片机 工程目前我们通常编写51程序使用的是keil4,而好多编写STM32等单片机程序的使用keil5。那么如何在keil5中兼容51和STM32程序编写,省去切换版本的繁琐呢?很简单只需两步就可以完成。下面这个方法针对已破解keil5的stm32等一系列。这个肯定是最常见的,因为破解keil5然后编写32工程的教程一大把。1、首先下载编写51的相关东西。可以在官网上下载,例如百度keil官

    2022年5月24日
    50
  • vue中的横向排列_vue + ElementUI 的横向表格代码「建议收藏」

    vue中的横向排列_vue + ElementUI 的横向表格代码「建议收藏」{{tableData[index*2-2].key}}{{tableData[index*2-2].value}}{{tableData[index*2-1]!==undefined?tableData[index*2-1].key:‘‘}}{{tableData[index*2-1]!==undefined?tableData[index*2-1].value:‘‘}}…

    2022年8月11日
    54

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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