您的位置:首页 > 运维架构 > Nginx

部署LNMP平台和相关的实验

2018-01-09 08:29 197 查看
该实验分为四个部分,实验一为搭建LNMP平台,实验二为测试能否解析php的文件

和连接数据库的效果,实验三为实现地址重写的功能,实验四为不同的浏览器,给出不同样式的页面
实验一:部署LNMP环境

一、目标
安装部署Nginx、MariaDB、PHP环境
安装部署Nginx、MariaDB、PHP、PHP-FPM;

启动Nginx、MariaDB、FPM服务;

并测试LNMP是否工作正常。

二、各软件的安装
1、安装源码包安装时需要的依赖包
yum -y install gcc openssl-devel pcre-devel zlib-devel
2、源码安装nginx
useradd -s /sbin/nologin nginx //添加帐号和组
tar -xf nginx-1.8.0.tar.gz //解压源码包
cd nginx-1.8.0/ //进入解压后的目录
./configure \
> -prefix=/usr/local/nginx \ //指定安装路径
> -user=nginx \ //指定用户名
> -group=nginx \ //指定用户组
> -with-http_ssl_module //安装安全模块
make && make install //编译和安装
ln -s /usr/local/nginx/sbin/nginx /usr/sbin/ //做软链接,方便服务启动
3、安装mariadb
yum –y install mariadb mariadb-server mariadb-devel
mariadb-devel //指的是包含开发首要的文件和一些静态库
4、安装php和php-fpm
yum –y install php php-mysql //安装php解释器和连接mysql的工具
rpm -ivh php-fpm-5.4.16-36.el7_1.x86_64.rpm //FastCGI进程管理器
5、启动三个服务
nginx //启动nginx服务
systemctl start mariadb //启动mariadb数据库
systemctl start php-fpm //启动fastcgi进程管理器

实验二、构建LNMP平台

一、目标
沿用实验一,通过调整Nginx服务端配置,实现以下目标:
配置Fast-CGI支持PHP网页

创建PHP测试页面,测试使用PHP连接数据库的效果

二、方案
使用2台RHEL7虚拟机,其中一台作为LNMP服务器(192.168.4.103)、
另外一台作为测试用的Linux客户机(192.168.4.101)
Nginx结合FastCGI技术即可支持PHP页面架构,因此本案例,需要延续实验一的实验内容
通过修改Nginx及php-fpm配置文件实现对PHP页面的支持
三、实施步骤
1、创建并修改php-fpm配置文件
[www]

listen = 127.0.0.1:9000 //php的监听端口

listen.allowed_clients = 127.0.0.1 //

user = apache

group = apache

pm = dynamic //进程管理方式为动态

pm.max_children = 50 //最大进程数

pm.start_servers = 5 //最小进程数

pm.min_spare_servers = 5 //最少需要几个空闲着的进程

pm.max_spare_servers = 35 //最多允许几个进程处于空闲状态
重启服务

2、修改Nginx配置文件并启动服务
location / {

root html;

index index.php index.html index.htm;

}

location ~ \.php$ {

root html;

fastcgi_pass 127.0.0.1:9000; //把找到的页面给php来解析

fastcgi_index index.php;

include fastcgi.conf; //包含的文件,此处需修改

}
重启服务

3、创建PHP测试页面,来测试是否能解析成功

[root@svr5 ~]# vim /usr/local/nginx/html/test1.php

<?php

$i="This is a test Page";

echo $i;

?>

4、创建PHP测试页面,连接MariaDB数据库

<?php
$links=mysql_connect("localhost","root","");
if($links){
echo "link mysqldb ok";
}
else{
echo "link mysqldb no";
}
?>
5、创建PHP测试页面,连接并查询MariaDB数据库

<?php
$mysqli = new mysqli('localhost','root','','mysql');
if (mysqli_connect_errno()){
die('Unable to connect!'). mysqli_connect_error();
}
$sql = "select * from user";
$result = $mysqli->query($sql);
while($row = $result->fetch_array()){
printf("Host:%s",$row[0]);
printf("</br>");
printf("Name:%s",$row[1]);
printf("</br>");
}
?>
日志文件的两个地址: /usr/local/nginx/logs/error.log /var/log/php-fpm/error.log

实验三、地址重写

一、实验目标
沿用实验一,通过调整Nginx服务端配置,实现以下目标:
所有访问a.html的请求,重定向到b.html;

所有访问192.168.4.103的请求重定向至www.baidu.com;

所有访问192.168.4.103/下面子页面,重定向至www.baidu.com/下相同的页面;

实现curl访问不同的页面。

二、方案
关于Nginx服务器的地址重写,主要用到的配置参数是rewrite:
rewrite 旧地址或文件(支持正则表达式)新地址或文件 [选项];

三、实施步骤
步骤一:修改配置文件(访问a.html重定向到b.html)
1、修改Nginx服务配置,只需要修改一行:
server {

listen 80;

server_name localhost;

location / {

root html;

index index.html index.htm;

rewrite /a.html /b.html; //访问a.html页面时自动跳转到b.html

}

}

2、创建两个不同的页面文件
3、重新加载服务,去客户端测试

步骤二:修改配置文件(访问192.168.4.5的请求重定向至www.baidu.com)
1、修改Nginx服务配置
server {

listen 80;

server_name www.test.com;

rewrite ^/ http://www.baidu.com/; // ^/表示以/开头的所有,

即不管访问www.test.com网站都会跳转到www.baidu.com

location / {

root html;

index index.html index.htm;

}

}

2、重新加载配置文件,去客户端测试

步骤三:修改配置文件(访问www.test.com/下面子页面,重定向至www.baidu.com/下相同的页面)
1、修改Nginx服务配置

server {

listen 80;

server_name www.test.com;

rewrite ^/(.*) http://www.baidu.com/$1; //前面括号里面的时正则表达式,$1复制前面的内容

location / {

root html;

index index.html index.htm;

}

}

2、重新加载文件,去客户端测试

实验四、不同浏览器得到不同样式的页面
其它同上,只需要在配置文件里面加一个判断语句

if ($http_user_agent ~* firefox){ //如果里面有firefox字段,
rewrite ^/(.*) /curl/$1; //跳转页面
}
其它浏览器走默认的
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  nginx 地址重写