centos基础环境配置(安装jdk!tomcat!nginx)


背景

Linux、CentOS、Tomcat、Java 8 和 Nginx 是在 Web 开发和服务器管理中常用的技术。
Linux:它实际上是指 Linux 内核,这是一个操作系统的核心组件,它管理着计算机的硬件资源,并提供了访问这些资源的接口。Linux 是一个开源的操作系统内核,为许多 Linux 发行版(包括 CentOS)提供了基础。
CentOS:CentOS 是一种基于 Red Hat Enterprise Linux(RHEL)的免费开源 Linux 发行版,以其稳定性和长期支持而闻名。
Tomcat:Tomcat 是一个开源的 Java Servlet 容器,它是 Apache 软件基金会的一个项目。它实现了 Java Servlet 和 JavaServer Pages(JSP)规范,并提供了一个环境来运行 Java Web 应用程序。Tomcat 可以作为一个独立的 Web 服务器使用,也可以与其他 Web 服务器(如 Nginx)结合使用。

Java 8:Java 8 是 Java 编程语言的一个广泛使用的版本。它引入了许多新特性和改进,包括 lambda 表达式、函数式接口和流式 API。

Nginx:Nginx 是一个开源的高性能 Web 服务器和反向代理服务器。它具有轻量级、高并发处理能力和低内存消耗等特点,适用于处理大量并发请求。Nginx 可以作为前端服务器,接收客户端的请求,并将其转发给后端的 Tomcat 服务器来处理。它还可以用作负载均衡器,将请求分发到多个后端服务器上,以实现更好的性能和可靠性。

综合:通过使用 CentOS 作为操作系统,安装并配置 Tomcat 作为 Java Web 应用程序的运行环境,并使用 Nginx 作为反向代理服务器,可以搭建一个高性能、可靠的 Web 服务器环境。Java 8 作为开发和运行 Java 应用程序的版本,提供了强大的功能和灵活性。这些技术的组合可以满足各种 Web 应用程序的需求,并提供出色的性能和用户体验。

1.centos7 安装 JDK1.8 环境

1、查看系统版本命令

//查看已经安装的jdk
[root@VM-8-16-opencloudos ~]# rpm -qa|grep jdk
java-1.8.0-openjdk-headless-1.8.0.352.b08-2.oc8.x86_64 //此为卸载 jdk 的路径
copy-jdk-configs-4.0-2.oc8.noarch
java-1.8.0-openjdk-1.8.0.352.b08-2.oc8.x86_64

//卸载
[root@VM-8-16-opencloudos ~]# yum -y remove [jdk路径]
[root@VM-8-16-opencloudos ~]# yum -y remove java-1.8.0-openjdk-headless-1.8.0.352.b08-2.oc8.x86_64

//卸载完成之后Java命令不被识别
[root@bogon lib]# java -version
bash: java: command not found...

2、查看 yum 包含的 jdk 版本

yum search java

3、安装 jdk

  • 选择一个 java 版本进行安装,这里我们希望安装 java1.8,因为我们的机器是 64 位的,所以选择安装java-1.8.0-openjdk-devel.x86_64。 这里有个地方要注意,上图中我用红框圈起来的两个 java 版本,要选择-devel 的安装,因为这个安装的是 jdk,而那个不带-devel 的安装完了其实是 jre。
  • 执行命令 yum install -y java-1.8.0-openjdk.x86_64。执行完后会看见控制台刷出很多输出。 耐心等待至自动安装完成

此次选择 java-1.8.0-openjdk.x86_64

//安装
yum install -y java-1.8.0-openjdk.x86_64

//查看并复制安装目录并复制路径稍后用到
ll /usr/lib/jvm

image.png

4、配置全局变量

yum 安装的时候,不需要手动修改。

打开配置文件,按 insert 进入编辑模式

vi /etc/profile

复制以下几行到文件最后一行中,按 esc 退出编辑模式,输入:wq 保存退出(这里的 JAVA_HOME 以自己实际的目录为准)
注意: java-1.8.0-openjdk-1.8.0.312.b07-2.el8_5.x86_64

#set java environment
#set java environment
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.352.b08-2.oc8.x86_64  #jdk的实际位置
JRE_HOME=$JAVA_HOME/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH

使全局变量立即生效

source /etc/profile

5、查看安装 jdk 是否成功

java -version

2.centos7 安装 maven 安装(非必须)

1>下载 maven 安装包资源

1> //进入指定目录
cd /usr/local/

2>//创建目录
mkdir maven

3> //进入maven目录
cd maven/

4>//下载远程
wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo

2>安装 maven

yum -y install apache-maven

3>配置环境变量

1>编辑
vi /etc/profile

2>末尾添加:
export MAVEN_HOME=/maven_path
export PATH=$PATH:$MAVEN_HOME/bin

3>使配置生效:
source /etc/profile

4>验证是否安装成功

mvn -v

3.centos7 安装 Tomcat

注意安装 Tomcat 前必须要先安装 JDK,JDK 属于基本环境配置,Maven 选择性的装

1>安装 tomcat

1.yum 安装 tomcat (tomcat 的基础服务)

yum -y install tomcat

//遇到yum 安装 tomcat 无效,需要设置镜像
yum-config-manager --add-repo="https://mirrors.aliyun.com/centos/7/os/x86_64/"

//Centos7 yum安装的时候遇到公钥尚未安装/获取 GPG 密钥失败的问题解决
//跳过公钥检查安装
yum -y install tomcat --nogpgcheck

2.进入 webapps 文件夹

cd /usr/share/tomcat/webapps

3.安装默认浏览器管理界面(否则访问 ip:端口会显示找不到网页)

yum install tomcat-webapps tomcat-admin-webapps

4.安装在线文档(以便默认 Tomcat 页面上的所有链接都可以运行)可选

sudo yum install tomcat-docs-webapp tomcat-javadoc

####

5.初始化环境的服务器上执行如下命令进行安装(可替代上面的命令)

yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel tomcat tomcat-admin-webapps tomcat-docs-webapp tomcat-lib tomcat-webapps

2>查看服务器 tomcat 状态

systemctl status tomcat

dead 为死亡,未运行状态,running(绿色)则是运行状态image.png

3>tomcat 的启动、终止

//配置开机启动tomcat
systemctl enable tomcat

//启动tomcat
systemctl start tomcat

//停止tomcat
systemctl stop tomcat

//重启tomcat
systemctl restart tomcat

4>卸载 tomcat

yum remove tomcat

5>浏览器访问 Tomcat

使用浏览器访问 Tomcat,地址 Linux 的: ip+8080(默认端口)。

6>防火墙开启关闭

Tomcat 正常启动,但是网页无法访问,而且不报 404 等任何异常。开放 8080 端口或者关闭防火墙,然后重启,重新访问 : ip+8080。

Windows:控制面板—所有控制面板项-—Windows 防火墙—自定义设置
Ubuntu:查看 ufw status(active 激活、inactive 关闭)
开启关闭 ufw enable|disable
开启某个端口 ufw allow [端口号]
< CentOs7:防火墙机制 iptables(被淘汰的内容,请自行百度)
>= CentOs7:1.CentOS7 使用 firewalld 打开关闭防火墙与端口。
2.systemctl 是 CentOS7 的服务管理工具中主要的工具,它融合之前 service 和 chkconfig 的功能于一体。
启动: systemctl start firewalld
查看状态: systemctl status firewalld ( 或者 firewall -cmd state)
停止: systemctl disable firewalld
禁用: systemctl stop firewalld
添加: firewall-cmd –zone=public –add-port=8080/tcp –permanent (–permanent 永久生效,没有此参数重启后失效)
重新载入:firewall-cmd –reload

防火墙的操作:

//查看Tomcat是否启动成功执行
systemctl status firewalld | firewall -cmd state

//启动/停止/禁用
systemctl start/stop/disable firewalld

//添加: (--permanent永久生效,没有此参数重启后失效)
firewall-cmd  --zone=public --add-port=8080/tcp --permanent

//重新载入:
firewall-cmd --reload

查看开机启动列表命令
查看 Tomcat 是否设置为开机启动项,如果显示为 enabled,说明设置成功

  • static:表示该服务与其他服务相关联,不能单独设置该服务的启动状态
  • disabled:表示禁止开机启动
  • enabled:表示允许开机启动
systemctl list-unit-files | grep enabled

//显示为 ebabled 则为成功
tomcat.service            enabled

7>安全组的策略

关于安全组策略方面的点击这里了解

8>查看服务启动情况

此条命令具体含义
ps:将某个进程显示出来
-A  显示所有程序。
-e  此参数的效果和指定”A”参数相同。
-f  显示 UID,PPIP,C 与 STIME 栏位。
grep 命令是查找

ps -ef|grep tomcat

4.安装 nginx

1>执行命令

1.通过yum安装nginx
    1>将nginx放到yum repro库中
    [root@localhost ~]# rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
  2>使用yum安装ngnix
    [root@localhost ~]# yum install nginx
  3>查看nginx信息
    [root@localhost ~]# yum info nginx
  4>nginx开机自启
  [root@localhost ~]# sudo systemctl enable nginx
  5>卸载nginx(通过yum安装可使用如下卸载)
  [root@localhost ~]# yum remove nginx

2.启动/停止/重启nginx
  //(service nginx start 是centos6.x的命令 , centos7.x使用 systemctl start nginx)
    [root@localhost ~]# ps -ef | grep nginx  # 查看nginx安装目录
  [root@localhost ~]# nginx -t  # 查看nginx.conf配置文件目录

    [root@localhost ~]# service nginx start
  [root@localhost ~]# nginx -s stop
  [root@localhost ~]# nginx -s reload
  [root@localhost ~]# nginx -t //查看配置文件是否正确
  [root@localhost ~]# ps -ef | grep nginx //查看nginx进程
  [root@localhost ~]# nginx -v //查看nginx版本

3.查看nginx版本
    [root@localhost ~]# nginx -v

 4.访问nginx,现在你可以通过公网ip (本地可以通过 localhost /或 127.0.0.1 ) 查看nginx 服务返回的信息。
     [root@localhost ~]# curl -i localhost

 5.查看nginx文件的位置并cd到nginx文件下(/etc/nginx/)
     //[root@localhost ~]# cd /
    //[root@localhost /]# ll /etc/nginx/
       [root@localhost /]# cd /etc/nginx/

 6.进入配置文件并修改(由于此处将 server{} 配置放入default.conf文件,即只需修改 default.conf文件就行)
     // [root@localhost nginx]#  vim /etc/nginx/nginx.conf  // 进入server配置文件(此文件配置了会读取conf.d 下的所有文件)
    [root@localhost nginx]# vim /etc/nginx/conf.d/default.conf // 进入listen配置文件

 7.修改nginx的配置文件(修改 监听端口和指向打开的文件目录)###注意 server对象是并列的关系。
      nginx配置详见以下第三点

 8.保存修改并重启nginx
    1>ESC+:wq(退出并保存)
    2>[root@localhost nginx]# sudo nginx -t // 验证书写是否正确
    3>[root@localhost nginx]# nginx -s reload //重启
  //或者使用下面
  4>[root@localhost nginx]# killall -9 nginx //强制杀死所有的 nginx 进程
  5>[root@localhost ~]# service nginx start //启动



 9.Nginx启动时,常见报错如下Address already in use:
    [emerg] listen() to 0.0.0.0:80, backlog 511 failed (98: Address already in use)
    解决办法:
      1>sudo netstat -ntpl //提示是端口被占用,输入指令查看端口占用情况
        2>sudo kill 80  // 可以看到是任务占用80端口,杀死该进程即可
        3>nginx -s reload // 重新启动nginx

 10.以下是Nginx的默认路径:
    (1) Nginx配置路径:/etc/nginx/
    (2) PID目录:/var/run/nginx.pid
    (3) 错误日志:/var/log/nginx/error.log
    (4) 访问日志:/var/log/nginx/access.log
    (5) 默认站点目录:/usr/share/nginx/html
    (6)其他路径均可在/etc/nginx/nginx.conf 以及/etc/nginx/conf.d/default.conf

###

2>yum 安装nginx出错

原因是 nginx 位于第三方的yum源里面,而不在 centos 官方 yum 源里面,需要更新 yum,后重新安装 nginx.

sudo yum install epel-release
yum update

3>nginx 域名配置详细

# 1.默认配置文件(检查服务器是否开放 80 端口)
  server {
    listen       80;
    server_name  localhost;
    location / {
      root   /usr/share/nginx/html;
      index  index.html index.htm;
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
      root   /usr/share/nginx/html;
    }
  }


  # 2.修改端口号(确保服务器有开放端口号)
  server {
    listen       5555;
    server_name  localhost;
    location / {
      root  /var/lib/jenkins/workspace/thorn/dist; #需要修改的路径地址
      try_files $uri $uri/ index.html;
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
      root   /usr/share/nginx/html;
    }
  }

  #3.为服务器配置多个域名(或端口)(直接将当前配置重新复制一份)
  server {
    listen       80; #默认指向 80 端口,可以共用 80 端口,域名不同就行
    server_name  test.leader755.com;
    location / {
      #这里我这里指向 jenkins 构建的目录,也可以在构建时的 shell 将文件移动要其他地方。
      root   /var/lib/jenkins/workspace/github-test01/dist;

      try_files $uri $uri/ index.html;
    }
    error_page   500 502 503 504  /50x.html;

  }

  #4.配置http和https端口同时可以访问
  server {
    listen       80;
    listen       443 ssl;
    server_name  wwww.leader755.com leader755.com; #多个域名用空格隔开

    # ssl证书地址(如果配置了https则需要配置)
    ssl_certificate     /etc/nginx/cert/leader755.com.pem;  # 证书pem文件的路径
    ssl_certificate_key  /etc/nginx/cert/leader755.com.key; # 证书key文件的路径

    location / {
        root   /var/lib/jenkins/workspace/leader755.github.io; #需要修改的路径地址
        try_files $uri $uri/ index.html;
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
      root   /usr/share/nginx/html;
    }
  }

  #5.配置访问http,自动跳转到https
  #leder755.com
   server {
      listen 80;
      server_name leader755.com;
      return  301 https://$server_name$request_uri;    #设置http自动跳转到https
   }

    server {
     listen       443 ssl;
     server_name  leader755.com; #多个域名用空格隔开

            # ssl证书地址
      ssl_certificate     /etc/nginx/cert/leader755.com/leader755.com.pem;  # pem文件的路径
      ssl_certificate_key  /etc/nginx/cert/leader755.com/leader755.com.key; # key文件的路径

      location / {
        root    /var/lib/jenkins/workspace/leader755.gitee.io/public/ ; #需要修改的路径地址
        try_files $uri $uri/ index.html;
      }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
          }
    }

我的博客即将同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=2nru1tygnq0w8


文章作者:   leader755
版权声明:   本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 leader755 !
评论
 上一篇
halo配置域名和ssl halo配置域名和ssl
1 .docker 环境 假设 docker 的环境已经安装好了。没有安装好的,参考《centos 安装 docker》。 2.已申请好域名3.申请 SSL 证书我使用的是腾讯云,申请免费的 TrustAsia 的 SSL 证书,阿里云等
2021-04-28
下一篇 
vue通信-组件传值 vue通信-组件传值
前言:1>在介绍组件传值之前先明确三种组件关系:父子组件、兄弟组件、无关系组件。如上图所示: 父子关系:A 和 B、B 和 C、B 和 D 都是父子关系; 兄弟关系:C 和 D 是兄弟关系, 无关系:A 和 C、A 和 D 是隔代关
2021-04-15
  目录