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服务注册为指定端口