Linux部署项目

Linux部署项目

安装Jdk1.8

//1.解压1.8安装包
tar -zxvf jdk-8u291-linux-x64.tar.gz

//2.移动:/usr/local目录下
mv jdk1.8.0_291 /usr/local/jdk1.8
    
//3.修改配置文件:
vim /etc/profile 
    
//4.添加配置:配置环境变量
export JAVA_HOME=/usr/local/jdk1.8
export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin  
    
//5.刷新配置:
source /etc/profile 

//6.查看java版本
java -varsion  
    

安装Mysql

//1.解压并移动到 /user/local 目录下
tar -zxvf mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz -C /user/local 
    
//2.改名    
cd /usr/local
mv mysql-5.7.33-linux-glibc2.12-x86_64 mysql  
    
//3.创建用户和组
groupadd mysql
useradd -r -g mysql mysql
chown -R mysql.mysql /usr/local/mysql
    
//4. 创建data文件夹
cd /usr/local/mysql
mkdir data
    
//5. 安装依赖包
yum install libaio
    
//6.初始化 (记住初始密码)
/usr/local/mysql/bin/mysqld --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data --initialize 
 	//生成的初始密码temporary password is generated for root@localhost: >oMVug_3aVr_  //初始密码(>oMVug_3aVr_) 
    
//7. 配置
vim /etc/my.cnf
    
//配置文件:
[mysqld]
datadir=/usr/local/mysql/data
basedir=/usr/local/mysql
socket=/tmp/mysql.sock
user=mysql
port=3306
character-set-server=utf8
# 取消密码验证
#skip-grant-tables
# # Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
    
//8. 将mysql加入到服务中    
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql 
    
//9. 开机启动
chkconfig mysql on
    
//10. 启动mysql  
service mysql start
    
//11. 登录mysql 
/usr/local/mysql/bin/mysql -uroot -p
 	//Enter password: //输入上面的初始密码
    
//12. 登录成功第一步重置密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Wzp20000718.';

//13. 设置权限
mysql> use mysql;
mysql> update user set host ='%'where user ='root' and host ='localhost';   //执行命令,使得远程连接数据库生效
mysql> flush privileges;  //刷新
设置完成远程客户端就可以访问了
    
//14. 修改密码:上面改了这里就不用改
mysql> set password for root@localhost = password('123456');

//退出mysql登录
mysql> exit

安装Redis

//解压Redis安装包到/usr/local目录
tar -zxvf redis-3.2.10.tar.gz -C /usr/local
    
//make编译
cd redis-3.2.10/
make
    
//前台启动redis  关闭之后redis就退出了  
cd src
./redis-server  

//后台启动Redis服务
//先退回到redis的根目录
cd /usr/local/redis-3.2.10
//修改配置文件,将公网连接放开
vim redis.conf

在这里插入图片描述

//后台启动修改参数

在这里插入图片描述

//保存退出
:wq
//后台启动Redis命令
cd src
./redis-server /usr/local/redis-3.2.10/redis.conf
//登录redis src目录下
./redis-cli
//查看密码
config get requirepass
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) ""
//设置密码
127.0.0.1:6379> config set requirepass abcd1234
//退出
127.0.0.1:6379> exit
//再次登录指定密码
./redis-cli
127.0.0.1:6379> auth abcd1234

安装Nginx

//1、安装依赖和相关库:
yum -y install gcc-c++ zlib-devel openssl-devel libtool

//2、解压并移动到/usr/local目录:
tar -zxvf nginx-1.22.1.tar.gz
mv nginx-1.22.1 /usr/local
    
//3、配置和安装     
cd /usr/local/nginx-1.22.1/
./configure --prefix=/usr/local/nginx
make && make install

//4、修改nginx配置,反向代理
cd /usr/local/nginx/conf/
vim nginx.conf
    
location / {
   root   /home/server/dist;
   index  index.html index.htm;
   try_files $uri $uri/ /index.html;
}

location /api {
     proxy_pass   http://localhost:9999/;
}

//5、启动nginx:
cd /usr/local/nginx/sbin/
[root@localhost sbin]# ./nginx

//6、停止和重启nginx:   
./nginx -s reload   #重启
./nginx -s stop #关闭

安装Nacos

//解压
tar -zxvf nacos-server-2.1.2.tar.gz

//移动到 /usr/local/nacos 目录下
mv nacos /usr/local/nacos

//进入 /usr/local/nacos/config 文件夹
cd /usr/local/nacos/config

//修改application.properties配置
vim application.properties

------配置nacos数据库------------------------------------------------------------
#*************** Config Module Related Configurations ***************#
### If use MySQL as datasource:
 spring.datasource.platform=mysql
### Count of DB:
 db.num=1
### Connect URL of DB:
 db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
 db.user.0=root
 db.password.0=Wzp20000718.

-------配置nacos配置文件数据库-----------------------------------------------------------
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/config_info?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=root
db.password=Wzp20000718.
------------------------------------------------------------------
    
//进入../bin目录
cd ../bin

//修改启动脚本为单机模式    
vim startup.sh

##export MODE="standalone(cluster集群)"
    
//启动
./startup.sh

打包Java项目

pom文件加上配置
<packaging>pom</packaging>  //父包
<packaging>jar</packaging>	//子包

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <configuration>
                    <encoding>UTF-8</encoding>
                    <!-- 过滤后缀为pem、pfx的证书文件 -->
                    <nonFilteredFileExtensions>
                        <nonFilteredFileExtension>pem</nonFilteredFileExtension>
                        <nonFilteredFileExtension>pfx</nonFilteredFileExtension>
                        <nonFilteredFileExtension>p12</nonFilteredFileExtension>
                    </nonFilteredFileExtensions>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>io.fabric8</groupId>
                <artifactId>docker-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>    

在这里插入图片描述

打包Vue项目

 npm run build   //将生成dist文件夹放入服务器

在这里插入图片描述

后台启动jar包

nohup java -jar jar包.jar &
nohup java -jar xxx.jar --spring.profiles.active=test --server.port=8109 &   //指定开发环境(dev、test、prod)
chmod  777   jar包    //给jar包授权

遇到的问题

安装nacos遇到问题

--对于目前已经搭建好的 Nacos 使用以下 sql 将字段添加到对应的表中:
ALTER TABLE config_info ADD COLUMN encrypted_data_key text NOT NULL COMMENT '秘钥';
ALTER TABLE config_info_beta ADD COLUMN encrypted_data_key text NOT NULL COMMENT '秘钥';
ALTER TABLE his_config_info ADD COLUMN encrypted_data_key text NOT NULL COMMENT '秘钥';

在这里插入图片描述

第二台服务器部署8002,实现负载均衡,openFeign调用不通

当第二台服务器上8002,往第一台服务器上Nacos注册时,注册ip可能不为真实ip,通过openFeign调用时找不到8002服务(导致远程当调用超时)

为什么注册的IP和真实IP不符合呢?
原因是Nacos客户端在注册服务时会从机器网卡中选择一个IP来注册,当机器存在多个网卡(例如存在虚拟网卡)时,所选则的IP可能不是真实的物理机的IP,所以,当注册了的是非真实IP后,另一台机器调用时是不可能调通的。

在这里插入图片描述
解决方案

#Nacos服务注册为指定IP(这样就可以通过服务器外网ip访问)和端口
spring:
  cloud:
    nacos:
      discovery:
       	ip: 101.132.64.93   #Nacos服务注册为指定IP
    	port:8002  #Nacos服务注册为指定端口

网友的见解

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值