服务器部署Java服务(前后端项目分离部署)

一、购买好服务器

在登录的之后将一些基础的服务部署上,例如使用ssh 这样之后就不必要去再通过腾讯云或者是阿里云控制台去登录了

位置

位置:/root/.ssh
授权文件:authorized_keys # 将自己的key放进这个文件中 
查看已知主机:known_hosts # 通过ssh可以去查看自己的主机是否在登录的范围内

二、安装必要的服务

在我们使用服务器进行部署的时候,需要使用到一些开源的服务,去将我们的服务能够正常的使用

例如:nginx、jdk、redis等这些必要的服务

2.1 安装nginx服务

1.安装nginx服务之前需要先安装一些其他的基础的服务
这些是安装nginx服务必不可少的基础模块信息
    
yum install gcc-c++
yum install -y openssl openssl-devel
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel    

2.在指定的位置去安装nginx服务
先创建nginx指定的位置去安装
mkdir /usr/local/nginx

3.下载nginx的Linux环境的软件包
wget https://nginx.org/download/nginx-1.19.9.tar.gz

4.解压缩
tar -zxvf nginx-1.19.9.tar.gz
cd nginx-1.19.9

5.使用nginx的默认配置
./configure

6.进行编译安装
make
make install

7.启动服务
cd /sbin
./nginx

8.查看服务是否启动
ps -ef | grep nginx

9.使用外网去访问是否可用
默认端口是80,使用浏览器访问,如果可以访问说明是成功的,如果不能访问将linux的防火墙将80端口释放


10.查看linux开放的端口
firewall-cmd --list-all

11.将端口加入至开放端口中
firewall-cmd --zone=public --add-port=80/tcp --permanent

重启防火墙 即可访问

Centos7之后开始适用Systemctl 这个命令行

因为我们使用的是自我安装的服务 没办法使用Systemctl 去启动关闭服务等

需要我们自己去配置 这样好便于我们手动管理 不用去安装目录下开启关闭服务

2.2 配置Systemctl系统服务

1.指定到系统命令的文件夹内
/usr/lib/systemd/system/
   
2.编辑文件nginx.service 新增下面这些服务

[Unit]
Description=nginx
After=network.target
 
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit    
PrivateTmp=true
 
[Install]
WantedBy=multi-user.target
    
    
3.编辑完之后重新加载系统文件 服务生效
 systemctl daemon-reload

只介绍关于重要的运维上的服务,剩下的服务就不进行部署了

三、部署需要的服务

一般现在开发使用的是SpringBoot服务,这样的话一些服务可以不用安装

将开发完成的服务生成jar上传至服务器中

看自己的情况去将服务部署到指定的文件夹中
在这里将Java的jar包放置到Javarun中
前端的代码放置到front中
后端管理的代码放置到backend中

cd /
mkdir /work/javarun
mkdir /work/html/front
mkdir /work/html/backend

1.将jar包放置在Javarun中,将前台的界面放置在front中,将后台的界面放置在backend中
文件上传之后启动Java生成的jar包 后台启动这个服务并指定配置文件 并将日志指定到指定的文件中

 nohup java -Dspring.profiles.active=prod -jar ***.jar > ***.log &

2.将前后管理的代码部署至html

3.最重要的一步将这些服务通过nginx转发出去
进入至nginx服务的配置文件的目录
/usr/local/nginx/conf

4.调整配置文件信息

5.配置之后去浏览器查看自己配置的项目是否可以正常访问 
如果不可以 查看服务器端口是否开放
firewall-cmd --list-all 查看监听的端口是否正常开放
如果没有
firewall-cmd --zone=public --add-port=80/tcp --permanent
将端口开放 如果还是不可以访问 去查看购买的服务器的安全策略是否开放
如果没有将其开放即可

四、nginx的配置文件

worker_processes  4;

error_log  /var/log/nginx/error.log;
error_log  /var/log/nginx/error.log  notice;
error_log  /var/log/nginx/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;    
	#access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;
    server {
        listen 80;
        server_name localhost;
        location / {
            root   /work/html/front;
            index  index.html index.htm;
            try_files $uri $uri /index.html;
        }
        location /api/ {
           proxy_pass http://****:**/;
        }
    }

    server {
        listen 8080;
        server_name localhost;
        location / {
            root /work/html/backend;
            index  index.html index.htm;
            try_files $uri $uri /index.html;
        }
        location /basic-api/ {
           proxy_pass http://****:**/;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
    
}

这样简单的服务器搭建就完成了 并且可以通过ip地址去访问,如果你有域名可以将ip替换成域名使用