ToB企服应用市场:ToB评测及商务社交产业平台

标题: Java项目部署服务器(简单版) [打印本页]

作者: 嚴華    时间: 2024-7-30 12:03
标题: Java项目部署服务器(简单版)
时间流逝,又是一年毕业季,还是学生时期让人向往
   
  

前言

提示:可自行选择符合自己需求的版本
例如:我这里选择的是openjdk1.8  mysql5.7  redis6.0  nginx1.24 (可以对照官网选择合适相对应的版本安装)

提示:以下是本篇文章正文内容,下面案例可供参考
一、java环境

安装:yum install java-1.8.0-openjdk-1.8.0.412.b08-2.0.1.1.al8.x86_64
可以有很多方式可自行谷歌百度
默认路径:/usr/lib/
可用命令查找:find / -name java

配置环境变量:vim  /etc/profile   编辑    添加内容 生存   见效环境变量: source  /etc/profile
在下方添加内容:
  1. JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk-1.8.0.412.b08-2.0.1.1.al8.x86_64
  2. JRE_HOME=$JAVA_HOME/jre
  3. CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
  4. PATH=$PATH:$JAVA_HOME/bin:$JRE_HOMW/lib
  5. export JAVA_HOME JRE_HOME CLASS_PATH PATH
复制代码
如图:

检察是否见效:

二、数据库

1.mysql数据库的安装以及数据定时备份

下载:
  1. wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz
复制代码
解压:
  1. tar -zxvf mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz
复制代码
这里需要注意的可以下载解压到自己风俗的路径下  个人风俗usr/local  解压完 记得改文件夹名哈 我这里是mysql     路径是usr/local/mysql
创建mysql用户组并将mysql添加:
  1. groupadd mysql
  2. useradd -r -g mysql mysql
复制代码
在该文件夹下创建数据目录 日志目录并给权限
  1. mkdir data
  2. chown mysql:mysql -R /usr/local/mysql/data/
  3. mkdir logs
  4. chown mysql:mysql -R /usr/local/mysql/logs/
复制代码
配置mysql: vim /etc/my.cnf
代码如下(示例):
  1. [mysqld]
  2. sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
  3. #开启慢sql日志
  4. slow_query_log = 1
  5. slow_query_log_file = /usr/local/mysql/logs/mysql-slow.log
  6. # 设置慢查询的阈值(例如,设置为2秒)
  7. long_query_time = 2
  8. #启用错误日志
  9. log_error = /usr/local/mysql/logs/error.log
  10. # 设置3306端口
  11. port=3306
  12. # 设置mysql的安装目录
  13. basedir=/usr/local/mysql
  14. # 设置mysql数据库的数据的存放目录
  15. datadir=/usr/local/mysql/data
  16. # 允许最大连接数
  17. max_connections=200
  18. # 允许连接失败的次数。
  19. max_connect_errors=10
  20. # 服务端使用的字符集默认为utf8mb4
  21. character-set-server=utf8mb4
  22. # 创建新表时将使用的默认存储引擎
  23. default-storage-engine=INNODB
  24. # 默认使用“mysql_native_password”插件认证
  25. #mysql_native_password
  26. default_authentication_plugin=mysql_native_password
  27. [mysql]
  28. # 设置mysql客户端默认字符集
  29. default-character-set=utf8mb4
  30. [client]
  31. # 设置mysql客户端连接服务端时默认使用的端口
  32. port=3306
  33. default-character-set=utf8mb
复制代码
初始化mysql: 
这里执行这个按照自己的文件夹来(可能会报缺少文件之类的  直接建一个就OK)
  1. ./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql --initialize
复制代码
执行成功后  密码会在末了 root@localhost 表现  可能会没有密码展示  我们可以去日志里找 
  1. sudo tail /var/log/mysql.log
  2. #找到root@localhost 后面的就是密码
复制代码
接下俩就是启动mysql:
  1. #找到usr/local/mysql/support-files下的mysql.server 直接启动
  2. ./mysql.server start
  3. #然后登录mysql  进入bin目录 修改密码
  4. mysql -u root  -p
  5. # 设置密码
  6. SET PASSWORD = PASSWORD('你的密码');
  7. # 设置用户的访问密码用不过期
  8. ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
  9. #开启远程登录
  10. GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的密码';
  11. #刷新权限
  12. FLUSH PRIVILEGES;
复制代码
配置mysql环境变量:

设置mysql开机自启:
在/etc/systemd/system下建mysqld.service
  1. [Unit]
  2. Description=MySQL Server
  3. Documentation=man:mysqld(8)
  4. Documentation=https://dev.mysql.com/doc/refman/8.0/en/using-systemd.html
  5. After=network.target
  6. After=syslog.target
  7. [Install]
  8. WantedBy=multi-user.target
  9. [Service]
  10. User=mysql
  11. Group=mysql
  12. Type=simple
  13. TimeoutSec=0
  14. ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.conf $MYSQLD_OPTS
  15. # EnvironmentFile=/etc/sysconfig/mysql
  16. LimitNOFILE=65535
  17. Restart=on-failure
  18. RestartPreventExitStatus=1
  19. Environment=MYSQLD_PARENT_PID=1
  20. PrivateTmp=false
复制代码
交于systemctl管理:
可执行命令:
   加载 systemctl文件
  systemctl daemon-reload
启动 MySQL
  systemctl start mysqld
  设置开机自启
  systemctl enable mysqld
  数据库定时备份:
编写脚本:在usr/local/mysql 下backup.sh
  1. #!/bin/bash
  2. #备份路径
  3. BACKUP=/home/cs/cs  你的备份地址
  4. #当前时间
  5. DATETIME=$(date +%Y-%m-%d)
  6. LOG_FILE=/usr/local/mysql/logs/$DATETIME".log"
  7. echo "===备份开始:$(date +"%Y-%m-%d %H:%M:%S")===" | tee -a ${LOG_FILE}
  8. #数据库名称
  9. DATABASE=cd
  10. #数据库地址
  11. HOST=127.0.0.1
  12. #数据库用户名
  13. DB_USER=root 你的用户名
  14. #数据库密码
  15. DB_PW='你的密码'
  16. #创建备份目录
  17. [ ! -d "${BACKUP}/$DATETIME" ] && mkdir -p "${BACKUP}/$DATETIME"
  18. [ ! -d "${LOG_FILE}" ] && touch "${LOG_FILE}"
  19. echo "备份文件存放于${BACKUP}/$DATABASE-$DATETIME.sql" | tee -a ${LOG_FILE}
  20. #开始备份
  21. echo "===备份文件开始===" | tee -a ${LOG_FILE}
  22. /usr/local/mysql/bin/mysqldump --verbose  -h localhost  -u${DB_USER} -p${DB_PW}  ${DATABASE} >${BACKUP}/$DATETIME/$DATABASE-$DATETIME.sql 2>> $LOG_FILE
  23. echo "===备份文件结束===" | tee -a ${LOG_FILE}
  24. #压缩成tar.gz包
  25. cd $BACKUP
  26. tar -zcvf $DATETIME.tar.gz $DATETIME
  27. #备份到另一台服务器
  28. #scp $DATABASE-$DATETIME.sql root@ip:/home/cs
  29. #删除备份目录
  30. rm -rf ${BACKUP}/$DATETIME
  31. #删除7天(不含)前备份的数据,这边可以自行更改
  32. find $BACKUP -mtime +7 -name "*.tar.gz" -exec rm -rf {} \;
  33. echo "===数据库备份到服务器成功==="
复制代码
添加机器定时任务:crontab -e
#添加指令 下方是每晚3点执行
00 03 * * * /bin/sh /usr/local/mysql/backup.sh
2.redis数据库

下载自己需要的redis压缩包 我这里是6.0.19
wget http://download.redis.io/releases/redis-6.0.19.tar.gz
tar -xvf redis-6.0.19.tar.gz    
因编译需要make 安装gcc  make工具:
yum -y install gcc automake autoconf libtool make
yum install gcc gcc-c++
安装
make install 
新建文件目录 redis  将解压出来的 配置文件放到新的文件目录中
   
  修改usr/local/redis下的redis.conf
     
执行usr/local/redis下的   ./redis-server redis.conf  启动
当然也可以配置成syetemctl 管理很灵活
三、nginx

1.下载  解压
          wget https://nginx.org/download/nginx-1.24.0.tar.gz
         tar -zxvf nginx-1.24.0.tar.gz
         rm -rf nginx-1.24.0.tar.gz
         mv nginx-1.24.0 nginx
  注意我这里的安装目录也是在usr/local/ 下  个人风俗
2.编译  启动 
 编译需要 安装openssl等 相关依靠
   yum install gcc c++ pcre pcre-devel zlib zlib-devel openssl openssl--devel
  添加ssl模块 默认是不添加的
   ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module 
  初次添加 执行make  install   非初次  执行 make  (注意假如不是初次  执行了make install 会导致nginx重新编译)
编译完成后如图:

可以去在sbin目录下 执行./nginx  就可以启动了  查抄是否启动成功

3.配置证书相关信息 
在nginx目录下创建cert 文件目录用于放证书
在nginx/conf下创建sites-enabled(名字自己定)文件目录 用于放相关配置
这里解释下因为我的项目是前后端分离的 在nginx.conf下配置看着乱就单独分出来了 

我这里就是两个配置 一个前端的 一个后端的

夸大一下假如这么配置  nginx.conf  还是要修改一下的  加载指定配置 如图:

证书申请下载这里就不说了  可自行谷歌百度  将证书上传到 /usr/local/nginx/cert/  目录下
我这里直接贴配置了  这是我的api.conf,你也可按照你的路径 域名  等等去配置这些
  
  1. server {
  2.     listen 443 ssl;
  3.     server_name 你的服务域名;
  4.     ssl_certificate /usr/local/nginx/cert/你的服务域名.pem;
  5.     ssl_certificate_key /usr/local/nginx/cert/你的服务域名.key;
  6.     ssl_session_timeout 5m;
  7.     ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
  8.     ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  9.     ssl_prefer_server_ciphers on;
  10.     location / {
  11.         proxy_redirect off;
  12.         proxy_set_header Host $host;
  13.         proxy_set_header X-Real-IP $remote_addr;
  14.         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  15.         proxy_set_header X-Forwarded-Proto $scheme;
  16.         proxy_set_header X-Forwarded-Protocol $scheme;
  17.         proxy_set_header X-Url-Scheme $scheme;
  18.         proxy_http_version 1.1;
  19.         proxy_set_header Upgrade $http_upgrade;
  20.         proxy_set_header Connection "upgrade";
  21.         proxy_set_header Access-Control-Allow-Origin '*';
  22.         proxy_set_header Access-Control-Allow-Methods 'GET,POST,OPTIONS';
  23.         proxy_set_header Access-Control-Allow-Headers 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
  24.         proxy_pass http://127.0.0.1:你自己的服务端口;
  25.     }
  26. }
  27. server {
  28.     client_max_body_size 102401m;
  29.     listen 80;
  30.     server_name 你的服务域名;
  31.     rewrite ^(.*)$ https://$host:443$1 permanent;
  32. }
复制代码

  下面是页面的配置:
  1. server {
  2.     listen 443 ssl;
  3.     server_name 你的页面域名;
  4.     ssl_certificate /usr/local/nginx/cert/你的页面域名.pem;
  5.     ssl_certificate_key /usr/local/nginx/cert/你的页面域名.key;
  6.     ssl_session_timeout 5m;
  7.     ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
  8.     ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  9.     ssl_prefer_server_ciphers on;
  10.     location / {
  11.         proxy_redirect off;
  12.         proxy_set_header Host $host;
  13.         proxy_set_header X-Real-IP $remote_addr;
  14.         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  15.         proxy_set_header X-Forwarded-Proto $scheme;
  16.         proxy_set_header X-Forwarded-Protocol $scheme;
  17.         proxy_set_header X-Url-Scheme $scheme;
  18.         proxy_http_version 1.1;
  19.         proxy_set_header Upgrade $http_upgrade;
  20.         proxy_set_header Connection "upgrade";
  21.         root    /usr/local/nginx/html/oa/; 注意这里替换成你自己的页面路径
  22.         index   index.html;
  23.     }
  24. }
  25. server {
  26.     client_max_body_size 102401m;
  27.     listen 80;
  28.     server_name 你的页面域名;
  29.     rewrite ^(.*)$ https://$host:443$1 permanent;
  30. }
复制代码
如许我们的配置都就配完了 
接下往返到usr/local/nginx/sbin目录下 执行
   ./nginx -s reload
  到这一个简单的java服务部署就完成了  注意云服务器的端口记得放开好比  443  80 等 假如数据库也想要外部访问 也得把端口放开哈 
   # 启动并启用firewalld
  sudo systemctl start firewalld
  sudo systemctl enable firewalld
  # 放行TCP的80端口
  sudo firewall-cmd --permanent --add-port=80/tcp
  # 重新载入firewall规则以应用更改
  sudo firewall-cmd --reload
  云服务器的安全组管理端口放行之类的 自己可以去单独配置 这里就不贴了
 完成后打页面地点浏览一下  

 



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4