阅读 401

Centos7 安装配置 Nginx、MySql、Redis 的运行环境

本文主要讲诉了如何搭建服务器环境及相关配置。

阅读本文大约需要 6 分钟。

背景

现在的Java项目大多不单单采用一个应用服务器(如:Tomcat、Apatch等) 来部署,可能有很多项目需要部署但是80端口只有一个,也有可能有项目是单个应用服务器无法承载的,需要用到负载均衡的等等情况,这里我们可以使用 Nginx 反向代理服务器来完成,所需要的环境为:Nginx、Mysql、JDK等。

Nginx 安装及配置

介绍

Nginx 在维基百科和百度百科中的定义为:异步框架的网页服务器,也可以用作反向代理、负载平衡器和HTTP缓存。他的优点有很多,什么高并发,模块化,性能好等等这里就不多介绍了。

安装

安装方式

安装 Nginx 主要有两种方式,一种是通过 yum 源直接安装,另一种是通过编译安装。

一、yum 源安装的优点:

  • 安装方式简单,不易出错;
  • 可以通过系统服务命令 service 来启动或停止;

缺点:

  • 不能指定安装目录
  • 无法指定安装模块

二、编译安装的优点:

  • 可指定安装目录
  • 可灵活的添加需要的模块

缺点:

  • 安装复杂

这里我们将采用编译安装的方式进行安装。

编译安装
1、检查依赖软件

检查并安装 Nginx 所需的依赖软件

  1. gcc:nginx编译依赖gcc环境

    安装命令:yum install gcc-c++

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

    安装命令:yum install -y pcre pcre-devel

  3. zlib:该库提供了很多种压缩和解压缩的方式,nginx使用zlib对 http包的内容进行gzip。

    安装命令:yum install -y zlib zlib-devel

  4. openssl:一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。nginx不仅支持http 协议,还支持https

    安装命令:yum install -y openssl openssl-devel

2、安装 nginx

点击进入 nginx 官网 里面有最新的主线版本、稳定版和历史版本,这里我们选择最新的主线版本--1.17.6,即:

  1. 我们创建一个 download 目录来存放下载下来的文件,然后进入该目录:
mkdir download
cd download
复制代码
  1. 接着下载 Nginx 1.17.6 的主线版本 ,下载命令:
wget https://nginx.org/download/nginx-1.17.6.tar.gz
复制代码
  1. 解压缩源码包并进入,命令如下:
tar -zxvf nginx-1.17.6.tar.gz
cd nginx-1.17.6
复制代码
  1. 配置编译参数命令(重要),配置如下:
./configure \
--prefix=/mnt/sdc/server/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi \
--with-pcre=../pcre-8.43 \
--with-http_ssl_module --with-http_v2_module \
--with-http_gzip_static_module \
--with-http_gunzip_module \
--with-stream \
--with-stream_ssl_module \
--with-http_sub_module \
--with-http_flv_module \
--with-http_addition_module \
--with-http_realip_module \
--with-http_mp4_module \
--with-ld-opt=-Wl,-E \
--with-cc-opt=-Wno-error \
--with-pcre-jit \
--with-http_stub_status_module
复制代码

注:

执行之前我们需要下载并解压 pcre ,这里我们使用 pcre 源码编译的方式让 Nginx 支持 pcre 模块,这里选择的版本是--8.43,下载命令:

wget https://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gz
tar -zxvf pcre-8.43.tar.gz
复制代码

安装之前需要手动创建上面指定的nginx文件夹,分别是 --prefix 指定的目录、 /var/run/nginx、/var/temp 和 /var/temp/nginx

mkdir /var/run/nginx
mkdir /var/temp
mkdir /var/temp/nginx
复制代码
  1. 编译并安装
make && make install
复制代码

等待安装完成,验证是否安装成功,可以进入 --prefix 指定的目录查看是否存在conf、sbin、html文件夹,若存在则安装成功。

启动
  1. 进入安装目录
cd /mnt/sdc/server/nginx/sbin
复制代码
  1. 启动
./nginx
复制代码
  1. 查看是否启动

打开浏览器,输入你服务器的IP地址,看是否出现如下界面,没有出现可以检测一下服务器的安全组或防火墙,看看80和443的端口是否开启,开启即可。

  1. 停止
  • 快速停止:
 ./nginx -s stop
复制代码
  • 完整停止(建议使用)
./nginx -s quit
复制代码
  1. 重新加载配置
./nginx -t # 测试配置文件是否有问题,出现test is successful 代表配置文件没有问题
./nginx -s reload # 重新加载配置
复制代码
修改 Nginx 配置

执行./nginx启动nginx,这里可以使用-c指定加载的nginx配置文件,如果不指定,nginx在启动时默认加载conf/nginx.conf 文件。

我们打开 nginx.conf

vi conf/nginx.conf
复制代码

修改为:

worker_processes  2; # 可以根据服务器的核数来填写

events {
    worker_connections  4096; # 可以根据服务器的核数来填写
}


http {
    include       mime.types; #文件扩展名与文件类型映射表
    default_type  application/octet-stream; #默认文件类型
    sendfile on; #开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为on,如果用来进行下载等应用或磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常 把这个改成off。
    autoindex on; #开启目录列表访问,适合下载服务器,默认关闭。
    tcp_nopush on; #防止网络阻塞
    tcp_nodelay on; #防止网络阻塞
    keepalive_timeout 120; #长连接超时时间,单位是秒
    gzip on; #开启gzip压缩输出

    server {
        listen       80;
        server_name  localhost;

    }

    include /mnt/sdc/server/nginx/project/*.conf; # 加载其他配置,可以分项目创建,xxx.conf.

}
复制代码

Mysql 5.7 安装及修改数据库目录

下载 Mysql yum包

使用wget 直接下载:

 wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
复制代码

安装软件源

rpm -Uvh mysql57-community-release-el7-11.noarch.rpm
复制代码

安装 Mysql 服务端

yum install  -y  mysql-community-server

复制代码

这里的安装需要等待一会

Mysql 操作

service mysqld start # 启动mysql
service mysqld status # 检查mysql的运行状态
service mysqld stop # 停止mysql
service mysqld restart # 重启mysql

复制代码

修改临时密码

  1. 查看临时密码

为了加强安全性,MySQL5.7为root用户随机生成了一个密码,在error log中,关于error log的位置,如果安装的是RPM包,则默认是/var/log/mysqld.log。 只有启动过一次mysql才可以查看临时密码

可以通过命令来查看临时密码:

grep 'temporary password' /var/log/mysqld.log

复制代码
  1. 登录并修改
mysql -h127.0.0.1 -uroot -p # 登录

ALTER USER 'root'@'localhost' IDENTIFIED BY 'xxxx'; # 修改密码为xxxx

复制代码

这里的密码设置需要复杂一点,如果密码设置的太过于简单,会发生如下的提示:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

解决方案:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

授权其他机器登录

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

FLUSH  PRIVILEGES;

复制代码

修改mysql的数据库目录位置

第一步:创建目录

在你想要的地方创建data目录,如在 /mnt/sdc/mysql/data

mkdir -p /mnt/sdc/mysql/data & cd  /mnt/sdc/mysql/data

复制代码
第二步:停止服务

停掉mysql服务

mysqladmin -u root -p shutdown
Enter password:

复制代码
第三步:迁移目录

/var/lib/mysql 的目录迁移到 /mnt/sdc/mysql/data

mv /var/lib/mysql /mnt/sdc/mysql/data/

复制代码
第四步:设置权限

设置 /mnt/sdc/mysql/data/mysql 文件夹的所属和权限

chown -R mysql:mysql /mnt/sdc/mysql/data/mysql

复制代码
第五步:修改配置

修改 socket 为:/mnt/sdc/mysql/data/mysql/mysql.sock

修改 datadir 为:/mnt/sdc/mysql/data/mysql

设置一个SELinux

setenforce 0

复制代码
最后:重新启动
service mysqld start

复制代码

Redis 的安装与设置

1、下载

到 redis 官网下载最新稳定版的 redis,下载地址:redis.io/download,当前最新版为:5.0.7

wget http://download.redis.io/releases/redis-5.0.7.tar.gz

复制代码

2、解压安装

下载完成后,解压 redis-5.0.7.tar.gz

tar -zxvf redis-5.0.7.tar.gz 

复制代码

进入解压的目录

cd redis-5.0.7

复制代码

使用 PREFIX 可以把 redis 安装到指定目录: 这里安装的目录是 /mnt/sdc/server/redis

make PREFIX=/mnt/sdc/server/redis install

复制代码

4、设置开机启动

在解压的 redis 目录下的 utils 里面找到 redis_init_script,将其拷贝到 /etc/init.d 目录下,重命名为redis,进入到 /etc/init.d/ 目录:

 cd utils/
 cp redis_init_script /etc/init.d/redis
 cd /etc/init.d/

复制代码

使用 vi 编辑 redis

  1. 在脚本的第一行后面添加一行内容如下:
#chkconfig: 2345 80 90 

复制代码
  1. 根据自己的安装目录修改以下5个参数的实际路径:
REDISPORT=6379   #端口                
EXEC=/mnt/sdc/server/redis/bin/redis-server   #启动服务的命令路径
CLIEXEC=/mnt/sdc/server/redis/bin/redis-cli    #客户端路径
PIDFILE=/var/run/redis_${REDISPORT}.pid   #记录pid(进程id)文件路径
CONF="/mnt/sdc/server/redis/${REDISPORT}.conf"        #配置文件路径

复制代码
  1. 更改 redis 开启的命令,增加‘&’来以后台运行的方式执行:
$EXEC $CONF & 

复制代码
  1. 将 Redis 注册成为服务
 chkconfig --add redis  # 注册成为服务
 chkconfig --list redis  # 查看开机自启的服务中是否已经有我们的redis

复制代码

下面代表已加入开机自启的服务

5、redis 配置文件设置

进入redis目录复制 redis.conf 文件到 /mnt/sdc/server/redis/ 文件下,修改起文件为:端口号.conf

打开 端口号.conf

修改 daemonize no 为 `daemonize yes。

6、启动,停止 redis 服务

service redis start  
service redis stop

复制代码

结尾

到此,本文就结束了,如有不当之处敬请指正,一起学习探讨,谢谢🙏。

关注下面的标签,发现更多相似文章
评论