tomcat+nginx+docker前后端分离工程部署
一、安装JDK
(1)下载地址:Java Downloads | Oracle
下载jdk安装包jdk-8u171-linux-x64.tar.gz,在服务器上创建目录:mkdir -p /usr/local/java,并将jdk压缩包上传到该目录下,解压:tar -zxvf jdk-8u171-linux-x64.tar.gz 。如下图所示:
(2)配置环境变量
vi /etc/profile
将如下配置添加至文件末尾:
export JAVA_HOME=/usr/local/java/jdk1.8.0_171
export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
(3)使环境变量生效
source /etc/profile
二、安装mysql
(1)编辑配置文件my.cnf,添加配置如下:
[mysqld]
# 关闭only_full_group_by
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
# 允许最大连接数
max_connections=200
max_allowed_packet = 20M
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
default-time-zone='+08:00'
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
lower_case_table_names=1
sync_binlog=2000
innodb_flush_log_at_trx_commit=2
innodb_buffer_pool_size = 4G
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
default-character-set=utf8
(2)Mysql安装过程详见:
三、安装tomcat
(1)下载apache-tomcat-8.5.70.tar.gz,上传到服务器/DATA目录,解压:tar -zxvf apache-tomcat-8.5.70.tar.gz。
重命名 mv apache-tomcat-8.5.70 datastatistics-tomcat
(2)修改server.xml
cd /DATA/datastatistics-tomcat/conf
vim server.xml
因为同一台服务器上部署了两个tomcat,所以这里我们需要修改端口号避免冲突。
(3)部署后端服务
创建目录:mkdir -p /DATA/datastatistics-back
部署包上传到该目录下。
注意:tomcat的webapps目录下不要拷贝war包进去。
vim server.xml
Host节点下:
<Context path="" docBase="/DATA/datastatistics-back/datafusion.war" reloadable="false"/>
四、安装docker
yum install -y docker-io
启动docker:systemctl start docker
五、安装nginx
(1)拉取nginx镜像:docker pull nginx
(2)创建目录: mkdir -p /DATA/nginx
(3)创建nginx配置文件:vim /DATA/nginx/nginx.conf,加入如下内容:
server {
listen 8089;
server_name localhost 192.168.132.164
location /datastatistics {
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://192.168.132.164:18080/;
client_max_body_size 10m;
}
location /datastatistics-web {
alias /DATA/datastatistics-front/dist/;
index index.html index.htm;
try_files $uri $uri/ /index.html =404;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
注意192.168.132.164改为服务器的ip。
(4)运行容器: docker run --name nginx -p 8089:8089 -d -v /DATA/nginx/nginx.conf:/etc/nginx/nginx.conf -v /DATA:/DATA --restart=always nginx
(5)防火墙开放8089和18080端口。
firewall-cmd --zone=public --add-port=8089/tcp --permanent
firewall-cmd --zone=public --add-port=18080/tcp --permanent
firewall-cmd --reload
六、部署前端工程
(1)创建目录:mkdir -p /DATA/datastatistics-front
(2)上传压缩包dist.zip到该目录下,解压:unzip dist.zip