常用软件安装文档

人总是在接近幸福时倍感幸福,在幸福进行时却患得患失

Posted by yishuifengxiao on 2022-02-18

一 基础环境准备

1.1 安装docker环境

1.1.1 卸载旧版本

较旧的 Docker 版本称为 docker 或 docker-engine 。如果已安装这些程序,请卸载它们以及相关的依赖项。

sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine

1.1.2 设置仓库

安装所需的软件包。yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2。

sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2

使用以下命令来设置稳定的仓库。

sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo

1.1.3 安装 Docker Engine-Community

安装最新版本的 Docker Engine-Community 和 containerd,或者转到下一步安装特定版本:

sudo yum install docker-ce docker-ce-cli containerd.io

也可以使用脚本安装

使用官方安装脚本自动安装

安装命令如下:

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

也可以使用国内 daocloud 一键安装命令:

curl -sSL https://get.daocloud.io/docker | sh

1.1.4 F&Q

1) 如果运行docker 命令出现

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

时,表明docker进程未运行。

解决办法

systemctl daemon-reload

sudo service docker restart

sudo service docker status (should see active (running))

sudo docker run hello-world

2) 若出现以下问题

package docker-ce-3:19.03.11-3.el7.x86_64 requires containerd.io >= 1.2.2-3, but none of the providers can be installed

解决方法:

进入阿里云镜像地址:https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/edge/Packages/ 找到你想要的或者最新的containerd.io包,拼接在阿里云地址后面,

如下:

yum install -y https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/edge/Packages/containerd.io-1.2.13-3.1.el7.x86_64.rpm

然后再执行

yum install docker-ce docker-ce-cli containerd.io

即可。

1.1.5 配置镜像加速器

针对Docker客户端版本大于 1.10.0 的用户

您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器

sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://1t52bj4j.mirror.aliyuncs.com"]
}
EOF

sudo systemctl daemon-reload

sudo systemctl restart docker

1.2 安装java环境

1.2.1 卸载历史版本

1 查看是否有历史版本

java -version

查看已安装java版本

yum list installed |grep java

2 卸载历史版本

卸载JDK相关文件

yum -y remove *openjdk*

卸载tzdata-java

yum -y remove tzdata-java.noarch

1.2.2 安装新版的java

1 新建目录

mkdir -p /usr/local/java

2 上传安装包到该目录并解压

如果本地不能上传,可以从远程使用命令

scp root@192.168.0.104:/home/software/jdk-8u221-linux-x64.tar.gz /usr/local/java

如果远程服务器防火墙有为scp命令设置了指定的端口,我们需要使用 -P 参数来设置命令的端口号,命令格式如下

#scp 命令使用端口号 4588
scp -P 4588 remote@www.runoob.com:/usr/local/sin.sh /home/administrator

scp命令格式如下

scp [可选参数] file_source file_target

解压安装包

tar -xvzf jdk-8u221-linux-x64.tar.gz

3 设置环境变量

先备份环境变量

cp /etc/profile /etc/profile.bak

在原始文件的末尾加上

export JAVA_HOME=/usr/local/java/jdk1.8.0_221
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/li/tools.jar:$JRE_HOME/lib/rt.jar
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

使环境变量立即生效

source /etc/profile

检查环境变量是否生效

java -version

二 防火墙及安全

2.1 centos7 查看防火墙

2.1.1 查看firewall服务状态

systemctl status firewalld

2.1.2 查看firewall的状态

firewall-cmd --state

2.1.3 开启、重启、关闭、firewalld.service服务

# 开启
service firewalld start
# 重启
service firewalld restart
# 关闭
service firewalld stop

其他命令

#停止firewall
systemctl stop firewalld.service

#禁止firewall开机启动
systemctl disable firewalld.service

2.2 防护墙规则

2.2.1 查看防火墙规则

firewall-cmd --list-all

操作防火墙

# 查询端口是否开放
firewall-cmd --query-port=8080/tcp
# 开放80端口
firewall-cmd --permanent --add-port=80/tcp
# 移除端口
firewall-cmd --permanent --remove-port=8080/tcp

#重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload

# 参数解释
1、firwall-cmd:是Linux提供的操作firewall的一个工具;
2、--permanent:表示设置为持久;
3、--add-port:标识添加的端口;

2.3 切换为iptables防火墙

切换到iptables首先应该关掉默认的firewalld,然后安装iptables服务。

2.3.1 关闭firewall

service firewalld stop systemctl disable firewalld.service #禁止firewall开机启动

2.3.2 安装iptables防火墙

yum install iptables-services #安装

2.3.3 编辑iptables防火墙配置

vi /etc/sysconfig/iptables #编辑防火墙配置文件

下边是一个完整的配置文件:

Firewall configuration written by system-config-firewall

Manual customization of this file is not recommended.

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

-A INPUT -p icmp -j ACCEPT

-A INPUT -i lo -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

-A INPUT -j REJECT --reject-with icmp-host-prohibited

-A FORWARD -j REJECT --reject-with icmp-host-prohibited

COMMIT

开启iptables

service iptables start #开启
systemctl enable iptables.service #设置防火墙开机启动

2.4 iptables 防火墙

2.4.1 查看防火墙状态

chkconfig iptables --list

2.4.2 关闭防火墙

1 即时生效,重启后复原

开启:			 service iptables start 
关闭: service iptables stop

2 永久性生效,重启后不会复原

开启:			 chkconfig iptables on
关闭: chkconfig iptables off

2.4.3 开启指定端口

编辑/etc/sysconfig/iptables 文件
添加以下内容:

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT 
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

三 常用软件安装

3.1 mysql数据库

3.1.1 docker安装mysql数据库

安装命令如下


docker run -p 3306:3306 --name mymysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=密码 -d mysql:5.6 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --lower_case_table_names=1

示例1

docker run -p 3306:3306 —name mymysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=密码 -d mysql:5.6 —character-set-server=utf8mb4 —collation-server=utf8mb4_unicode_ci —lower_case_table_names=1

示例2

docker run —name mysql01 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=pwd123 -d mysql:5.5 —character-set-server=utf8mb4 —collation-server=utf8mb4_unicode_ci

查看运行情况

docker ps -a

安装完成后进行连接测试

问题解决

如果启动mysql时出现以下问题,说明需要重启docker

Status: Downloaded newer image for mysql:5.6
0df0b470e099821cccaf261c3c38bee32bfbba95c837b1822f63de051293e144
docker: Error response from daemon: driver failed programming external connectivity on endpoint mymysql (801742e0e4c8a5ac5f04d299f39a385eaf4b385955bd8ae09eb121d83a32f793): (iptables failed: iptables —wait -t nat -A DOCKER -p tcp -d 0/0 —dport 3306 -j DNAT —to-destination 172.17.0.2:3306 ! -i docker0: iptables: No chain/target/match by that name.

重启docker服务后再启动容器

systemctl restart docker
docker start foo

3.1.2 导入数据

mysql  -uroot -p --default-character-set=utf8  demo </home/demo.sql

具体的导入数据库的命令的格式如下:

mysql  -uroot -p --default-character-set=utf8  目标数据库名字 <导入脚本的路径

--default-character-set=utf8是为防止导入的数据出现乱码

创建数据库

CREATE DATABASE 数据库名;

删除数据库

drop database <数据库名>;

删除数据表

DROP TABLE table_name ;

3.1.3 修改密码

下面是具体步骤
一、知道原来的myql数据库的root密码;

1、 在终端命令行输入

mysqladmin -u root -p password "新密码" 回车 ,Enter password:

【输入原来的旧密码】
2、 登录mysql系统修改, mysql -uroot -p 回车 Enter password: 【输入原来的密码】

mysql>use mysql;

mysql> update user set password=password("新密码") where user='root';

mysql> flush privileges;

mysql> exit;

然后使用刚才输入的新密码即可登录。

3.1.4 F&Q

centos7下解决yum install mysql-server没有可用包

第一步:安装从网上下载文件的wget命令

[root@master ~]# yum -y install wget

第二步:下载mysql的repo源

[root@master ~]# wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

第三步:安装mysql-community-release-el7-5.noarch.rpm包

[root@master ~]# rpm -ivh mysql-community-release-el7-5.noarch.rpm

第四步:查看下

[root@master ~]# ls -1 /etc/yum.repos.d/mysql-community*
/etc/yum.repos.d/mysql-community.repo
/etc/yum.repos.d/mysql-community-source.repo

会获得两个mysql的yum repo源:/etc/yum.repos.d/mysql-community.repo/etc/yum.repos.d/mysql-community-source.repo

第五步:安装mysql

[root@master ~]# yum install mysql-server

3.1.5 远程访问

设置密码

mysqladmin -u root password '密码'

设置远程访问权限

GRANT ALL privileges on *.* TO 'root'@'%' identified by '密码' with grant option;

立即生效

flush privileges ;

开启相应的mysql的防火墙端口

3.2 redis数据库

3.2.1 docker安装redis

安装命令如下

docker run -d --name myredis -p 6379:6379 redis --requirepass "密码"

docker run -d —name redis -p 6380:6379 redis —requirepass “密码”

安装完成后进行连接测试

查看运行情况

docker ps -a

3.2.2 相关命令

清空数据库

flushall

3.3 mongo数据库

3.3.1 docker安装mongo

安装命令如下:

mongo5.0以上的版本使用mongo来执行mongodb命令已经不支持了,你需要改用mongosh来替代mongo!

先不带密码启动

docker run -itd --name mongo -p 27017:27017 mongo

然后执行

docker exec -it mongo mongosh

下面的命令在mongo5.0以后不支持

docker exec -it mongo mongo admin

创建用户

#创建一个名为 admin,密码为 123456 的用户。

> db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]});

# 尝试使用上面创建的用户信息进行连接。

> db.auth('admin', '123456')

3.4 docker安装nginx

安装脚本如下:

docker run --name nginx_test_cors \
-p 8664:80 \
-v /home/webapps/ROOT:/usr/share/nginx/html:ro \
-v /home/nginx.conf:/etc/nginx/nginx.conf \
-v /home/docker/nginx/logs:/var/log/nginx \
-d nginx \

docker run —name nginx_test_cors -p 8664:80 -v /home/webapps/ROOT:/usr/share/nginx/html:ro -v /home/nginx.conf:/etc/nginx/nginx.conf -d nginx

完整示例

docker run -d -p 80:80  \
-p 443:443 \
--name nginxweb \
--link answer-server:answerserver \
-v /usr/local/docker/nginx/html:/usr/share/nginx/html \
-v /usr/local/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /usr/local/docker/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /usr/local/docker/nginx/logs:/var/log/nginx \
nginx
  • -d # 表示在一直在后台运行容器
  • -p 80:80 # 对端口进行映射,将本地8081端口映射到容器内部的80端口
  • —name # 设置创建的容器名称
  • -v # 将本地目录(文件)挂载到容器指定目录;
  • —link answer-server:answerserver 这计划是指需要转向本机docker容器的别名

nginx.conf文件示例

user  nginx;
worker_processes auto;

error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;


events {
worker_connections 1024;
}


http {
include /etc/nginx/mime.types;
default_type application/octet-stream;

log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';

access_log /var/log/nginx/access.log main;



sendfile on;
#tcp_nopush on;

keepalive_timeout 65;

#gzip on;

server {
listen 80;
listen [::]:80;
server_name localhost;

#access_log /var/log/nginx/host.access.log main;

location / {
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Credentials: true;
root /usr/share/nginx/html;
index index.html index.htm;
}

#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 /usr/share/nginx/html;
}

# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}

# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
}

3.5 docker安装minio

docker run -d -p 8100:9000 -p 8101:9001 --restart=always -e MINIO_ACCESS_KEY=admin -e MINIO_SECRET_KEY=123456Asd -v /usr/local/minio/data:/data minio/minio server /data --console-address ":9001"

docker run -d -p 8100:9000 -p 8101:9001 —restart=always -e MINIO_ACCESS_KEY=admin -e MINIO_SECRET_KEY=123456Asd -v /usr/local/minio/data:/data minio/minio server /data —console-address “:9001”

控制台端口为 8101


3.6 docker安装activemq

docker run --name=activemq  -d -p 8161:8161 -p 61616:61616 -e ACTIVEMQ_ADMIN_LOGIN=admin -e ACTIVEMQ_ADMIN_PASSWORD=123456 --restart=always webcenter/activemq:latest

docker run —name=activemq -d -p 8161:8161 -p 61616:61616 -e ACTIVEMQ_ADMIN_LOGIN=admin -e ACTIVEMQ_ADMIN_PASSWORD=123456 —restart=always webcenter/activemq:latest



四 服务器环境搭建

生成安装路径

mkdir -p /usr/local/server

4.1 安装编译工具及库文件

yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel

4.2 安装 PCRE

PCRE 作用是让 Nginx 支持 Rewrite 功能

2 上传安装文件并解压

进入目录

cd /usr/local/server/

上传安装文件到此目录

也可以执行以下命令进行在线下载

wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz

下载完成之后进行解压

tar -xvzf pcre-8.35.tar.gz

3 编译安装

进入安装包目录

cd pcre-8.35

编译安装

./configure

make && make install

4 查看pcre版本

pcre-config --version

得到的结果如下

[root@localhost pcre-8.35]# pcre-config --version
8.35

表示安装成功

4.3 安装nginx

4.3.1 上传文件到指定目录

cd /usr/local/server/

上传安装文件到此目录

也可以执行以下命令进行在线下载

wget http://nginx.org/download/nginx-1.18.0.tar.gz

4.3.2 解压

解压命令如下

tar -xvzf nginx-1.18.0.tar.gz

进入安装包目录

cd nginx-1.18.0/

4.3.3 编译安装

安装命令如下

./configure --prefix=/usr/local/server/nginx-1.18.0 --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/server/pcre-8.35

./configure —prefix=/usr/local/server/nginx-1.18.0 —with-http_stub_status_module —with-http_ssl_module —with-pcre=/usr/local/server/pcre-8.35

接着执行以下命令

make

make install

4.3.4 确认安装状态

执行上述命令后,会在安装目录下生成一个 sbin 名字的文件夹,此时,基本上可以认为安装成功了

执行以下命令

mkdir -p /usr/local/server/nginx-1.18.0/logs

接着执行

/usr/local/server/nginx-1.18.0/sbin

./nginx -v

此时,如果出现

[root@localhost sbin]# ./nginx -v
nginx version: nginx/1.18.0

表明确定安装成功了

此时,在当前目录下执行

./nginx

即可启动nginx了

接着执行

[root@localhost sbin]# ps -ef|grep nginx
root 71489 1 0 02:21 ? 00:00:00 nginx: master process ./nginx
nobody 71490 71489 0 02:21 ? 00:00:00 nginx: worker process
root 71546 9696 0 02:24 pts/1 00:00:00 grep --color=auto nginx

如果出现上述的输出,表明nginx进程启动了

在访问 http://目标服务器地址/ ,如果访问成功,则表明确实安装成功

4.4 安装静态资源服务器

必须在完成nginx 安装的基础上进行

4.4.1 生成静态资源路径

命令如下

mkdir -p /home/demo

随意放置一个文件到该目录里

4.4.2 配置nginx配置文件

在修改之前,备份nginx配置文件

cd /usr/local/server/nginx-1.18.0/conf
cp nginx.conf nginx.conf.bak

修改配置文件如下

# 解决访问静态资源403的问题
user root;
#user nobody;
worker_processes 1;

#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;

#pid logs/nginx.pid;


events {
worker_connections 1024;
}


http {
include mime.types;
default_type application/octet-stream;

#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';

#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;

#charset koi8-r;

#access_log logs/host.access.log main;

# 照片
# 解决访问静态资源404的问题
location /image/ {
alias /home/demo/;
}


location / {
root html;
index index.html index.htm;
}
}

}

上述配置中增加的配置为

在最上面加上

# 解决访问静态资源403的问题
user root;

在server节点下增加

# 照片
# 解决访问静态资源404的问题
location /image/ {
alias /home/demo/;
}

其中的/home/demo/就是上一步中配置静态资源未知

接下来重启nginx

cd /usr/local/server/nginx-1.18.0/sbin

./nginx -s reload

重启成功后,访问

http://192.168.195.128/image/aa.jpg

如果能访问当前资源,则表明配置成功

4.5 安装tomcat服务器

4.5.1 上传文件到服务器

进入文件安装目录

cd /usr/local/server

上传安装文件到当前目录

或者执行一下命令进行下载

wget https://mirror.bit.edu.cn/apache/tomcat/tomcat-9/v9.0.34/bin/apache-tomcat-9.0.34.tar.gz

4.5.2 解压并启动

解压命令如下

tar -xvzf apache-tomcat-9.0.34.tar.gz

接着执行

cd /usr/local/server/apache-tomcat-9.0.34/bin
./startup.sh

启动成功后,访问

http://192.168.195.128:8080/

如果当前目录能够访问,表明安装成功

4.5.3 安装文件上传应用

进行目录

cd /usr/local/server/apache-tomcat-9.0.34/webapps

上传文件服务器应用到当前目录

如果不能上传,可执行命令

scp root@192.168.0.104:/home/software/file.war /usr/local/server/apache-tomcat-9.0.34/webapps

接下来重启tomcat

cd /usr/local/server/apache-tomcat-9.0.34/bin

./shutdown.sh

./startup.sh

4.5.4 修改nginx配置文件

在server节点下增加以下配置

# 文件上传
location /file {
proxy_pass http://localhost:8080/file;
}

此时完整的配置文件为

# 解决访问静态资源403的问题
user root;
#user nobody;
worker_processes 1;

#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;

#pid logs/nginx.pid;


events {
worker_connections 1024;
}


http {
include mime.types;
default_type application/octet-stream;

#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';

#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;

#charset koi8-r;

#access_log logs/host.access.log main;

# 照片
# 解决访问静态资源404的问题
location /image/ {
alias /home/demo/;
}

# 文件上传
location /file {
proxy_pass http://localhost:8080/file;
}



location / {
root html;
index index.html index.htm;
}

#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;
}

# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}

# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}


# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;

# location / {
# root html;
# index index.html index.htm;
# }
#}


# HTTPS server
#
#server {
# listen 443 ssl;
# server_name localhost;

# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;

# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;

# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;

# location / {
# root html;
# index index.html index.htm;
# }
#}

}

配置成功后,重启nginx

cd /usr/local/server/nginx-1.18.0/sbin

./nginx -s reload

4.5.5 上传测试

使用postman进行上传测试

测试地址为

http://192.168.195.128/file/upload

如果得到的响应为

{
"code": 200,
"msg": "上传成功",
"requtest-id": "f4e0c268843e4bb6baf1adaac8ca0ddf",
"data": "e219c272b5534139b23f74344b5191f6.jpg",
"response-time": "2020-05-09 18:18:00"
}

则表示文件上传成功

此时,访问 http://192.168.195.128/image/e219c272b5534139b23f74344b5191f6.jpg ,能够访问成功,则表明上传文件功能正常

五 应用程序安装

5.1 初始化数据库

连接好mysql数据库,新建一个名为 demo 的数据库,并导入初始化脚本。

5.2 安装应用程序

进入tomcat的部署目录

cd /usr/local/server/apache-tomcat-9.0.34/webapps

接下来删除无关的项目

上传后端程序到当前目录,并重命名为 ROOT.war

如果无法上传,可以执行命令

scp root@192.168.0.104:/home/software/demo.war /usr/local/server/apache-tomcat-9.0.34/webapps

接下来重启tomcat

待安装包解压后,修改配置连接信息

修改后端连接配置

进行目录 /usr/local/server/apache-tomcat-9.0.34/webapps/ROOT/WEB-INF/classes 修改配置连接

修改后的配置为

# datasource 
datasource.url=192.168.195.128:3306/demo
datasource.username=root
datasource.password=密码


################# Redis connection
spring.redis.host=192.168.195.128
spring.redis.password=密码
spring.redis.port=6379

server.port=9500

spring.jpa.hibernate.ddl-auto=update


#yishuifengxiao.swagger.base-package=com.yishuifengxiao.work.demo.web

修改前端连接配置

进入目录 /usr/local/server/apache-tomcat-9.0.34/webapps/ROOT/WEB-INF/classes/static/js,修改app.xxxx.js中的配置信息

需要修改的节点为

  • pro : 请求的主要地址
  • url : 文件上传地址
  • imgUrl :默认的图片地址

需要将其中的ip替换为对应的域名

修改完成后,重新tomcat服务器

5.3 修改nginx配置

1 首先在 http 节点下增加以下配置

upstream servers {
server 127.0.0.1:8080;
}

2 接下来在server节点下,增加以下配置

#其他的
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://servers;
}

在上述代码中

proxy_set_header Host  $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

的目的是为转发请求头

此时,完整的配置为

# 解决访问静态资源403的问题
user root;
#user nobody;
worker_processes 1;

#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;

#pid logs/nginx.pid;


events {
worker_connections 1024;
}


http {

upstream servers {
server 127.0.0.1:8080;
}


include mime.types;
default_type application/octet-stream;

#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';

#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;

#charset koi8-r;

#access_log logs/host.access.log main;

# 照片
# 解决访问静态资源404的问题
location /image/ {
alias /home/demo/;
}

# 文件上传
location /file {
proxy_pass http://localhost:8080/file;
}


# 其他的配置
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://servers;
}

#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;
}

# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}

# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}


# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;

# location / {
# root html;
# index index.html index.htm;
# }
#}


# HTTPS server
#
#server {
# listen 443 ssl;
# server_name localhost;

# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;

# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;

# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;

# location / {
# root html;
# index index.html index.htm;
# }
#}

}

配置完成后,重启nginx

cd /usr/local/server/nginx-1.18.0/sbin

./nginx -s reload

重启完成后,如果能访问 http://192.168.195.128/#/ 则初步表明配置成功

接下来进行其他的验证即可。

六 开机自启动

6.1 nginx开机自启动

1、先创建开机自启脚本(nginx.service)

cd /etc/systemd/system
vi nginx.service

2 、修改nginx.service文件内容

# 仅修改 /usr/local/nginx/sbin/nginx 这个路径即可(修改为你的nginx路径)

[Unit]
Description=nginx service
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、设置文件权限

chmod 755 nginx.service

4、设置开机自启动

systemctl daemon-reload
systemctl enable nginx

5、检查命令是否正常

systemctl start nginx # nginx启动
systemctl stop nginx # nginx停止

6、其他命令

# 启动nginx服务
systemctl start nginx.service

# 重新启动nginx服务
systemctl restart nginx.service

# 查看nginx服务当前状态
systemctl status nginx.service

# 停止开机自启动
systemctl disable nginx.service