前言:因为碧舍项目老师要求上线,这是我第一次将本地项目部署到云服务器。部署的时候遇到了很多问题,最后成功部署完成项目,记录在这里,也方便像我这样的新手小白少走弯路。1、申请并配置云服务器登录阿里云,购买阿里云ECS,选择初学者一键配置(选择centos的linux服务器)。配置安全组:将前端、后端项目、数据库的对应端口添加到安全组配置中。Mysql默认为3306,授权对象设置为:0.0.0.0/0。配置完成。2.修改项目配置[1]。前端项目修改main.js中baseURL的localhost,所有localhost相关的地方都改成申请的阿里云服务器的公网IP,使用终端命令npmrunbuild打包项目生成一个dist文件夹,前端工程打包完成。[2].在后端工程中,修改数据库配置(properties.yml文件)中的localhost为申请的阿里云服务器的公网IP,修改各子工程和父工程的pom文件,添加以下配置:jar注意:使用jar包打包项目的好处是,不同于传统的war包打包方式,当项目上传到云服务器时,不需要下载并配置tomcat服务器,用jar包打包的项目就可以运行了(jar包是tomcat自带的)然后重新构建整个项目,使用idea工具maven侧边栏的操作按钮,按照以下顺序clean->compile->package->install,完成后在项目的target文件夹下生成xxx.jar,即为打包后的项目文件,后端项目打包完成。3.上传项目到云服务器[1]。下载最新版的xshell终端模拟软件并安装成功,打开,在“主机”中添加服务器ip,新建会话:连接会话:根据提示输入用户名和密码登录,并您可以远程连接到阿里云服务器。[2].安装文件传输软件Xftp主要用于云服务器中的文件可视化,减少linux命令。安装成功后,新建一个会话,添加主机、用户名、密码,点击确定。[3].上传的项目一般在云服务器的usr目录下新建一个文件夹,将前端项目打包好的dist文件夹和后端项目的jar包传送到该文件夹??下。4.云服务器配置[1]。前端nginx配置从linux官网下载对应版本的nginx压缩包(以tar.gz结尾),上传到阿里云服务器,使用如下命令解压nginx安装包(根据下载的nginx版本更改对应版本):tar-zxvfnginx-1.8.1.tar.gz进入nginx-1.8.1目录:cdnginx-1.8.1make编译安装:./configuremakemakeinstallinstallzliblibrarycd~wgethttp://www.zlib.net/zlib-1.2.11.tar.gztar-zxvfzlib-1.2.11.tar.gzcdzlib-1.2.11./configuremakemakeinstallinstallSSLyum-yinstallopensslopenssl-develinstallpcreyum-yinstallpcre-develnginx服务的基本操作启动服务:/usr/local/nginx/sbin/nginx这时候访问你服务器的公网ip地址。如果能打开如下页面,说明nginx启动成功:重启服务:/usr/local/nginx/sbin/nginx-sreopen查看服务:ps-ef|grepnginx查看配置:vim/usr/local/nginx/conf/nginx.conf配置nginx.conf文件(linux查找文件命令:whereisxxx.conf,编辑文件的linux命令:先cd到所在目录文件存好,然后使用vimxxx.conf),以fitnesshub-vue项目为例,添加如下配置:server{listen9000;服务器名称www.fitnesshub.com;#字符集koi8-r;#access_log日志/host.access.logmain;位置/{root/usr/myproject/dist;自动索引;indexindex.htmlindex.htm;#解决界面刷新后出现404的问题try_files$uri$uri//index.html;}}nginx.cnf完整配置如下:http{includemime.types;default_type应用程序/八位字节流;#log_formatmain'$remote_addr-$remote_user[$time_local]"$request"'#'$status$body_bytes_sent"$http_referer"'#'"$http_user_agent""$http_x_forwarded_for"';#access_log日志/access.logmain;发送文件;#tcp_nopush上;#keepalive_timeout0;keepalive_timeout65;#gzip上;服务器{听9000;服务器名称www.fitnesshub.com;#charsetkoi8-r;#access_log日志/host.access.logmain;位置/{root/usr/myproject/dist;自动索引;indexindex.htmlindex.htm;try_files$uri$uri//index.html;}#error_page404/404.html;#将服务器错误页面重定向到静态页面/50x.html#error_page500502503504/50x.html;location=/50x.html{根html;}#将PHP脚本代理到侦听127.0.0.1:80的Apache##location~\.php${#proxy_passhttp://127.0.0.1;#}#将PHP脚本传递给侦听127.0.0.1:9000的FastCGI服务器##location~\.php${#roothtml;#fastcgi_pass127.0.0.1:9000;#fastcgi_indexindex.php;#fastcgi_paramSCRIPT_FILENAME/scripts$fastcgi_script_name;#包含fastcgi_params;#}#拒绝访问.htaccess文件,如果Apache的文档根#与nginx的根一致##location~/\.ht{#denyall;#}}#另一个混合使用IP、名称和po的虚拟主机基于rt的配置##server{#listen8000;#听某个名字:8080;#server_namesomename别名another.alias;#位置/{#根html;#索引index.htmlindex.htm;#}#}#HTTPS服务器##server{#listen443ssl;#server_name本地主机;#ssl_certificatecert.pem;#ssl_certificate_keycert.key;#ssl_session_cache共享:SSL:1m;#ssl_session_timeout5m;#ssl_ciphersHIGH:!aNULL:!MD5;#ssl_prefer_server_cipherson;#位置/{#根html;#索引index.htmlindex.htm;#}#}}编辑完成后使用esc退出编辑保存,使用:wq+enter或qa!+enter退出文件编辑界面并重新加载配置文件:修改配置文件后需要重新加载配置文件/usr/local/nginx/sbin/nginx-s重新加载。至此nginx.conf文件配置好访问服务器ip地址,就可以看到自己的项目了。[2].后端工程配置从官网下载1.8版本的JDK(linux版),上传到云服务器并解压:tar-zxvfjdk-8u151-linux-x64.tar.gz配置JAVA环境:添加vim/etc/profile如下内容:exportJAVA_HOME=/usr/java/jdk1.8.0_151(替换成你的jdk目录)exportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexportPATH=$PATH:$JAVA_HOME/bin执行source/etc/profile查看安装状态java-version。然后安装linux版本的mysql操作系统:Centos7.4MySQL版本:MySQL5.7登录服务器1、下载数据库cdusr/local/src/wgethttps://repo.mysql.com//mysql57-community-release-el7-8.noarch.rpm2,安装mysqlyum-yinstallmysql57-community-release-el7-8.noarch.rpm3,查看mysql安装状态yumrepolistenabled|grepmysql.*4,查看mysqlserveryuminstallmysql-community-server5,启动mysqlsystemctlstartmysqldsetbootself-start:systemctlenablemysqldsystemctldaemon-reload然后先登录mysql获取默认密码,执行grep"atemporarypasswordisgeneratedforroot@localhost"/var/log/mysqld.log我这里的密码是S9vMy4eoPc.p登录mysqlmysql-uroot-p输入初始密码执行以下命令修改密码:ALTERUSER'root'@'localhost'由'你的密码'识别;或ALTERUSER'root'@'localhost'IDENTIFIEDWITHmysql_native_passwordBY'yourpassword';注意:Mysql8.0以后要求密码包含大小写字母、特殊符号、数字设置成功。通过exit退出MySQL;命令,然后用新密码重新登录,修改my.cnf文件配置。使用whereismy.cnf或者whichmysql执行上面的路径,加上--verbose--help|grep-A1'Defaultoptions'可以看到my.cnf的路径找到文件的位置,然后vi/xxx/my.cnf(通常是/etc/my.cnf)如果初始文件如下,你不需要配置它,如果没有,你需要配置文件的内容如下:[mysqld]##删除前导#并设置为MySQL中最重要的数据#缓存的RAM量。从专用服务器总RAM的70%开始,否则为10%。#innodb_buffer_pool_size=128M##删除前导#以打开一个非常重要的数据完整性选项:logging#备份之间二进制日志的更改。#log_bin##删除前导#以设置主要对报告服务器有用的选项。#服务器默认值对于事务和快速SELECT更快。#根据需要调整大小,试验以找到最佳值。#join_buffer_size=128M#sort_buffer_size=2M#read_rnd_buffer_size=2Mdatadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sock#建议禁用符号链接以防止各种安全风险symbolic-links=0log-error=/var/log/mysqld.log"/etc/my.cnf"27L,960C上传sql数据库文件到云服务器并执行本地先打包sql文件(选择导出),然后打包打包好的sql文件(这里以fitnesshub.sql为例)上传到/tmp目录mysql执行以下命令导入sql文件:createdatabasefitnesshub(newdatabase)usefitnesshubsetnamesutf8mb4source/tmp/fitnesshub.sqland然后屏幕会一直滚动,最后提示Importwassuccessful。MySQL5.7设置远程访问选择数据库使用mysql;打开远程连接root用户名%everyonecanaccesspasswordpasswordGRANTALLPRIVILEGESON*.*TO'root'@'%'IDENTIFIEDBY'yourpassword'WITHGRANTOPTION;冲洗特权;或创建用户'root'@'%'通过'yourpassword'用mysql_native_password标识;使用授予选项将*.*上的所有权限授予'root'@'%';刷新权限;restartmysqlservicemysqldrestart如果执行以上步骤后仍然无法远程连接,那么我们需要检查服务器防火墙是否开启了serviceiptablesstatus如果开启了防火墙,请关闭serviceiptablesstop或者开启防火墙开放端口3306#开启防火墙systemctlstartfirewalld#开启3306端口firewall-cmd--zone=public--add-port=3306/tcp--permanentfirewall-cmd--reload修改mysql数据库默认编码为utf8mb4修改/etc/my.cnf配置文件,在[mysqld]下添加编码配置,如下:character_set_server=utf8mb4init_connect='SETNAMESutf8mb4'编辑保存后重启mysql服务:systemctlrestartmysqld查看mysql数据库代码:showvariableslike'%特点%';在这里你可以远程连接。mysql远程连接在navicat新建一个mysql连接,输入你申请的阿里云服务器的公网IP、账号(root)和密码,就可以远程登录了。5.运行部署的项目[1]。前端工程由nginx反向代理启动,进入nginx安装目录下的sbin目录,执行以下命令:./nginx-c/usr/local/nginx/conf/nginx.conf说明:● 其中/usr/local/nginx/conf/nginx.conf是您自己的nginx.conf路径。● -c参数指定要加载的nginx配置文件的路径。如何在linux中重启nginx?顺利重启:1、进入nginx安装目录下的sbin目录2、执行如下命令:./nginx-sreload前端项目启动完成[2]。后台工程启动,运行命令:java-jarxxx.jar然后返回Car,可以在xshell中看到工程的启动状态。如果有多个服务需要开启,运行上面的linux命令回车,然后输入上面的命令继续回车,保持项目在云服务器上运行。linux命令nohupjava-jarxxx.jar&关闭java进程ps查看进程IDps-ef|grep你的jar包名后面会显示两个进程信息,选择带xxx.jar的那个(一般是第一个)杀掉进程kill-9你的java进程号6.到这里结束springboot和vue前端后端分离项目已成功部署在云服务器上。登录公网IP+前端项目端口号即可正常访问你部署的项目。最后附上linux命令百科地址:https://www.linuxcool.com本文与掘金社区文章同步更新:https://juejin.cn/post/696314...