Linux下Java WEB环境搭建(JDK/Tomcat/Mysql/Nginx)

Java环境搭建

一、JDK(JRE)

  1. 下载官方jdk,下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html,我们下载Java SE Development Kit 8u231这个版本(jdk1.8)
  2. 下载完后存放到Linux的/usr/local目录下,并进行解压
cd /usr/local
tar -zxf jdk-8u231-linux-x64.tar.gz
  1. 配置JAVA环境变量
#打开文件进行配置
vim /etc/profile

#在文件末尾添加
export PATH=$PATH:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
export JAVA_HOME=/usr/local/jdk1.8.0_231
export PATH=$JAVA_HOME/bin:$PATH
#JDK1.8或以上不用配置
export CLASS_PATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar 
#保存并刷新文件, 让环境变量生效
source /etc/profile
  1. 验证JDK安装是否
java -version

显示即为安装成功
二、 安装SSL相关组件,安装Tomcat

去官网下载最新tar.gz版本,并存放到/usr/local目录下。下载地址:https://tomcat.apache.org/download-90.cgi

#安装SSL相关组件
yum install -y openssl openssl-devel

#解压Tomcat
tar -zxf apache-tomcat-9.0.21.tar.gz

#启动Tomcat
./startup.sh

#记得关闭防火墙 如果使用阿里云服务器,需要在阿里云控制台上开启8080端口
systemctl stop firewalld.service

三、安装Mysql

  1. 卸载mariadb数据库
#查看mariadb数据库
rpm -qa | grep mariadb

#卸载mariadb数据库: rpm -e --nodeps  mariadb文件名, 如:
rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64
  1. 卸载已安装的mysql
 #查看 mysql 数据库
rpm -qa | grep -i mysql 

#卸载 mysql 数据库
rpm -e mysql文件名
   
# 如果有关联文件,不能直接卸载。可以用一下命令强制卸载:rpm -e --nodeps mysql文件名)
rpm -e --nodeps mysql文件名

 #删除etc目录下的my.cnf文件
rm /etc/my.cnf 
 #删除残留目录
find / -name mysql -print
#将上述的结果目录全部通过rm -rf命令删除掉.

# 安装基础软件
yum -y install openssl openssl-devel
yum -y install libaio libaio-devel
yum -y install perl perl-devel
yum -y install perl-JSON.noarch
yum -y install autoconf

#关闭selinux,进入到/etc/selinux/config文件,将SELINUX=enforcing 改为SELINUX=disabled
vim /etc/selinux/config
#重启
reboot
  1. 从MySql官网上下载最新的yum
    repository版的rpm包,并存放到/usr/local目录下,下载地址:https://dev.mysql.com/downloads/repo/yum/
    或者从MySql官网上下载最新的https://dev.mysql.com/downloads/mysql/
    下载
  2. 如果下载的是rpm包,则安装刚下载的rpm包,然后下载mysql-server
yum -y localinstall mysql80-community-release-el7-3.noarch.rpm
yum -y install mysql-community-server
  1. 如果下载的是tar包,则进行解压后逐个安装
#解压
tar -xvf mysql-8.0.18-1.el7.x86_64.rpm-bundle.tar
#移除所有已安装的mysql依赖,安装过程未报依赖错误时不用执行此句
yum remove mysql-*
#严格按照下面的顺序逐个安装
rpm -ivh mysql-community-common-8.0.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.18-1.el7.x86_64.rpm
#签名报错可在后面加上--force --nodeps
#rpm -ivh mysql-community-server-8.0.18-1.el7.x86_64.rpm --force --nodeps
  1. 修改MySQL的my.cnf配置文件
vim /etc/my.cnf
#修改如下
[mysqld]
port=3306  #mysql默认的端口就是3306
max_connections=200 #最大连接数

default-authentication-plugin=mysql_native_password  #设置mysql8版本的数据库的密码加密方式

datadir=/var/lib/mysql  #存放数据库的数据的目录地址
socket=/var/lib/mysql/mysql.sock

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
  1. 如果是tar包形式安装,需要进行初始化和授权
mysqld --initialize --console
chown -R mysql:mysql /var/lib/mysql/
  1. 启动mysql服务
systemctl start mysqld.service
  1. 查询初始密码
cat /var/log/mysqld.log | grep password
  1. 使用初始密码修改数据库密码
#登录数据库
mysql -uroot -p+OAZhk/yo8ty

#降低密码策略
SET GLOBAL validate_password.policy=0;

#设置新密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YOUR_PASSWORD';

#开启远程连接
mysql> use mysql;
mysql> update user set host='%' where user='root';
mysql> flush privileges;
mysql> exit;

#提交
flush privileges;

#退出并重启重启mysql
systemctl restart mysqld.service 

四、安装nginx

  1. 安装gcc环境、perl库、zlib、openssl等
#nginx编译依赖gcc环境
yum install -y gcc-c++

#pcre:(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。nginx的http模块使用pcre来解析正则表达式
yum install -y pcre pcre-devel

#该库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip
yum install -y zlib zlib-devel

#一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。nginx不仅支持http协议,还支持https(即在ssl协议上传输http)
yum install -y openssl openssl-devel

#重启
reboot
  1. 官网下载最新的nginx源码包, 上传至Linux服务器中的/usr/local文件下。下载地址:http://nginx.org/
    并解压
tar -zxf nginx-1.14.2.tar.gz
cd nginx-1.14.2
  1. 编译并安装
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
make
make install
  1. 检查安装有效性
#显示安装Nginx的路径, 会发现安装目录是/usr/local/nginx
whereis nginx
cd /usr/local/nginx/
  1. 编辑nginx的配置文件,进行优化,参考优化配置文件如下
#编辑nginx配置文件
vim /usr/local/nginx/conf/nginx.conf

#查看每个物理CPU中core的个数(即核数)
cat /proc/cpuinfo| grep "cpu cores"| uniq
#查看逻辑CPU的个数
cat /proc/cpuinfo| grep "processor"| wc -l

#参考如下:
user  root;
worker_processes                  4;
worker_rlimit_nofile              102400;

events {
    use epoll;
    worker_connections            65535;
    multi_accept                  on;
}


http {
    access_log                    off;
    error_log                     /dev/null;

    server_tokens                 off;
    open_file_cache               max=102400 inactive=20s;
    open_file_cache_valid         30s;
    open_file_cache_min_uses      1;
    reset_timedout_connection     on;

    gzip                          on;
    gzip_min_length               2k;
    gzip_buffers                  4 32k;
    gzip_http_version             1.1;
    gzip_comp_level               6;
    gzip_types                    text/plain text/javascript text/xml text/css application/json application/javascript application/x-javascript application/xml;
    gzip_disable                  "MSIE [1-6]\."
    gzip_vary                     on;
    gzip_proxied                  any;

    tcp_nopush                    on;    
    tcp_nodelay                   on;

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

    keepalive_timeout             16;
	
    proxy_connect_timeout         8s;
    proxy_send_timeout            8s;
    proxy_read_timeout            8s;
    send_timeout                  3s;

    upstream {name} {
               server 192.168.1.0:9001 max_fails=5 fail_timeout=30s weight=1; 
               server 192.168.1.1:9001 max_fails=5 fail_timeout=30s weight=1;
               server 192.168.1.2:9001 max_fails=5 fail_timeout=30s weight=1;
    }

    server {      
        listen       80;
        listen 443 ssl;
        server_name localhost;

        ssl_certificate   cert/214600202240691.pem;
	    ssl_certificate_key  cert/214600202240691.key;
        ssl_session_cache shared:SSL:1m;
	    ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;	
        
        proxy_set_header host                $host;
        proxy_set_header X-forwarded-for $proxy_add_x_forwarded_for;
        proxy_set_header   X-Real-IP   $remote_addr;
		
        location / {
            proxy_pass http://{name};
        }
    }
    
    server {         
	    listen       8080;         
	    server_name  localhost;         
	    location / {
			root {path};         
		}     
	}
}
  1. 验证Nginx配置文件的有效性
/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
#如果出现如下提示, 则表示配置文件有效。
#nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
#nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
  1. 进入nginx的sbin目录下, 并(启动|重新加载|退出)Nginx
cd /usr/local/nginx/sbin

#启动Nginx
./nginx -c /usr/local/nginx/conf/nginx.conf

#停止Nginx
./nginx -s quit

#重新加载配置文件
./nginx -s reload

#拓展

  1. nginx的日志按照天切割
#在你喜欢的某个目录中创建split_nginx_log.sh
vim split_nginx_log.sh

#输入如下脚本,然后保存退出
#!/bin/bash
LOG_PATH=/usr/local/nginx/logs/
PID=/usr/local/nginx/logs/nginx.pid
YESTERDAY=$(date -d "yesterday" +%Y-%m-%d)

mv ${LOG_PATH}access.log ${LOG_PATH}access-${YESTERDAY}.log
mv ${LOG_PATH}error.log ${LOG_PATH}error-${YESTERDAY}.log

kill -USR1 `cat ${PID}`

#修改此文件的权限
chmod +x ./split_nginx_log.sh

#建立定时任务,并输入任务脚本(如:每天凌晨00:00定时执行该脚本)
#编辑定时任务
crontab -e
#输入任务脚本
00 00 * * * /bin/bash /usr/local/nginx/split_nginx_log.sh
  1. nginx常用日志查询
#查询访问最频繁的URL
awk '{print $7}' access.log|sort | uniq -c |sort -n -k 1 -r|more
#查看访问者ip以及该ip下访问的总次数. 在logs文件夹下执行如下代码。得到的结果中,第一段为访问次数, 第二段为对应的ip
awk '{print $1}' access.log |sort |uniq -c|sort -n
  1. nginx配置黑名单
#在nginx中的conf文件夹下新建一个黑名单ip文件, 命名为blacklist.conf,以后新增加黑名单ip只需编辑这个文件即可。 加入如下内容
deny  120.27.XX.XX; 
#在nginx的配置文件nginx.conf中加入如下配置,可以放到http, server, location, limit_except语句块中.
include blacklist.conf; 
#重新加载nginx
./nginx -s reload

引自:Pegasus

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值