记一次完整成功部署centos服务器的流程和方案(整合: appnode,nginx,jdk,jar,redis,mysql,ssh)

本文将整合以下常用信息,从而为云服务从零到一的部署提供便捷快速的指导:

使用appnode提供服务运维
nginx作为反代,可以代理静态资源或者href跳转
jdk环境配置
jar微服务部署启动
redis缓存数据库
mysql云服务数据库
ssh禁用root登录,启用自定义账户和复杂密码,提高服务器安全级别

一、前期准备
1.重装系统 CENTOS8 -> CENTOS7.9 阿里云控制台 — 更换系统盘 OK
2.阿里云 安全组配置- 开放端口: 8888 . — OK
3.正式服数据库备份。— OK
4.OSS文件路径检查。重装是否有影响. — 没有。是独立开来的 OK

二、实施
1.appnode安装:
参考: https://www.appnode.com/install
指令是:

INSTALL_AGENT=1 INSTALL_APPS=sitemgr INIT_SWAPFILE=1 INSTALL_PKGS='nginx-stable,php74,mysql57' bash -c "$(curl -sS http://dl.appnode.com/install.sh)" 
appnode 绑定序列号是: xxxxx-xxxxx-KV6NN-HTQR6-22AW7  (请自行购买appnode序列号,购买链接: https://www.appnode.com/serialcode#/product/serialcode  )

控制台会提示你确认端口,设置 账户,密码  
appnode 安装成功就可以登录:(把ip换成你自己的服务器ip)
http://你的ip:8888/login#/ccenter/nodemgr

2.nginx当前配置的备份(这边省略,主要备份nginx.conf) 以及 新服上面重新安装
指令安装:

	yum install epel-release -y
	yum install dnf
	wget http://springdale.math.ias.edu/data/puias/unsupported/7/x86_64/dnf-conf-0.6.4-2.sdl7.noarch.rpm
	wget http://springdale.math.ias.edu/data/puias/unsupported/7/x86_64//dnf-0.6.4-2.sdl7.noarch.rpm
	wget http://springdale.math.ias.edu/data/puias/unsupported/7/x86_64/python-dnf-0.6.4-2.sdl7.noarch.rpm
	yum install python-dnf-0.6.4-2.sdl7.noarch.rpm  dnf-0.6.4-2.sdl7.noarch.rpm dnf-conf-0.6.4-2.sdl7.noarch.rpm
	cat /etc/redhat-release 
	dnf update
	
	sudo dnf install epel-release

	sudo vim /etc/yum.repos.d/nginx.repo
	-->  vim  编辑 附加的内容 :
		[nginx-stable]
		name=nginx stable repo
		baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
		gpgcheck=1
		enabled=1
		gpgkey=https://nginx.org/keys/nginx_signing.key
		module_hotfixes=true

		[nginx-mainline]
		name=nginx mainline repo
		baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
		gpgcheck=1
		enabled=0
		gpgkey=https://nginx.org/keys/nginx_signing.key
		module_hotfixes=true
继续安装nginx,它会自己读取你刚配置的镜像依赖,快速的下载下来:
	sudo dnf install nginx-1.18.0
	
	sudo systemctl start nginx
	sudo systemctl enable nginx
	sudo systemctl status nginx
	
	sudo firewall-cmd --permanent --add-service=http
	sudo firewall-cmd --permanent --add-service=https
	sudo firewall-cmd --reload
验证nginx: 打开该服务器ip即可.

重装nginx:
	sudo dnf remove nginx  
	sudo dnf install nginx-1.18.0 
检查Bin文件存在,默认路径 :  /usr/sbin/nginx
配置Conf文件,默认位置 :    /etc/nginx/nginx.conf	
关闭nginx , 然后以 conf 配置来启动:
		ps -ef|grep nginx
		kill -QUIT   进程ID 
		/usr/sbin/nginx  -t   -c  /etc/nginx/nginx.conf
		/usr/sbin/nginx  -c  /etc/nginx/nginx.conf
		/usr/sbin/nginx  -s reload
		systemctl status nginx					
 解压:	
	tar -zxvf filename.tar.gz
 验证conf配置生效了么:	
	nginx -t

3.备份与安装jdk :
解压 JDK 到指定目录 : /usr/local/jdk8

	vim /etc/profile 
	最后面回车换行,再加入代码:
	export JAVA_HOME=/usr/local/jdk8/jdk1.8.0_281
	export PATH=$PATH:$JAVA_HOME/bin
	然后:
	[ESC] ,   :wq! 
	环境变量生效:
	source /etc/profile
	
	验证:
	java -version

4.appnode 软件管家 安装 redis , port : 6379 -> 16379, 无密码 -> 设置密码 .同时设置java微服务中6379端口对应的新密码 重新打jar包发版即可

5.下次安装 :
appnode 软件管家 安装 mysql , port : 3306 -> 16988,设置一个密码
还原 正式服原有的 拷贝的数据库数据。 log 数据多的话,看情况决定拷贝多少

初始密码修改:
mysql bash:

  mysqladmin -u用户名 -p旧密码 password 新密码 
  mysqladmin -uroot -p  password  你的新密码
  mysql -uroot -p

设置为 所有人都可以访问,而不是仅有 localhost:
mysql bash登录后:

	use mysql;
	update user set host = '%' where user = 'root'  and host='localhost';
	select host ,user from user ;
	FLUSH RIVILEGES ;
然后打开navicat通过 服务器mysql的ip,密码 连上。找到mysql 表,复制用户 root 这栏数据,建立新用户 ,名称自己定一个  
重启mysqld服务。重连mysql即可使用新用户登录。	

后续需要 禁用仅全聚合。 因为正式服目前是这样的。
再后续 , 由于不推荐禁用全聚合 ONLY_FULL_GROUP_BY 。以后还是要逐渐放开的。然后 优化项目中的sql代码。

6.appnode 安装ssh ,监听地址 0.0.0.0 , 22端口禁用root登录,启用自定义账户 xxx (这个账户名称自己定) 登录

	6.1. 使用root用户登录到服务器。
		ssh root@你的服务器ip或者域名     
		你的服务器密码 
		
	6.2. 创建一个新的用户:   
	   adduser xxx
	   
	6.3. 为新用户设置密码: 
	   passwd xxx   
	   你的服务器密码  
	   
	6.4. 将新用户添加到sudo组(可选): 
	   usermod -aG wheel xxx 
	   
	6.5. 编辑SSH配置文件: 
	   vim /etc/ssh/sshd_config 
	   
	6.6. 找到以下行并进行修改: 
	   #PermitRootLogin yes #改为   
	   PermitRootLogin no
	   加代码(如果不存在):
	   AllowUsers xxx
	   PasswordAuthentication yes  
	   
	6.7. 保存并关闭文件。
	   [ESC]    :wq!
	   
	6.8. 重启SSH服务以使更改生效: 
	   systemctl restart sshd 
	   
	6.9.现在,您可以使用新创建的用户名 (xxx) 和相应的密码进行SSH登录
	ssh xxx@你的服务器ip    
	你的服务器密码    
修改SSH 密码:
先登录 你想改的 ssh账户 到该服务器。
然后  修改密码   	
	passwd
	系统会提示你输入当前密码,输入当前用户的密码。
	然后系统会提示你输入新密码,输入你想要设置的新密码。密码输入时不会在屏幕上显示任何字符。
	再次输入新密码进行确认。


	修改结果:
 	测试 云服务器:
	IP:             47.120.37.xxx
	账号:root   ,   xxx
	密码:   xxxxxxxxxxxxx
	新密码是: xxxxxxxxxxxxxxxxxxx 	
  1. appnode 安装 supervisor, 启动jar服务的 配置:
xxx_backend	/usr/local/jdk8/jdk1.8.0_281/bin/java -jar /home/docker_package_xxx_interface/target/xxx_interface_backend-0.0.1.jar --spring.profiles.active=dev
默认日志位置:  /var/log/supervisor/  
  1. nohup指令 ,启动jar服务的配置:
	一次性启动 xxx_interface:
	/usr/local/jdk8/jdk1.8.0_281/bin/java -jar /home/docker_package_xxx_interface/target/xxx_interface-0.0.1.jar --spring.profiles.active=dev
	
	长期挂着  xxx_interface:
	nohup /usr/local/jdk8/jdk1.8.0_281/bin/java -jar /home/docker_package_xxx_interface/target/xxx_interface-0.0.1.jar --spring.profiles.active=dev > /home/logs/xxx_interface.log 2>&1 &
自定义的日志位置:   /home/logs
解释:
	nohup:让程序在用户登出后继续运行。
	>:将标准输出重定向到指定的日志文件中,这样您可以查看运行情况。
	2>&1:将标准错误重定向到标准输出。
	&:将进程放入后台执行。

9.验证:

	平台:你的域名网址          http://你的服务器ip
	web:	  账号:xxx 密码:xxx
	WEB 超管的 账户密码:       xxx       ,    xxxxxxxxx   
	
	APP:
	账号:xxx 密码   xxx    
	角色:超级管理员、管理员、审核、专员.....

10.遇到的问题

Q:  重装了centos 系统之后,第一次连接 ssh 到该服务器的时候,它会不认,报错如下:
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED
A:  解决: 
ssh-keygen -R 你的服务器ip	 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值