Linux之单机项目部署

1.安装配置JDK

1.1.创建目录并上传文件

/usr/local目录下创建mytools目录,用于存放后续所有的安装文件。

# 创建目录
mkdir /usr/local/mytools
# 上传文件
rz jdk-8u151-linux-x64.tar.gz

1.2.解压JDK压缩包

将上传至/usr/local/mytools/目录下jdk压缩包文件,解压至指定的/usr/local目录中

# 切换目录
cd /usr/local/mytools
# 解压文件
tar -zxvf jdk-8u151-linux-x64.tar.gz -C /usr/local

在解压的时候 -C 是解压到指定目录中,一定要加-C参数,而且区分大小写的。 &&可将多条命令合成一行

cd /usr/local/mytools && tar -zxvf jdk-8u151-linux-x64.tar.gz -C /usr/local 

1.3.配置JDK环境变量

执行 vim /etc/profile 命令,在文件最后添加如下内容。

#java environment
export JAVA_HOME=请修改JDK解压路径
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin

注意!请修改export JAVA_HOME=请修改JDK解压路径对应的JDK路径。

1.4.设置环境变量生效

# 设置环境变量生效,一定要执行!!!
source /etc/profile
# 查看环境变量是否配置成功
java -version

2.安装配置Tomcat

2.1.上传Tomcat并解压

将tomcat压缩包文件上传至/usr/local/mytools目录,并解压到/usr/local目录中。

# 上传Tomcat
rz apache-tomcat-8.5.20.tar.gz
# 解压Tomcat到指定目录
tar -zxvf apache-tomcat-8.5.20.tar.gz -C /usr/local

2.2.启停Tomcat

# 切换目录
cd /usr/local/apache-tomcat-8.5.20/bin

# 通过startup.sh方式启动Tomcat

./startup.sh

# 通过shutdown.sh方式停止Tomcat

./shutdown.sh

# 通过catalina.sh方式启动Tomcat

./catalina.sh run

tomcat启动后,外部浏览器无法访问,原因:防火墙中8080端口未开放。而CentOS7防火墙firewalld默认是开启的,下面记录如何使用firewalld开放Linux端口:

# 开启端口

firewall-cmd --zone=public --add-port=8080/tcp --permanent

# 删除指定端口

firewall-cmd --zone=public --remove-port=8080/tcp --permanent

# 查询指定端口号是否开启:

firewall-cmd --query-port=8080/tcp

# 重启防火墙(不重启以上的设置是不会生效的):

firewall-cmd --reload

# 查询有哪些端口是开启的:

firewall-cmd --list-port

如何查看远程服务器的日志:

# 切换目录

cd /usr/local/apache-tomcat-8.5.20/logs

# 实时查看日志文件

tail -f catalina.out 
  
# 实时查看日志文件后一百行 

tail -100f catalina.out    

查看tomcat启动进程以及使用如何强制杀掉进程:

# 查看tomcat启动进程信息

ps -ef|grep java

# 强制杀掉进程

kill -9 进程PID

2.3.Tomcat自启动配置

切换到指定目录下,并上传tomcat.service文件。

# 切换目录

cd /usr/lib/systemd/system

# 上传tomcat.service文件

rz tomcat.service

# 编辑tomcat.service文件

vim tomcat.service

# 编辑tomcat.service文件
改成我们自己的路径(我自己的都放在/usr/local/里面)

修改tomcat.service文件中的tomcat和jdk的路径

[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
Environment='JAVA_HOME=/usr/local/jdk1.8.0_151'
Environment='CATALINA_PID=/usr/local/apache-tomcat-8.5.20/tomcat.pid'
Environment='CATALINA_HOME=/usr/local/apache-tomcat-8.5.20/'
Environment='CATALINA_BASE=/usr/local/apache-tomcat-8.5.20/'
#Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'

PIDFile=/usr/local/apache-tomcat-8.5.20/tomcat.pid
ExecStart=/usr/local/apache-tomcat-8.5.20/bin/catalina.sh start
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

配置Tomcat自启动服务:

# 设置自动启

systemctl enable tomcat  

# 重载服务

systemctl daemon-reload

# 启动服务

systemctl start tomcat

重启或关闭虚拟机:

# 重启

reboot 或者 shutdown -r now

# 关机

poweroff 或者 shutdown -h now

3.安装配置MySQL

官网下载MySQL5.7.30的RPM安装包。

3.1.卸载CentOS7系统自带的mariadb

先检查有 没有安装mariadb数据库。如果有安装,则卸载mariadb

# 先检查有没有安装mariadb 

rpm -qa|grep mariadb

# 卸载

rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64

# 再次查看,mariadb已删除

rpm -qa|grep mariadb

3.2.安装依赖库

安装libaio、perl、net-tools等库。

yum -y install libaio perl net-tools

3.3.上传MySQL并解压

mysql-5.7.30-1.el7.x86_64.rpm-bundle.tar文件上传至/usr/local/mytools目录,创建mysql目录并将安装文件解压到此目录。

# 切换目录

cd /usr/local/mytools

# 上传MySQL

rz mysql-5.7.30-1.el7.x86_64.rpm-bundle.tar

# 创建mysql目录

mkdir mysql

# 解压

tar -xvf mysql-5.7.30-1.el7.x86_64.rpm-bundle.tar -C /usr/local/mytools/mysql

3.4.安装MySQL

切换至/usr/local/mytools/mysql目录,并逐一安装MySQL对应服务组件。

#进入到mysql目录下

cd /usr/local/mytools/mysql

#开始安装,-ivh 其中i表示安装,v表示显示安装过程,h表示显示进度

rpm -ivh mysql-community-common-5.7.30-1.el7.x86_64.rpm

rpm -ivh mysql-community-libs-5.7.30-1.el7.x86_64.rpm

rpm -ivh mysql-community-client-5.7.30-1.el7.x86_64.rpm

rpm -ivh mysql-community-server-5.7.30-1.el7.x86_64.rpm

以上组件安装完成之后,直接启动mysql服务并完成初始化。

systemctl start mysqld

安装完成后的服务名叫mysqld

3.5.配置MySQL

3.5.1.修改登录密码

查询生成的临时密码并登录mysql。

# 查询临时密码

grep "password" /var/log/mysqld.log
2022-10-12T13:19:16.313408Z 1 [Note] A temporary password is generated for 
root@localhost: o8N#/CfWD+sh

# 登录mysql
mysql -u root -p

 

 如果把密码复制了,提示有语法错误,是因为包含特殊字符(如 %&()$# 等)的命令

我们只要把密码用单引号或者双引号包裹起来,像这样

 因为是本地测试环境,所以想把密码改的简单点。修改MySQL的密码策略及密码长度。

# 查看mysql初始的密码策略

mysql> SHOW VARIABLES LIKE 'validate_password%';

# 设置密码校验策略(0 or LOW),要不密码太LOW不让你过

mysql> set global validate_password_policy=0;

# 设置密码校验长度,要不密码太短不让你过(多次测试发现密码最小长度为4位)

mysql> set global validate_password_length=4;
# 更新密码

mysql> set password = password("新密码");

# 输入后使修改生效

mysql> FLUSH PRIVILEGES;

# 退出mysql

mysql> exit

 授权外网登录权限:登录mysql

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '1234' WITH GRANT OPTION;

刷新权限

flush privileges;

MySQL访问端口3306添加到firewalld防火墙允许访问列表中。

firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-port
firewall-cmd --query-port=3306/tcp

把我们的脚本也放到tools文件夹里面去

exit

ls

mysql  -uroot  -p密码

创建数据库:

#创建数据库
create database vue; 

#使用数据库

use vue;


#导入sql文件
source /tools/vue.sql;

查看

select * from 表名;

exit

把后台跑起来,将我们准备好的jar/war包以解压方式打开

进入WEB-INF目录中

点击classes文件夹

找到jdbc.properties文件把里面的:

 都做好后,包jar/war包放到tomcat下的webapps:

cd /usr/local/apache-tomcat-8.5.20/

#进入apache-tomcat-8.5.20/下面的webapps

cd webapps/

进入webapps后把jar/war包

rz 

4.安装Nginx

4.1添加Nginx官方yum源

添加 nginx 官方提供的yum源,这个过程需要联网且时间较长,请耐心等待。

rpm -Uvh http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.14.2-1.el7_4.ngx.x86_64.rpm

Linux里rpm包到底是干什么用的?

Linux RPM全称是“RedHat Package Manager”,最早是Red Hat公司开发的,后来在CentOS、Fedora、SUSE都用它。而rpm包则是软件编译完成后按照RPM机制打包起来的一个文件,可以用rpm命令安装的一个软件安装包,它省去了Linux软件安装中编译的步骤,安装成功后软件就可以用了。

4.2.使用yum安装Nginx

yum -y install nginx

yum方式安装nginx,它的安装根目录为/etc/nginx。

 查看nginx版本:

rpm -qa | grep nginx

4.3.配置防火墙

将nginx默认访问端口80进入到防火墙中。

#开放端口和刷新、查看

firewall-cmd --zone=public --add-port=80/tcp --permanent &&
firewall-cmd --reload && 
firewall-cmd --list-port

4.4.启动后效果

# 启动nginx服务

systemctl start nginx

# 查询nginx服务启动状态

systemctl status nginx

启动成功后,在浏览器中输入访问地址,效果如下:

 

5.SPA项目发布

5.1.虚拟域名设置

修改window系统中hosts文件,添加虚拟域名映射关系。文件位置:C:\Windows\System32\drivers\etc\hosts

另外,此文件有可能出现由于当前用户权限不够,出现无法修改的情况?解决方案:将此文件复制到d硬盘任一目录,修改后,再复制替换C:\Windows\System32\drivers\etc\hosts原文件

 

 

5.2.SPA项目打包

第一步:HbuilderX打包vue项目白屏问题。

将项目目录下的config/index.js文件中,将build对象下的assetsPublicPath中的“/”,改为“./”后。

 

module.exports = {
    dev: {
        // Paths
        assetsSubDirectory: 'static',
        assetsPublicPath: '/',
        proxyTable: {},
        ...
    },
    build: {
        // Template for index.html
        index: path.resolve(__dirname, '../dist/index.html'),

        // Paths
        assetsRoot: path.resolve(__dirname, '../dist'),
        assetsSubDirectory: 'static',
        //修改前
        //assetsPublicPath: '/',
        //修改后
        assetsPublicPath:'./',
        ...
    }
}

 

第二步:HbuilderX打包vue项目,element-ui的icon图标无法正常显示问题。

使用vue-cli3脚手架搭建的项目,在打包文件上服务器的时候,其他的css和js样式都能正确加载出路径,但是element的icon图标却不能正常加载出来。事实上是打包时候读取的文件路径多了两层,找到build/utils.js目录中的路径,看看function generateLoaders();方法, 指定该选项时提取CSS发现少了个公共路径,加上pubilcPath。

 // Extract CSS when that option is specified
// (which is the case during production build)
if (options.extract) {
    return ExtractTextPlugin.extract({
        use: loaders,
        fallback: 'vue-style-loader',
        // 解决icon路径加载错误
        publicPath:'../../'
    })
} else {
    return ['vue-style-loader'].concat(loaders)
}

 第三步:SPA项目打包

 

打包成功之后,会在当前项目目录下生成一个dist目录,而目录下的文件就是打包生成。

5.3.Nginx动静分离

5.3.2.配置

将SPA项目压缩并上传到/usr/nginx/html目录,再解压。

# 创建目录

mkdir -p /usr/nginx/html

# 切换目录

cd /usr/nginx/html

# 上传SPA项目

rz dist.zip

# 解压

unzip dist.zip

修改nginx核心配置文件/etc/nginx/conf.d

# 切换目录
cd /etc/nginx/conf.d/
# 备份
cp default.conf default.conf.bak
# 编辑conf.d文件
vim default.conf

 

并添加SPA项目访问映射规则。  

 location / {
    #该句代码是为解决history路由不能跳转的问题,在vue-router官网有介绍 
    try_files $uri $uri/  /index.html;
}

 最后,重启nginx服务并访问SPA项目。

 # 重启nginx服务
systemctl restart nginx

 

5.4.Nginx实现反向代理

修改nginx核心配置文件/etc/nginx/conf.d,配置nginx反向代理

server {
    listen       80;
    server_name  www.zking.com;
    #charset koi8-r;
    #access_log  logs/host.access.log  main;
    location ^~ /edu/ {
    	proxy_pass http://127.0.0.1:8080/;
    }
    location ^~ /zki/ {
    	proxy_pass http://127.0.0.1:8081/;
    }
}

proxy_pass说明是动态请求,需要进行转发,比如代理到Tomcat上。

 直接在浏览器中输入访问地址:http://www.zking.com/edu/ 。提示访问错误,如下所示:

 

切换到nginx日志目录,查看日志信息。  

# 切换到nginx的日志目录

cd /var/log/nginx/

# 查看日志信息

tail -f error.log

 

 

解决方案:关闭SeLinux

setsebool -P httpd_can_network_connect 1

执行成功之后,再次访问http://www.zking.com/edu

5.5.Nginx实现负载均衡

拷贝一个Tomcat,将其端口信息修改为8081,并将8081端口加入到防火墙允许访问规则中,然后分别启动这两台Tomcat。(这是在一个虚拟机上完成的,如果有多个就不需要样)

复制一个tomcatl,然后指定一个位置

cp /usr/local/apache-tomcat-8.5.20 -C xxx

到tomcat目录下进入到tomcat的conf

cd conf/

查看该目录下

ls

 然后编辑server.xml文件(vi 是默认的,也可以用vim,但是要下载 ,vi编辑是没有颜色区分的)

vi server.xml

需要修改三个地方

 

 

 

 

修改nginx核心配置文件/etc/nginx/conf.d,配置nginx负载均衡

 

 

 

upstream tomcats{
    server 127.0.0.1:8080 weight=1;
    server 127.0.0.1:8081 weight=2;
}

server {
    listen       80;
    server_name  www.zking.com;

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

    location ^~ /edu/ {
        proxy_pass http://127.0.0.1:8080/;
    }

    location ^~ /api/ {
        proxy_pass http://tomcats/;
    }
}

第一,通过upstream来定义一组Tomcat,并指定负载策略(IPHASH、加权论调、最少连接),健康检查策略(Nginx可以监控这一组Tomcat的状态)等。 第二,将proxy_pass替换成upstream指定的值即可。

 

  • 23
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值