nginx+php-fpm+虚拟主机及负载均衡的搭建

admin 2022年4月9日00:45:39评论75 views字数 2592阅读8分38秒阅读模式

nginx + php-fpm + 虚拟主机及负载均衡的搭建

By:0x584A Date:2015年11月22日 22:48:36

1 前言

今天运气不太好,在做测试的时候CentOS镜像挂了,随后VM10虚拟机软件了抽风了。折腾了一早上
并没什么X用,google上的各种方法都尝试了一遍,结果我不说了。我给它跪了。

我这暴脾气简直不能忍,上阿里云上买了台ECS,CentOS 7.0 64位。懒得在花费大把的时间去装系统
什么的了。刚好也让我复习下LNMP环境搭建。

话说LNMP一键安装包很强大,额.. 等以后有时间再去试试。

2 nginx 的安装

以前都没试过yum安装(因为是在虚拟机下嘛),所以nginx的安装我就直接用yum装得了。阿里云的1Mbps还算给力。

因为镜像已经自带资源库了。所以就不手动增加了,直接运行命令安装。

yum install nginx

安装完成后,默认路径如下:

默认配置文件地址:/etc/nginx/nginx.conf 默认首页地址:/usr/share/nginx/html/index.html

安装好以后将 nginx 加入系统服务:

service nginx status

再测试一下 nginx 的配置文件:

nginx -t

回显:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful

好了! 启动完成后,我们只需要打开浏览器输入本地查看是否正常显示即可。

3 Mysql的安装

mysql 我选择的是源码安装,因为个人比较喜欢把安装的软件指定到 /usr/local/ 这个目录下,
要是yum再将其安装至 /etc 目录… 呵呵..

再次之前我先安装个vsftpd,并建立一个useradd 用户 用于方便上传本地下载的源码包。因为那1Mbps的网络从官网克隆过来
实在太坑了,我还不如自个传。

我安装的mysql版本是 mysql-5.5.44,先增加一个mysql组:

groupadd mysql

虽后新增加一个mysql用户 用于对mysql的操作 并将其加入至mysql组中

useradd mysql -g mysql

将上传上的源码包解压,并进入其目录:

tar -zxvf mysql-5.5.44.tar.gz

cd mysql-5.5.44

配置mysql编译选项,指定安装路径及支持的字符集

./configure —prefix=/usr/local/mysql —with-charset=utf8 —with-extra-charsets=gbk,gb2312,binary

随后遍历安装即可

make && make install

配置并初始化mysql

cp support-files/my-medium.cnf /etc/my.cnf

cd /usr/local/mysql

初始化数据库

./bin/mysql_install_db —user=mysql —datadir=/usr/local/mysql/data

为了安全,把所有文件修改为root用户所有, (对mysql进行降权)

chown -R root .

把data目录修改为mysql用户所有

chown -R mysql data

chgrp -R mysql .

启动mysql服务

bin/mysqld_safe —user=mysql &

测试服务器,并设置mysql root用户密码

mysql>use mysql

mysql>update user set password=PASSWORD(‘password’) where user=’root’

清空权限缓存,使更改立即生效。

flush privileges

在为mysql加上个软链接,OK完美搞定!

4 安装PHP-fpm

依然是源码安装,先解压源码包

tar -zxvf php-5.3.28.tar.gz

安装

cd php-5.3.28

./configure —prefix=/usr/local/php —enable-fpm && make && make install

修改php-fpm配置文件

cd /usr/local/php/etc

cp php-fpm.conf.default php-fpm.conf

启动服务

cd ../sbin
./php-fpm

查看下是否启动了

ps aux | grep php-fpm

5 配额虚拟主机

http {     # 第一个虚拟主机     server {         # 监听的IP和端口         listen    127.0.0.1:80;         # 主机名称 及域名         server_name  localhost;         # 访问日志文件存放路径         access_log   logs/server1.access.log combined;         location / {             # 默认的首页文件,顺序从左到右             index index.html index.htm             # html网页文件存放的目录             root /usr/www/blog;         }     } }

6 搭建负载均衡(轮循)

什么是负载均衡呢?

负载均衡是由多台服务器以对称的方式组合成一个服务器集合,每天服务器都具有等价的地位,
都可以单独对外提供服务而无需其他服务器辅助。通过某种负载分担技术,将外部发送过来的请求
均匀分配到对称构造中的某一台服务器上。

先在网站根目录下建立两个测试用的站点,并生成测试用的index.html页面。

nginx+php-fpm+虚拟主机及负载均衡的搭建

随后在nginx的配置文件中进行如下配额(记得cp一份做备份,养成好习惯):

cp nginx.conf nginx.conf.bak

nginx+php-fpm+虚拟主机及负载均衡的搭建

这时的负载均衡已经生效了,我们打开页面看看。

原页面:
nginx+php-fpm+虚拟主机及负载均衡的搭建

重启nginx后的页面:

nginx+php-fpm+虚拟主机及负载均衡的搭建

如果我们对页面不断的强制刷新时,会发现页面内容出现了更改:

nginx+php-fpm+虚拟主机及负载均衡的搭建

好了!到此负载均衡已经搭建好了。是不是挺简单呢? 那么问题来了,服务器怎么存储我的会话呢(比如Session)?

7 负载均衡(轮循)

其实也很简单,只需要在upstream段中加上一句代码即可。这样当我们请求页面时,会持续对一台服务器进行会话,
其会话不会切换至另外一台服务器。

vim 打开 nginx.conf 文件找到html块,添加一句:ip_hash;

    upstream backend{         # 一次性哈希 默认走轮循         ip_hash;         server 127.0.0.1:81;         server 127.0.0.1:82;     }

原文始发于微信公众号(一个人的安全笔记):nginx+php-fpm+虚拟主机及负载均衡的搭建

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年4月9日00:45:39
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   nginx+php-fpm+虚拟主机及负载均衡的搭建https://cn-sec.com/archives/772051.html

发表评论

匿名网友 填写信息