部署LNMP+ELK

LNMP+EFK

主机 软件服务版本 主机名
192.168.100.100 Nginx-1.18、Filebeat node100
192.168.100.101 PHP-5.6.27 node101
192.168.100.102 MySQL5.7 node102
192.168.100.103 Kafka kafka103
192.168.100.104 Kafka node104
192.168.100.105 Kafka node105
192.168.100.106 ES、Kibana、Logstash node106
192.168.100.107 ES node107
192.168.100.108 ES node108

一、分离部署LNMP架构搭建并运行WordPress站点实例

很多人在搭建的时候都是使用的一台机器来部署LNMP架构,但是我们在实际的工作中一般都是分离部署的。也就是说MySQL是MySQL,它是一台单机,分离部署自己跑自己的服务,提高效率!

关键概念:

HTTP是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。

HTTPS (全称:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。HTTPS 在HTTP 的基础下加入SSL 层,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。 HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间)。这个系统提供了身份验证与加密通讯方法。它被广泛用于万维网上安全敏感的通讯,例如交易支付等方面。

PHP-FPM(FastCGI Process Manager:FastCGI进程管理器)是一个PHPFastCGI管理器。

CGI(Common Gateway Interface)全称是“通用网关接口”,是一种让客户端(Web浏览器)与Web服务器(nginx等)程序进行通信(数据传输)的协议。

FastCGI(Fast Common Gateway Interface)全称是“快速通用网关接口”是通用网关接口(CGI)的增强版本,由CGI发展改进而来,主要用来提高CGI程序性能,类似于CGI,FastCGI也是一种让交互程序与Web服务器通信的协议。

在这里插入图片描述

OS:CentOS Linux release 7.4.1708 (Core)

主机 软件服务版本 主机名
192.168.100.100 Nginx-1.18、Filebeat node100
192.168.100.101 PHP-5.6.27 node101
192.168.100.102 MySQL5.7 node102

在所有主机配置A记录解析

[root@node100 ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.100.100 node100
192.168.100.101 node101
192.168.100.102 node102
192.168.100.103 node103
192.168.100.104 node104
192.168.100.105 node105
192.168.100.106 node106
192.168.100.107 node107
192.168.100.108 node108

一、首先安装Nginx(192.168.100.100主机操作)

优化环境
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config &> /dev/null
setenforce 0
systemctl stop firewalld
systemctl disable firewalld
iptables -F
systemctl stop NetworkManager &> /dev/null
systemctl disable NetworkManager &> /dev/null
1)安装相关的依赖包
[root@node100 ~]# yum install -y gcc gcc-c++ openssl-devel zlib-devel zlib pcre-devel 
2)建立Nginx用户并指定id
[root@node100 ~]# groupadd -g 1001 nginx
[root@node100 ~]# useradd -u 900 nginx -g nginx -s /sbin/nologin
[root@node100 ~]# tail -1 /etc/passwd
nginx:x:900:1001::/home/nginx:/sbin/nologin

3)下载Nginx源码安装包并安装
[root@node100 ~]# cd /usr/local/src
[root@node100 src]# ls
[root@node100 src]# yum install -y wget
[root@node100 src]# wget https://nginx.org/download/nginx-1.18.0.tar.gz
[root@node100 src]# tar xf nginx-1.18.0.tar.gz 
[root@node100 src]# ls
nginx-1.18.0  nginx-1.18.0.tar.gz
[root@node100 src]# cd nginx-1.18.0/
[root@node100 nginx-1.18.0]# ls
auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  man  README  src
[root@node100 nginx-1.18.0]#./configure --prefix=/usr/local/nginx --with-http_dav_module --with-http_stub_status_module --with-http_addition_module --with-http_sub_module --with-http_flv_module --with-http_mp4_module --with-http_ssl_module --with-http_gzip_static_module --user=nginx --group=nginx && make && make install
4)创建软连接并启动Nginx访问测试
[root@node100 nginx-1.18.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
[root@node100 nginx-1.18.0]# nginx -t
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
[root@node100 nginx-1.18.0]# netstat -nalptu | grep nginx
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      39063/nginx: master 

在这里插入图片描述

到这里Nginx已经安装完毕,接下来安装php

二、安装PHP(192.168.100.101主机操作)

优化环境
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config &> /dev/null
setenforce 0
systemctl stop firewalld
systemctl disable firewalld
iptables -F
systemctl stop NetworkManager &> /dev/null
systemctl disable NetworkManager &> /dev/null
yum安装:

在CentOS 7系统上安装PHP 7.4版本的方法 - 狂猫 - 博客园 (cnblogs.com)

CENTOS 7 YUM 安装PHP7.4 - 简书 (jianshu.com)

云服务器 手动搭建 LNMP 环境(CentOS 7)-最佳实践-文档中心-腾讯云 (tencent.com)

1)安装相关的依赖包
[root@node101 ~]#  yum  install -y gcc gcc-c++ libxml2-devel libcurl-devel openssl-devel bzip2-devel
2)安装libmcrypt
[root@node101 ~]# cd /usr/local/src
[root@node101 src]# ls
[root@node101 src]# yum install -y wget
[root@node101 src]#  wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz
[root@node101 src]# ls
libmcrypt-2.5.7.tar.gz
[root@node101 src]# tar zxf libmcrypt-2.5.7.tar.gz 
[root@node101 src]# ls
libmcrypt-2.5.7  libmcrypt-2.5.7.tar.gz
[root@node101 src]# cd libmcrypt-2.5.7/
[root@node101 libmcrypt-2.5.7]# ./configure --prefix=/usr/local/libmcrypt && make && make install
3)源码编译安装:

注意:如果网络不好导致不能下载php源码包的话,需要自己从本地上传php源码包!

[root@node101 ~]# ls
anaconda-ks.cfg  php-5.6.27.tar.gz
[root@node101 ~]# cp php-5.6.27.tar.gz /usr/local/src/
[root@node101 ~]# cd /usr/local/src/
[root@node101 src]# ls
libmcrypt-2.5.7         php-5.6.27.tar.gz
libmcrypt-2.5.7.tar.gz
[root@node101 src]# tar zxf php-5.6.27.tar.gz 
[root@node101 src]# ls
libmcrypt-2.5.7         php-5.6.27
libmcrypt-2.5.7.tar.gz  php-5.6.27.tar.gz
[root@node101 src]# cd php-5.6.27/
[root@node101 php-5.6.27]# ls
acinclude.m4         php.ini-production
aclocal.m4           README.EXT_SKEL
build                README.GIT-RULES
buildconf            README.input_filter
buildconf.bat        README.MAILINGLIST_RULES
CODING_STANDARDS     README.md
config.guess         README.namespaces
config.sub           README.NEW-OUTPUT-API
configure            README.PARAMETER_PARSING_API
configure.in         README.REDIST.BINS
CREDITS              README.RELEASE_PROCESS
ext                  README.SELF-CONTAINED-EXTENSIONS
EXTENSIONS           README.STREAMS
footer               README.SUBMITTING_PATCH
generated_lists      README.TESTING
genfiles             README.TESTING2
header               README.UNIX-BUILD-SYSTEM
INSTALL              README.WIN32-BUILD-SYSTEM
install-sh           run-tests.php
LICENSE              sapi
ltmain.sh            scripts
main                 server-tests-config.php
makedist             server-tests.php
Makefile.frag        snapshot
Makefile.gcov        stamp-h.in
Makefile.global      stub.c
makerpm              tests
missing              travis
mkinstalldirs        TSRM
netware              UPGRADING
NEWS                 UPGRADING.INTERNALS
pear                 vcsclean
php5.spec.in         win32
php.gif              Zend
php.ini-development
[root@node101 php-5.6.27]# ./configure --prefix=/usr/local/php5.6 --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-openssl --enable-fpm --enable-sockets --enable-sysvshm --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --with-mhash --with-mcrypt=/usr/local/libmcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2 --enable-maintainer-zts && make && make install

编译安装完php后再创建Nginx用户,要求UID和GID和Nginx机器上的一致!

groupadd -g 1001 nginx

#如果GID冲突,则到/etc/group里面更改GID即可

useradd -u 900 nginx -g nginx -s /sbin/nologin 

#如果UID冲突,则到/etc/passwd里面更改UID即可

# tail -1 /etc/passwd
nginx:x:900:1001::/home/nginx:/sbin/nologin
提供PHP的配置文件及提供脚本
[root@node101 php-5.6.27]# cp php.ini-production /etc/php.ini
[root@node101 php-5.6.27]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm  
[root@node101 php-5.6.27]# chmod +x /etc/init.d/php-fpm  
[root@node101 php-5.6.27]# chkconfig --add php-fpm
[root@node101 php-5.6.27]# chkconfig php-fpm on 
修改php主配置
[root@node101 php-5.6.27]# cp /usr/local/php5.6/etc/php-fpm.conf.default /usr/local/php5.6/etc/php-fpm.conf
[root@node101 php-5.6.27]# vim /usr/local/php5.6/etc/php-fpm.conf  

修改内容如下:

25 pid = run/php-fpm.pid
149 user = nginx
150 group = nginx
164 listen = 192.168.10.12:9000 #PHP主机的IP地址
235 pm.max_children = 50
240 pm.start_servers = 5
245 pm.min_spare_servers = 5
250 pm.max_spare_servers = 35

修改完成后启动php服务

[root@node101 php-5.6.27]# service php-fpm start
Starting php-fpm  done
[root@node101 php-5.6.27]# service php-fpm status
php-fpm (pid 20252) is running...
[root@node101 php-5.6.27]# netstat -pantul | grep php
tcp        0      0 192.168.100.101:9000    0.0.0.0:*               LISTEN      20252/php-fpm: mast 

到这里php安装完成,接下来安装MySQL

三、安装MySQL(192.168.100.102主机操作)

优化环境
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config &> /dev/null
setenforce 0
systemctl stop firewalld
systemctl disable firewalld
iptables -F
systemctl stop NetworkManager &> /dev/null
systemctl disable NetworkManager &> /dev/null
在RHEL7中默认自带了mariadb需要卸载
[root@node102 ~]# rpm -qa | grep mariadb
mariadb-libs-5.5.56-2.el7.x86_64
[root@node102 ~]# yum remove -y mariadb-libs
1)下载MySQL源码包
[root@node102 ~]# cd /usr/local/src
[root@node102 src]# ls
[root@node102 src]# yum install -y wget
[root@mysql src]# wget https://mirrors.aliyun.com/mysql/MySQL-5.7/mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz
[root@node102 src]# ls
mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz

2)解压MySQL源码包把解压的文件拷贝到/usr/local/mysql下,然后进入mysql目录查看
[root@node102 src]# tar  xf mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz 
[root@node102 src]# mv mysql-5.7.36-linux-glibc2.12-x86_64 /usr/local/mysql
[root@node102 src]# cd /usr/local/mysql/
[root@node102 mysql]# ll
总用量 272
drwxr-xr-x  2 root root    4096 17 00:16 bin
drwxr-xr-x  2 root root      55 17 00:16 docs
drwxr-xr-x  3 root root    4096 17 00:16 include
drwxr-xr-x  5 root root     230 17 00:16 lib
-rw-r--r--  1 7161 31415 259199 97 2021 LICENSE
drwxr-xr-x  4 root root      30 17 00:16 man
-rw-r--r--  1 7161 31415    566 97 2021 README
drwxr-xr-x 28 root root    4096 1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

多练项目

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值