supervisor 管理mysql_Linux nginx+node+supervisor+mysql+redis 环境部署详情过程

Linux nginx+node+supervisor+mysql+redis 环境部署详情过程

环境部署

系统环境 Centos 7.2

架构:nginx + node + supervisor + mysql + redis

添加默认的环境配置信息

yum -y install gcc gcc-c++ autoconf automake make yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel

一、nginx部署

gcc安装

安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装:

yum install -y gcc-c++

PCRE pcre-devel 安装

PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。nginx也需要此库。命令:

yum install -y pcre pcre-devel

zlib 安装

zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库。

yum install -y zlib zlib-devel

OpenSSL 安装

OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。

nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http),所以需要在 Centos 安装 OpenSSL 库。

yum install -y openssl openssl-devel

官网下载

直接下载.tar.gz安装包,地址:https://nginx.org/en/download.html 使用wget命令下载(推荐)。 wget http://nginx.org/download/nginx-1.12.0.tar.gz

安装

# 解压 tar -zxvf nginx-1.12.0.tar.gz cd nginx-1.12.0 # 配置 ./configure # 编译安装 make make install # 查找安装的路径 whereis nginx

添加nginx服务

vim /lib/systemd/system/nginx.service

添加如下内容:

[Unit] Description=nginx After=network.target [Service] Type=forking ExecStart=/usr/local/nginx/sbin/nginx ExecReload=/usr/local/nginx/sbin/nginx -s reload ExecStop=/usr/local/nginx/sbin/nginx -s stop PrivateTmp=true Restart=on-failure RestartSec=20s [Install] WantedBy=multi-user.target

设置开机自动启动

systemctl enable nginx.service

nginx配置

添加log目录

mkdir -p /var/log/nginx

修改nginx.conf

vim /usr/local/nginx/conf/nginx.conf

添加如下内容:

#user nobody; worker_processes 1; error_log /var/log/nginx/error.log; pid /var/log/nginx/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 /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; include /usr/local/nginx/conf/conf.d/*.conf; }

二、mysql部署

配置YUM源

# 下载mysql源安装包 wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm # 安装mysql源 yum localinstall mysql57-community-release-el7-8.noarch.rpm # 检查mysql源是否安装成功 yum repolist enabled | grep "mysql.*-community.*"

安装MySQL

yum -y install mysql-community-server

启动MySQL服务

systemctl start mysqld # 查看MySQL的启动状态 systemctl status mysqld

开机启动 — 添加到系统启动

systemctl enable mysqld systemctl daemon-reload

修改root默认密码

mysql安装完成之后,在/var/log/mysqld.log文件中给root生成了一个默认密码。通过下面的方式找到root默认密码,然后登录mysql进行修改:

grep 'temporary password' /var/log/mysqld.log # 修改密码 mysql -uroot -p # 方法1 mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!'; # 方法2 mysql> set password for 'root'@'localhost'=password('MyNewPass4!');

注意:mysql5.7默认安装了密码安全检查插件(validate_password),默认密码检查策略要求密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于8位。否则会提示ERROR 1819 (HY000): Your password does not satisfy the current policy requirements错误

添加远程登录用户

默认只允许root帐户在本地登录,如果要在其它机器上连接mysql,必须修改root允许远程连接,或者添加一个允许远程连接的帐户,为了安全起见,我添加一个新的帐户:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'webuser'@'%' IDENTIFIED BY 'web123!' WITH GRANT OPTION;

配置默认编码为utf8

修改/etc/my.cnf配置文件,在[mysqld]下添加编码配置,如下所示:

[mysqld] character_set_server=utf8 init_connect='SET NAMES utf8'

重新启动mysql服务,查看数据库默认编码

mysql> show variables like '%character%';

默认配置文件路径

配置文件:/etc/my.cnf 日志文件:/var/log/mysqld.log 服务启动脚本:/usr/lib/systemd/system/mysqld.service socket文件:/var/run/mysqld/mysqld.pid 三、node部署

方法一

# 使用root权限的账号运行 curl --silent --location https://rpm.nodesource.com/setup_6.x | bash - # 安装nodejs yum -y install nodejs # 查看nodejs版本 node -v `v6.10.2`

方法二

# 获取rpm包 wget https://rpm.nodesource.com/pub_6.x/el/6/x86_64/nodejs-6.10.2-2nodesource.el6.x86_64.rpm # rpm安装 rpm -ivh nodejs-6.10.2-2nodesource.el6.x86_64.rpm # 查看当前版本号 node -v `v6.10.2`

四、redis部署

官网 https://redis.io/

源码安装redis

# 创建db存储目录 mkdir -p /data/db # 下载源文件 wget http://download.redis.io/releases/redis-3.0.7.tar.gz # 安装 tar zxf redis-3.0.7.tar.gz cd redis-3.0.7 make && make install // 复制文件 mkdir /usr/redis cp redis-server /usr/redis cp redis-benchmark /usr/redis cp redis-cli /usr/redis cp redis.conf /usr/redis

配置文件

修改配置文件 /usr/redis/redis.conf

daemonize yes dir /data/db/

添加服务 —启动配置到系统自启动

vim /lib/systemd/system/redis.service

内容如下:

[Unit] Description=Redis After=syslog.target network.target remote-fs.target nss-lookup.target [Service] Type=forking PIDFile=/var/run/redis.pid ExecStart=/usr/redis/redis-server /usr/redis/redis.conf ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/bin/kill -s QUIT $MAINPID PrivateTmp=true [Install] WantedBy=multi-user.target

// 修改配置信息后执行下面命令刷新配置 systemctl daemon-reload // 添加到系统开机自启动 --- 添加到supervisor守护进程中启动不需要开机启动 systemctl enable redis.service // 启动redis systemctl start redis.service // 停止redis systemctl stop redis.service // 重启redis systemctl restart redis.service

五、supervisor部署

安装pip

wget https://bootstrap.pypa.io/get-pip.py python get-pip.py

安装supervisor

pip install supervisor // 配置文件 echo_supervisord_conf > /etc/supervisord.conf // 新建日志存放目录 mkdir -p /data/log

添加守护配置 /etc/supervisord.conf

// 修改nodaemon nodaemon=true // 修改项目配置目录文件 [include] files = /etc/supervisord.d/*.conf

添加新的项目配置 /etc/supervisord.d/*.conf

command=node server.js -p 80%(process_num)02d process_name=%(program_name)s_%(process_num)02d numprocs=4 numprocs_start=1 directory=/data/web # 这里的项目目录必须存在 umask=022 startsecs=23 autostart=true autorestart=true startretries=10 redirect_stderr=true stdout_logfile=/var/log/%(program_name)s_%(process_num)02d_normal.log stdout_logfile_maxbytes=50MB stdout_logfile_backups=50 stderr_logfile=/var/log/%(program_name)s_%(process_num)02d_error.log loglevel=info user=root

添加supervisor服务

vim /lib/systemd/system/supervisord.service

添加如下内容:

# supervisord service for sysstemd (CentOS 7.0+) # by ET-CS (https://github.com/ET-CS) [Unit] Description=Supervisor daemon [Service] ExecStart=/usr/bin/supervisord ExecStop=/usr/bin/supervisorctl $OPTIONS shutdown ExecReload=/usr/bin/supervisorctl $OPTIONS reload KillMode=process Restart=on-failure RestartSec=42s [Install] WantedBy=multi-user.target

设置开机启动

systemctl enable supervisord.service

服务重启

# 启动服务 systemctl start supervisord.service # 关闭服务 systemctl stop supervisord.service # 重启服务 systemctl restart supervisord.service

注:文中链接是MySQL以及Linux配置所需的文件官方下载地址

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值