centos7 java tomcat+mysql+nginx+ssl证书服务部署

目录

1.yum环境配置

2.jdk1.8安装(yum)

3.tomcat安装

4.mysql安装和配置(yum)

5.nginx安装和配置(yum)

6.证书配置


服务器:腾讯云服务器,服务器版本:centos7.6.1810

如何查看版本号?如下命令:

[root@VM_0_11_centos /]# cat /etc/centos-release
CentOS Linux release 7.6.1810 (Core) 

1.yum环境配置

腾讯云的这款服务器默认自带了yum,如果你的服务器运行这个命令报错,请自行安装。

因为下一步需要安装jdk,所以先直接使用命令查看服务器是否已经安装了jdk:

yum list installed | grep java*

结果出现如下提示:

Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fats

大意是服务器上的数据仓库太老了,需要更新到最新的版本。直接按照提示,执行run后面的语句

 yum makecache fats

yum配置完成之后,再执行yum list installed | grep java* 查看是否有已安装的jdk环境,本服务器上没有,直接进行下一步。若服务器有的话需要使用yum remove java*先删除再进行下一步。

2.jdk1.8安装(yum)

yum list java*

出现一大片java不同版本,找到我们需要的版本

... ...
java-1.8.0-openjdk.i686						1:1.8.0.252.b09-2.el7_8		updates
java-1.8.0-openjdk.x86_64					1:1.8.0.252.b09-2.el7_8		updates
java-1.8.0-openjdk-accessibility.i686		1:1.8.0.252.b09-2.el7_8		updates
java-1.8.0-openjdk-accessibility.x86_64		1:1.8.0.252.b09-2.el7_8 	updates
java-1.8.0-openjdk-demo.i686 				1:1.8.0.252.b09-2.el7_8		updates
java-1.8.0-openjdk-demo.x86_64				1:1.8.0.252.b09-2.el7_8		updates
java-1.8.0-openjdk-devel.i686				1:1.8.0.252.b09-2.el7_8		updates
java-1.8.0-openjdk-devel.x86_64				1:1.8.0.252.b09-2.el7_8		updates
java-1.8.0-openjdk-headless.i686			1:1.8.0.252.b09-2.el7_8		updates
java-1.8.0-openjdk-headless.x86_64			1:1.8.0.252.b09-2.el7_8		updates
java-1.8.0-openjdk-javadoc.noarch			1:1.8.0.252.b09-2.el7_8		updates
java-1.8.0-openjdk-javadoc-zip.noarch		1:1.8.0.252.b09-2.el7_8		updates
java-1.8.0-openjdk-src.i686					1:1.8.0.252.b09-2.el7_8		updates
java-1.8.0-openjdk-src.x86_64				1:1.8.0.252.b09-2.el7_8		updates
... ...

安装:

 yum install java-1.8.0-openjdk.x86_64

中间需要选择的,输入y回车即可

安装完成之后,验证:

[root@VM_0_11_centos ~]# java -version
openjdk version "1.8.0_252"
OpenJDK Runtime Environment (build 1.8.0_252-b09)
OpenJDK 64-Bit Server VM (build 25.252-b09, mixed mode)

出现版本信息表示安装成功。

3.tomcat安装

因为我要使用nginx配置证书,nginx+tomcat配置负载均衡,所以不用yum方式安装tomcat,使用yum方式安装tomcat的方式参见CentOS 6.9/7通过yum安装指定版本的Tomcat

首先下载tomcat包:

wget http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.90/bin/apache-tomcat-7.0.90.tar.gz

解压:

tar -zxvf apache-tomcat-7.0.90.tar.gz

改名:

mv apache-tomcat-7.0.90 kuaf

启动:

# /server 是我存放tomcat的路径
sh /server/kuaf/bin/startup.sh

这个时候访问一下对应的网址,熟悉的界面出现,tomcat启动成功

tomcat的配置我就不讲了,不知道的各位自行百度。

4.mysql安装和配置(yum)

参考资料:CentOS7 yum 安装与配置MySQL5.7

由于yum库中没有mysql的包,所以我们要自己配置yum源

# 下载mysql源安装包
 wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
# 安装mysql源
 yum localinstall mysql57-community-release-el7-8.noarch.rpm

配置好源之后,开始安装(安装过程超级长,主要是要下载东西,速度一言难尽,当然如果网速好的话还是很快的):

yum install mysql-community-server

安装好之后启动mysql服务

systemctl start mysqld
或者
service mysqld start

然后使用以下命令测试是否启动成功:

[root@VM_0_11_centos ~]# mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

若返回的结果是密码错误,则表示服务启动成功。

接下来,将服务设置成开机启动:

[root@VM_0_14_centos mysql]# systemctl enable mysqld
[root@VM_0_14_centos mysql]# systemctl daemon-reload

接下来,登录,修改密码。

首先,查看自动生成的密码

[root@VM_0_14_centos mysql]# grep 'temporary password' /var/log/mysqld.log
2020-06-08T08:47:30.224733Z 1 [Note] A temporary password is generated for root@localhost: 5o%hKkOl:,S6

使用用户名root,密码5o%hKkOl:,S6登录进去,修改密码。

[root@VM_0_14_centos mysql]# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.30

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases
    -> ;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'TestRoot@123132';
Query OK, 0 rows affected (0.00 sec)

注意:1.修改密码之前你是不能进行任何操作的。2.密码默认必须包含大小写字母、数字和符号。

接下来,我们用本地的数据库连接工具连接一下看看:

连不进去是正常的,别气馁,你还需要配置远程账户,不然你就只能在连接服务器这个小黑窗里面写数据库代码了。

配置远程账户步骤:

(1)进入mysql数据库:

[root@VM_0_14_centos ~]# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 5.7.30 MySQL Community Server (GPL)

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> 

(2)创建用户,赋予权限

mysql> create user 'remoteUser'@'localhost' identified by 'RemoteUsr@2020';
Query OK, 0 rows affected (0.00 sec)

mysql> grant all privileges on *.* to 'remoteUser'@'localhost' identified by 'RemoteUsr@2020' with grant option;
Query OK, 0 rows affected, 1 warning (0.00 sec)

(3)查到自己的公网IP:百度ip即可

(4)修改刚添加的用户的IP为自己目前的公网IP

mysql> update user set Host='xxx.xxx.xxx.xxx' where User='remoteUser';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

注意:这里的xxx.xxx.xxx.xxx是自己的公网IP;更新一定要加flush privileges不然修改不会生效。

接下来就可以远程登录了:

附:mysql中user表记录的密码修改方法

#mysql 5.7以上

update user SET authentication_string = password('newpassword') WHERE user = 'root';

#mysql 5.7以下

update user SET password = password('newpassword') WHERE user = 'root';

flush privileges;

我在安装过程中出现了一个问题:mysqld_pre_systemd[26821]: 2020-06-08T08:11:58.961782Z 0 [ERROR] --initialize specified but the data directory has files in it. Aborting.

出现的原因是之前安装了别的版本的mysql所以默认数据路径下有旧的数据文件,删除就好了,参照:https://blog.csdn.net/nkshuangyuan2012/article/details/106624352

 

5.nginx安装和配置(yum)

查看nginx版本:yum list -y nginx

[root@VM_0_14_centos ~]# yum list -y nginx
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
Available Packages
nginx.x86_64 

安装nginx:yum -y install nginx,中间需要确认

[root@VM_0_3_centos /]# yum -y install nginx
Loaded plugins: fastestmirror, langpacks
...............................
...............................
............................
.....
 
Complete!

启动:

[root@VM_0_14_centos nginx]# cd /usr/sbin
[root@VM_0_14_centos sbin]# ./nginx

出现如下界面,表示nginx启动成功:

配置nginx映射到tomcat服务器:vim /etc/nginx/nginx/conf

重点配置如下,其中8080是我的tomcat的http端口

server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  _;
        root         /usr/share/nginx/html;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {
            proxy_pass http://127.0.0.1:8080 
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }

接下来,把java服务部署上去,启动tomcat

sh /root/tomcat/bin/startup.sh

访问网址,出现我们的网站,部署成功:

接下来配置证书,使用https访问,这样网址导航栏就不会出现不安全字样了

6.证书配置

证书的申请请参考:https://blog.csdn.net/nkshuangyuan2012/article/details/106637704

下载申请好的证书,解压,找到我们需要的nginx证书,传到centos上的任意位置

在nginx配置文件中,server模块下,增加一个server,按照腾讯云的证书部署指引格式来写就好了

# Settings for a TLS enabled server.
    server {
        listen 443;#SSL 访问端口号为 443
        server_name xxxx.xxxx.com; #填写绑定证书的域名
        ssl on;#启用 SSL 功能
        ssl_certificate cert/1_xxxx.xxxx.com_bundle.crt;#证书文件名称
        ssl_certificate_key cert/2_xxxx.xxxx.com.key;#私钥文件名称
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;##请按照这个套件配置,配置加密套件,写法遵循 openssl 标准。
        ssl_prefer_server_ciphers on;
        location / {
            proxy_pass http://127.0.0.1:8080;
            index  index.html index.htm;
        }
    }

然后重新加载nginx配置文件

[root@VM_0_14_centos mywebapps]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@VM_0_14_centos mywebapps]# nginx -s reload

使用https模式访问,就变成了这样

--------------完结的分割线----------------------------

加油

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章