首页 文章 精选 留言 我的

精选列表

搜索[基础搭建],共10000篇文章
优秀的个人博客,低调大师

新手向: ECS搭建Java运行平台, 安装MySQL 以及Tomcat运行

需要 准备一台ECS主机, 立即购买, 阿里云服务器293/1年 或者 个人阿里云推广返还, 购买最多折上9折 系统推荐CentOS7(以下使用CentOS7作为例子) 准备好Tomcat运行包, 这里选用Apache Tomcat 8.0.53 准备好Java运行环境 这里采用Oracle Java Server JRE 1.8.0_181 可以点击此处进入官网下载历史版本的Java, 需要Oracle账号, 注册一个即可 准备阶段 准备好的服务器, 装了CentOS7.4的系统 看到IP是47.104.66.241, 直接使用SSH连接过去, 这里SSH可以使用 putty Download PuTTY 在HostName中填写IP地址 47.104.66.241, 点击Open, 应该会弹出框 点击是后, 输入用户名密码, 这里使用root可以看到连接成功了 如果看到没有连接成功, 检查下阿里云的安全组然后点击配置规则, 并检查是否有22/22的端口如果没有, 按如图添加一条22的端口, 表示外网可以访问到这个端口如果还是没有, 检查下服务器防火墙是否被打开如果还是没有, 可以发工单求助专业的工作人员. 安装MySQL(该步骤可以跳过) 1. 准备 这是一台全新的服务器, 首先安装 MySQL, 在CentOS中, 可以使用MariaDB来代替MySQL, 安装很简单, 只需控制台输入 yum install mariadb mariadb-server -y 若干秒后看到 .. .. Dependency Installed: libaio.x86_64 0:0.3.109-13.el7 perl-Compress-Raw-Bzip2.x86_64 0:2.061-3.el7 perl-Compress-Raw-Zlib.x86_64 1:2.061-4.el7 perl-DBD-MySQL.x86_64 0:4.023-6.el7 perl-DBI.x86_64 0:1.627-4.el7 perl-Data-Dumper.x86_64 0:2.145-3.el7 perl-IO-Compress.noarch 0:2.061-2.el7 perl-Net-Daemon.noarch 0:0.48-5.el7 perl-PlRPC.noarch 0:0.2020-14.el7 Dependency Updated: mariadb-libs.x86_64 1:5.5.60-1.el7_5 Complete! 即安装完成 2. 运行MariaDB systemctl start mariadb 没有任何返回, 就表示完成了, 接下来就是设置它开机自启动 systemctl enable mariadb 返回 Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service. 表示加入开机启动完成 3. 配置MariaDB 刚安装好的MariaDB需要进行简单的配置命令行输入 mysql_secure_installation 按图中的提示进行操作 时候登陆mysql, 发现已经安装好了 但是此时还不够, 因为默认安装的mariadb, 在存储中文时会报错, 此时要进行配置的更改 修改server.cnf配置文件, 增加连接相关属性 vi /etc/my.cnf.d/server.cnf 光标移动到[mysqld]下方, 按下A键此时左下角出现 -- INSERT --, 表示可以进行编辑状态接着直接键盘输入以下配置 character-set-client-handshake = FALSE character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci init_connect='SET NAMES utf8mb4' lower_case_table_names = 1 # 这个可选, 表示不区分大小写 然后按下Esc键, 此时左下角 -- INSERT --消失接着按下:wq, 直接按就行, 左下角出现对应字符回车, 保存然后修改client.conf文件 vi /etc/my.cnf.d/client.cnf 在[client]中加入如下的话 default-character-set = utf8mb4 :wq保存退出 最后, 重启MariaDB systemctl restart mariadb 重启没有任何提示就结束表示成功 再次进入MySQL, 发现字符集已经完成更改 安装Java 从官网下载Java, 选择这个版本, 下载Tomcat 若干秒后, 下载完毕 使用ssh工具上传到云服务器, 这里ssh工具使用SFTP, 添加后双击进入, 并选择接受并保存 将刚刚下的2个文件直接拖进来即可剩下, 回到服务器上, 由于刚刚上传的文件在 /root下, 进入/root cd /root ls一下发现文件已经上来了 解压这2个文件, 执行后当前目录会多出2个文件夹 tar -zxvf jre-8u181-linux-x64.tar.gz && tar -zxvf apache-tomcat-8.0.53.tar.gz 我个人习惯将java和tomcat放在/usr/local中, 当然也可以直接放在/root中, 如果移动目录使用 mv 老文件(夹)1 [老文件(夹)2] 新文件(夹) 配置Java环境 配置环境变量 vi /etc/profile 移动到底部, 添加如下字段, JAVA_HOME的目录就是刚刚java的目录 export JAVA_HOME=/usr/local/jre1.8.0_181 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 生效配置 source /etc/profile 检验配置输入java -version,如图所示表示java安装成功 运行Tomcat 刚刚Tomcat已经移动到了/usr/local中, 启动非常简单, 直接 cd /usr/local/apache-tomcat-8.0.53/ bin/startup.sh 如图所示表示启动成功 访问这个Tomcat, 因为Tomcat使用的是8080端口, 但是阿里云安全组没有开放这个8080端口, 因此访问是无法访问的进入刚刚的安全组, 添加一条8080的端口再次访问结束了, 如果希望将Tomcat加入到开机启动, 可以在 /etc/rc.local中添加如下 source /etc/profile /usr/local/apache-tomcat-8.0.53/bin/startup.sh 然后运行下 chmod +x /etc/rc.d/rc.local 小插曲 如果遇到Tomcat启动的时候特别慢, 试着做如下修改 参考Tomcat 8熵池阻塞变慢详解 vi /usr/local/jre1.8.0_181/lib/security/java.security 找到如下的行数, 可以在vi中通过按esc, 然后按 / 再输入random搜索这一行继续按n搜索下一个, 直到搜索到如下图的字样时结束修改成如下 最后, 感谢您的浏览.

优秀的个人博客,低调大师

CentOS7.X安装Redis-4.0.8以及Redis集群搭建

安装redis 安装前的准备 yum install \ vim \ wget \ make \ gcc \ gcc-c++ \ automake \ autoconf \ -y \ 下载解压并安装 cd /root wget http://download.redis.io/releases/redis-4.0.8.tar.gz tar -zxzf redis-4.0.8.tar.gz cd redis-4.0.8 make PREFIX=/usr/local/redis/ install 创建配置中要求的数据文件存储位置 mkdir /data mkdir /data/redis mkdir /usr/local/redis/log 添加修改配置文件参考配置 cp ./redis.conf /usr/local/redis vim /usr/local/redis/redis.conf # IP绑定 bind 127.0.0.1 192.168.0.111 # 保护模式(开启条件为各redis之间可以互相通信,做集群不可开启) protected-mode yes # 访问端口 port 6379 # 连接超时,单位S,0为不启用超时 timeout 0 # 以守护进程运行 daemonize yes # 数据文件路径 dir /data/redis # 进程ID文件的路径 pidfile /usr/local/redis/log/redis.pid # 日志文件路径 logfile /usr/local/redis/log/redis.log # 开启键过期删除通知 notify-keyspace-events Ex ESC :wq # 以下安全配置选项仅作参考 # 禁用部分危险命令 rename-command FLUSHALL "" rename-command CONFIG "" rename-command EVAL "" # 添加访问密码 requirepass ******** # IP绑定本机 bind 127.0.0.1 性能优化 # 编辑/etc/rc.local vim /etc/rc.local echo never > /sys/kernel/mm/transparent_hugepage/enabled ESC :wq # 添加/etc/rc.local执行权限 chmod +x /etc/rc.d/rc.local # 编辑/etc/sysctl.conf vim /etc/sysctl.conf vm.overcommit_memory = 1 net.core.somaxconn = 1024 ESC :wq # 立即解决 echo never > /sys/kernel/mm/transparent_hugepage/enabled echo 1024 > /proc/sys/net/core/somaxconn sysctl vm.overcommit_memory=1 sysctl -p 修改目录归属 useradd -s /sbin/nologin -M redis chown -R redis:redis /data/redis chown -R redis:redis /usr/local/redis 启动redis并设置开机启动 # 进入单元文件目录 cd /etc/systemd/system # 创建redis单元文件,格式为: [单元文件名].[单元文件类型] vim redis.service [Unit] Description=Start redis on boot. After=default.target network.target [Service] User=redis Group=redis Type=forking PIDFile=/usr/local/redis/log/redis.pid ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/redis.conf ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/bin/kill -s QUIT $MAINPID PrivateTmp=false Restart=always [Install] WantedBy=multi-user.target ESC :wq # 修改文件权限为只有root用户可以编辑该文件 chown -R root:root /etc/systemd/system/redis.service chmod -R 644 /etc/systemd/system/redis.service # 更新systemd systemctl daemon-reload systemctl enable redis systemctl start redis 存入数据 /usr/local/redis/bin/redis-cli -h 127.0.0.1 set num 123 save get num quit 批量删除匹配规则数据 redis-cli keys [匹配规则]|xargs redis-cli del Redis宕机 aof文件损坏 启动失败 拷贝aof文件 修复坏损的aof文件 redis-check-aof --fix [aof文件名] 重新启动Redis Redis漏洞webshell的利用 参考链接 Redis该漏洞用到的原理如下 redis原生支持通过'redis-cli>config set'在不重启redis服务的情况下,动态修改配置dir、dbfilename; redis的配置中如果指定'dir /www/'和'dbfilename test.php',则当执行save命令时,会在/www/目录下生成一个数据存储文件test.php,虽然该文 件是一个二进制文件,但其内容中包含保存的数据的值,如果/www/目录为web目录,则/www/test.php则会被人利用,成为入侵你服务器的入口; 漏洞举例(这是一个负面教材) redis以超级管理员用户root运行 Nginx以超级管理员用户root启动,子进程也以root运行 web服务器为nginx,并做如下配置: server { listen x; server_name xxx.xxx.com; root /www; location / { index index.php index.html index.htm; } location ~ \.php$ { fastcgi_index index.php; fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } 通过redis-cli执行了以下命令 config set dir /www/ config set dbfilename test.php set test "<?php exec($_GET['cmd']); ?>" save 这时候可怕的事情出现了 在/www/目录下,存在test.php文件,它可以通过http://xxx.xxx.com/test.php访问到 如果现在访问http://xxx.xxx.com/test.php?cmd=xxx,那么xxx就会被以root用户执行(xxx为任意linux命令) Redis漏洞webshell的防范 不要线上使用redis的web管理工具 redis以低权限用户运行(如rediser等让人想不到的用户名) redis仅允许通过本机和内网访问(bind 127.0.0.1 192.168.0.12/24) redis禁用config命令(在配置文件中可以禁用rename-command CONFIG "") web服务子进程以低权限用户运行(因为webshell的运行用户为web服务的子进程) redis集群(cluster方式) 集群前的配置(单机两服务测试6379,6380) # 内网IP:192.168.0.100 修改redis.conf vim /usr/local/redis/redis.conf # 启用cluster cluster-enabled yes # 调用cluster配置文件 cluster-config-file nodes-6379.conf # 集群超时 cluster-node-timeout 15000 # 关闭宕机全停 cluster-require-full-coverage no # 集群从属元素个数 cluster-slave-validity-factor 10 # 从机数最低迁移值(master至少有两台slave,才能做slave迁移) cluster-migration-barrier 1 ESC :wq 配置文件添加 yum install ruby gem install redis cp /usr/local/redis/redis.conf /usr/local/redis/redis.conf.backup cp /usr/local/redis/redis.conf /usr/local/redis/redis-6379.conf cp /usr/local/redis/redis.conf /usr/local/redis/redis-6380.conf mkdir /usr/local/redis/data/6379 mkdir /usr/local/redis/data/6380 修改redis-6379.conf vim /usr/local/redis/redis-6379.conf unixsocket /usr/local/redis/data/6379/redis.sock pidfile /usr/local/redis/log/redis_6379.pid logfile /usr/local/redis/log/redis_6379.log dir /usr/local/redis/data/6379/ bind 192.168.0.100 port 6379 ESC :wq 修改redis-6380.conf vim /usr/local/redis/redis-6380.conf unixsocket /usr/local/redis/data/6380/redis.sock pidfile /usr/local/redis/log/redis_6380.pid logfile "/usr/local/redis/log/redis_6380.log" dir /usr/local/redis/data/6380/ bind 192.168.0.100 port 6380 ESC :wq 修改开机启动 vim /etc/rc.local /usr/local/redis/bin/redis-server /usr/local/redis/redis-6379.conf /usr/local/redis/bin/redis-server /usr/local/redis/redis-6380.conf ESC :wq 创建cluster cd /root/redis/src/ # 查看帮助 ./redis-trib.rb help # 添加绑定 ./redis-trib.rb create --replicas 1 192.168.0.100:6379 192.168.0.100:6380 集群测试 /usr/local/redis/bin/redis-cli -h 192.168.0.100 -p 6379 -c 正常关闭(不要强制关闭) /usr/local/redis/bin/redis-cli -h 192.168.0.100 -p 6379 shutdown 领支付宝红包支持作者

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册