centos中安装jdk、redis、nginx等

1、安装jdk:

下载:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

// 1、获取到下载链接,直接在虚拟机中下载
wget https://download.oracle.com/otn/java/jdk/8u281-b09/89d678f2be164786b292527658ca1605/jdk-8u281-linux-x64.tar.gz

或者:
yum search java|grep jdk  // 找到可以安装的jdk
yum install 上面命令jdk名称

或者
rpm -ivh 下载的jdk

// 2、解压
tar -zxvf jdk-8u281-linux-x64.tar.gz

// 3、配置环境变量
vi /etc/profile
    export JAVA_HOME=/usr/java/jdk1.8.0_281
    export PATH=$JAVA_HOME/bin:$PATH
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib
// 4、使配置生效
source /etc/profile

    

2、安装reids

下载: https://download.redis.io/releases/

2.1单节点redis

// 1、检查gcc
    gcc -v 
// 安装gcc
    yum install gcc-c++
// redis6版本,gcc的版本需高于5.3, 升级gcc
    yum -y install centos-release-scl
    yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
    scl enable devtoolset-9 bash
#注意:scl命令启用只是临时的,推出xshell或者重启就会恢复到原来的gcc版本。
#如果要长期生效的话,执行如下:
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile

// 1、下载redis-6.2.1
// 2、编译
    cd /usr/local/redis-6.2.1 && make
// 3、安装redis
    cd /usr/local/redis-6.2.1
    mkdir redis
    chmod 775 redis
    make install PREFIX=/usr/local/redis  // 指定目录安装

// 4、修改redis为后台启动(守护模式)
    cp /usr/local/redis-6.2.1/redis.conf /usr/local/redis  // 将配置文件中daemonize 值为yes
// 5、启动redis
    ./usr/local/redis/bin/redis-server /usr/local/redis/bin/redis.conf
// 6、打开redis连接,
    ./redis-cli   或./redis-cli -c -p 6379
    ping  // 出现PONG说名启动成功
       

 2.2 redis集群

1、redis集群至少需要3个节点,因为投票容错机制要求超过半数节点认为某个节点挂了该节点才是挂了,所以2个节点无法构成集群。
2、要保证集群的高可用,需要每个节点都有从节点,也就是备份节点

3、reids版本>5.xxx后,不需要安装ruby,可以直接使用redis-cli搭建集群。对于低版本的redis,在使用集群方式部署时,redis官方提供了redis集群方式的工具:redis-trib.rb,位于xxx/redis-5.0.3/src目录下,它是用ruby写的一个程序,所以需要集群方式部署redis之前,需要安装Ruby环境。

1、创建redis-cluster,将redis复制到此目录下
    mkdir -p /usr/local/redis-cluster
    cp /usr/local/redis/bin/ /usr/local/redis-cluster/redis-7001
    cp /usr/local/redis/bin/ /usr/local/redis-cluster/redis-7001
    ...
    另外三台虚拟机做同样操纵
2、删掉快照文件
    rm -rf /usr/local/redis/bin/dump.rdb
3、修改配置文件redis.conf
    port  7001
    bind  172.20.10.12  #主机IP
    requirepass  123456    #密码
    daemonize  yes #守护进程(后台启动)
    pidfile  /var/run/redis_7001.pid
    cluster-enabled  yes  #开启集群
    cluster-config-file  nodes_7001.conf #集群配置文件名
    cluster-node-timeout  15000 #集群节点之间多少毫秒无法连接后判定节点挂掉
    appendonly  no  #持久化
    dir ./data/ #数据存储目录
    logfile ./redis.log    #日志存储目录
4、每台服务器上按照第三步配置,修改成对应服务器ip和redis端口

5、制作启动脚本
    vi cluster_start.sh
        cd redis-7001
        ./redis-server redis.conf
        cd ../redis-7002
        ./redis-server redis.conf
6、制作关闭脚本
    vi cluster_stop.sh
        pgrep redis-server | xargs -exec kill -9

7、设置防火墙,开放7001,7002端口
    firewall-cmd --zone=public --add-port=7001/tcp --permanent  
    firewall-cmd --zone=public --add-port=7002/tcp --permanent
    firewall-cmd --zone=public --add-port=17001/tcp --permanent
    firewall-cmd --zone=public --add-port=17002/tcp --permanent
    firewall-cmd --permanent --zone=public --list-ports  #查看
    firewall-cmd --reload

注意:redis集群不仅需要开通redis客户端连接的端口,而且需要开通集群总线端口
集群总线端口为redis客户端连接的端口 + 10000
如redis端口为6379
则集群总线端口为16379
故,所有服务器的点需要开通redis的客户端连接端口和集群总线端口
总线端口一定要放开,不然会一直停留在 Waiting for the cluster to join ....阶段,也不会报错


8、创建redis集群
      // --replicas 1 表示每个主数据库拥有从数据库个数为1。前3个代表3个master,后3个代表3个slave。通过该方式创建的带有从节点的机器不能够自己手动指定主节点

    ./redis-cli --cluster create 192.168.1.5:7001 192.168.1.6:7001 192.168.1.7:7001 192.168.1.5:7002 192.168.1.6:7002 192.168.1.7:7002 --cluster-replicas 1
    
    
9、查看集群信息
    ./redis-cli -c -h 192.168.1.5 -p 7001
    cluster info
    cluster nodes
10、测试
    登录集群内任意redis
    ./redis-cli -c -h 192.168.1.5 -p 7001
    set key1 val1

    ./redis-cli -c -h 192.168.1.7 -p 7002
    get key1   #  得到结果: val1

    

3、安装nginx

下载地址:http://nginx.org/en/download.html

3.1 gcc

GCC编译器是Linux下最常用的C/C++编译器,它以gcc命令的形式呈现

gcc -v 

yum install gcc c++  // 未检测到版本信息则用此命令在线安装

3.2 PCRE

PCRE(Perl Compatible Regular Expressions)是一个轻量级的Perl函数库,包括 perl 兼容的正则表达式库。它比Boost之类的正则表达式库小得多。PCRE十分易用,同时功能也很强大,性能超过了POSIX正则表达式库和一些经典的正则表达式库。

rpm -qa pcre  // 检测是否安装,已安装会显示版本号

yum install -y pcre pcre-devel   // 未安装则在线安装

3.3 zlib

zlib是提供数据压缩用的函式库,由Jean-loup Gailly与Mark Adler所开发,初版0.9版在1995年5月1日发表。zlib使用DEFLATE算法,最初是为libpng函式库所写的,后来普遍为许多软件所使用。此函式库为自由软件,使用zlib授权。截至2007年3月,zlib是包含在Coverity的美国国土安全部赞助者选择继续审查的开源项目。zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库。

rpm -qa zlib 

yum install -y zlib zlib-devel  

3.4 OpenSSL

openssl是多功能命令工具,用于生成密钥,创建数字证书,手动加密解密数据。nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http),所以需要在 Centos 安装 OpenSSL 库。

rpm -qa openssl

yum install -y openssl openssl-devel

3.5 安装nginx

下载离线安装包,ftp上传到服务器

cd /usr/local
tar -xzvf nginx-1.18.0.tar.gz
cd nginx-1.18.0
./configure    // 进入nginx解压包根目录,执行配置命令
make // 编译
make install //安装

安装过程中,会打印出安装的目录及配置文件目录

3.6 启动nginx

cd /usr/local/nginx/sbin
./nginx  // 启动,默认端口80
./nginx -s stop   //停止
./nginx -s reload  //重启

ps -ef | grep nginx  // 如果能看到两个相邻ID的进程,说明启动成功

启动成功后,用浏览器访问,会进入下面这个页面, 如:192.168.1.5:80 (80可以省略)

此处如果进入不了此页面,检查服务器防火墙有没有开发80端口:

firewall-cmd --permanent --list-ports  // 查看防火墙开放的端口

firewall-cmd --zone=public --add-port=80/tcp --permanent

firewall-cmd --reload

/usr/local/nginx/conf/nginx.conf配置文件说明:

#user  nobody;  // 所属用户,搭建环境测试时可以改成root,防止出现一些501之类的相应
worker_processes  1; #工作进程:数目。根据硬件调整,通常等于cpu数量或者2倍cpu数量。
 
#错误日志存放路径
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
 
#pid        logs/nginx.pid; # nginx进程pid存放路径
 
 
events {
    worker_connections  1024; # 工作进程的最大连接数量
}
 
 
http {
    include       mime.types; #指定mime类型,由mime.type来定义
    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; #用log_format指令设置日志格式后,需要用access_log来指定日志文件存放路径
					
    sendfile        on; #指定nginx是否调用sendfile函数来输出文件,对于普通应用,必须设置on。
			如果用来进行下载等应用磁盘io重负载应用,可设着off,以平衡磁盘与网络io处理速度,降低系统uptime。
    #tcp_nopush     on; #此选项允许或禁止使用socket的TCP_CORK的选项,此选项仅在sendfile的时候使用
 
    #keepalive_timeout  0;  #keepalive超时时间
    keepalive_timeout  65;
 
    #gzip  on; #开启gzip压缩服务
 
    #虚拟主机, 可以有多个
    server {
        listen       80;  #配置监听端口号
        server_name  localhost; #配置请求服务的主机名、域名或者连接,可以有多个,用空格隔开
 
        #charset koi8-r; #字符集设置
 
        #access_log  logs/host.access.log  main;  # 运行日志的打印位置,main为日志输出格式,在上面的log_format处定义
 
        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$ { #请求的url过滤,正则匹配,~为区分大小写,~*为不区分大小写。
        #    root           html; #根目录
        #    fastcgi_pass   127.0.0.1:9000; #请求转向定义的服务器列表
        #    fastcgi_index  index.php; # 如果请求的Fastcgi_index URI是以 / 结束的, 该指令设置的文件会被附加到URI的后面并保存在变量$fastcig_script_name中
        #    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; # ssl_prefer_server_ciphers  on; #
 
 
    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}
 
}

搭建Ruoyi前后端分离项目时的配置:

user  root;
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;

	upstream ruoyi {
		server 192.168.1.6:8080 weight=5;
		server 192.168.1.7:8080 weight=1;
	}
	
    server {
        listen       80;
        server_name  localhost;

        location / {
            root   /opt/workspace/ruoyi-ui/dist;
            index  index.html index.htm;
        }
		location /prod-api/ {
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
			proxy_set_header REMOTE-HOST $remote_addr;
			proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
			proxy_pass http://ruoyi/;
        }
        #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;
        }
    }
}

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值