使用springboot+springdataJpa+thymeleaf开发:项目地址
题外话:强烈安利FinalShell,用过的都说好,最近更新的背景不错
安装java
- 从oracle官网下载jdk,这里选择linux x64的版本
- 将jdk上传到服务器,打开所在目录,解压并改名并且移动到/usr/local下(方便配置jdk)
tar -zxvf jdk-8u281-linux-x64.tar.gz
mv jdk1.8.0_281 jdk1.8
mv jdk1.8 /usr/local
- 配置环境变量
- 打开配置文件
vim /etc/profile
- 在最下方添加以下语句
export JAVA_HOME=/usr/local/jdk1.8
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}
- 使配置生效
source /etc/profile
- 查看是否配置成功
java -version
安装docker(本次只用来配置数据库)
(1)yum 包更新到最新
sudo yum update
(2)安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
(3)设置yum源为阿里云
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
(4)安装docker
sudo yum install docker-ce
(5)安装后查看docker版本
docker -v
(6)启动docker
systemctl start docker
(7)查看docker状态
systemctl status docker
(8)开机启动
systemctl enable docker
配置数据库
云服务器安全组开放规则
- 搜索mysql镜像
docker search mysql
选择官方的镜像
- 拉取mysql镜像
docker pull mysql:5.6
查看下载镜像
docker images
- 创建容器,设置端口映射、目录映射
docker run -di --name=c_mysql -p 3307:3306 -v /root/mysql/logs:/logs -v /root/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.6
- 参数说明:
- -p 3307:3306:将容器的 3306 端口映射到宿主机的 3307 端口。
- -v /root/mysql/logs:/logs:将主机目录(/root/mysql)下的 logs 目录挂载到容器中的 /logs。日志目录
- -v /root/mysql/data:/var/lib/mysql :将主机目录(/root/mysql)下的data目录挂载到容器的 /var/lib/mysql 。数据目录
- **-e MYSQL_ROOT_PASSWORD=123456:**初始化 root 用户的密码。
- 进入容器,操作mysql,登录修改密码,操作和非容器是一样的
进入容器
- 进入容器
docker exec –it c_mysql /bin/bash
- 修改密码:参考连接
- 数据库授权
# 登陆数据库
mysql -uroot -p
# 使用数据库
use mysql;
# 设置权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
# 刷新权限
flush privileges;
- *. *:表示 所有库.所有表
- 前一个root:表示用户名,
- %:是指所有访问ip
- 后一个root:表示数据库密码
- 使用Navicat连接容器中的mysql,导入数据库
部署项目
- 修改连接的数据库,使用maven打包成jar包
- 上传到服务器,这里传到/usr/local/blog目录
- 云服务器安全组开放规则8080端口
- 后台运行jar包
nohup java -jar shareniu.jar &
&代表在后台运行,nohup 意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行
- 访问主机ip+端口,如127.0.0.1:8080,127.0.0.1替换成主机ip
部署http
- 添加安全组规则
- 添加域名解析,需要备案的域名,这里使用的是腾讯云
- 下载nginx
# 下载nginx:
yum install nginx
# 启动nginx:
systemctl start nginx
# 加入开机启动:
systemctl enable nginx
# 查看nginx的状态:
systemctl status nginx
- 配置nginx下载后需要对NGINX进行配置,这里的配置文件是nginx.conf,可以使用命令 find / -name “nginx.conf” 进行查找,默认是在 /etc/nginx/nginx.conf
- 打开配置文件
vim /etc/nginx/nginx.conf
- 修改配置信息,注释nginx.conf中的默认配置,使用con.d下的子配置
- 在conf.d下添加hodor.conf,文件名没有限制,hodor可以改为任意名,include语句回包含进去
- 配置hodor.conf
server {
listen 80;
server_name senkuu.com;
location / {
# 配置转发
proxy_pass http://142.129.192.252:8080;
# 跳转的首页
index index.html index.htm;
proxy_set_header Host $host;
proxy_set_header X-Real-Ip $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
}
# 日志的存放路ing
access_log /logs/senkuu.com.access.log;
}
8.重启nginx,使用域名访问
nginx -s reload
如果没效果就关闭nginx再启动
systemctl stop nginx
systemctl start nginx
配置https
- 配置安全组规则
- 控制台查找ssl证书,使用免费的ssl证书即可,要注意解析的域名要和ssl证书对应的域名一致
- 下载证书,解压,将nginx文件夹下的证书和密钥上传到/etc/nginx文件夹下(和nginx.conf同级)
3.配置hodor.conf,将http的请求转为https的请求
server {
listen 443 ssl; #监听端口
server_name a.domain.com; #请求域名
ssl on; #开启ssl
ssl_certificate /home/cert/a.domain.com.pem; #pem证书路径
ssl_certificate_key /home/cert/a.domain.com.key; #pem证书key路径
ssl_session_timeout 5m; #会话超时时间
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #加密算法
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #SSL协议
# 拦截所有请求
location / {
proxy_http_version 1.1; #代理使用的http协议
proxy_set_header Host $host; #header添加请求host信息
proxy_set_header X-Real-IP $remote_addr; # header增加请求来源IP信息
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 增加代理记录
proxy_pass http://127.0.0.1:8001; #服务A访问地址
}
}
server {
listen 80; #监听端口
server_name a.domain.com #请求域名
return 301 https://$host$request_uri; #重定向至https访问。
}
4.重启nginx,不出意外可以正常访问