码迷,mamicode.com
首页 > 其他好文 > 详细

配置NFS实现nginx动静分离

时间:2020-05-13 23:26:20      阅读:95      评论:0      收藏:0      [点我收藏+]

标签:使用   ddr   php   挂载共享   80端口映射   strong   etc   white   justify   

技术图片

技术图片

案例子任务一、安装配置NFS服务器

步骤1:使用docker容器配置NFS服务器

  1. 启动centos容器并进入

    docker run -d --privileged centos:v1 /usr/sbin/init

    技术图片

  2. 在centos容器中使用yum方式安装nfs-utils

    #yum install nfs-utils

    技术图片

  3. 保存容器为镜像

    #docker commit 容器ID nfs

    技术图片

  4. 启动容器nfs,设定地址为172.18.0.120

技术图片

#docker run -d --privileged --net cluster --ip 172.18.0.120 --name nfs nfs /usr/sbin/init

  1. 进入容器查看nfs配置文件

# more /etc/nfs.conf

# more /etc/nfsmount.conf

  1. 启动nfs服务,查看监听端口

    # systemctl start nfs-server

  2. 新建共享目录/var/www/share,设置权限为777

技术图片

  1. 编辑/etc/exports文件

/var/www/share 172.18.0.*(rw,sync)

技术图片

  1. 导出nfs共享目录

    #exportfs -rv

    技术图片

  2. 查看nfs上的共享目录

    #showmount -e IP地址

    技术图片

步骤1:使用宿主机配置NFS服务器

  1. # yum install nfs-utils //在宿主机安装nfs

技术图片

  1. 查看nfs配置文件

# more /etc/nfs.onf

# more /etc/nfsmount.conf

  1. 启动nfs服务,查看监听端口

    # systemctl start nfs-server

技术图片

  1. 新建共享目录/var/www/share,设置权限为777

技术图片

技术图片

  1. 编辑/etc/exports文件

/var/www/share 172.18.0.*(rw,sync)

???? 技术图片

  1. 导出nfs共享目录

    #exportfs -rv

技术图片

  1. 查看nfs上的共享目录

    #showmount -e IP地址

技术图片

步骤2:启用APP1和APP2两个容器,挂载共享目录

  1. 启动容器APP1,设定地址为172.18.0.111

docker run -d --privileged --net cluster --ip 172.18.0.111 --name APP1 php-apache /usr/sbin/init

技术图片

  1. 启动容器APP2,设定地址为172.18.0.112

docker run -d --privileged --net cluster --ip 172.18.0.112 --name APP2 php-apache /usr/sbin/init

技术图片

  1. # yum install nfs-utils //进入容器并安装nfs
  2. #showmount -e 172.18.0.1 //在APP1查看nfs上的共享目录

技术图片

技术图片

  1. 共享目录挂在到本地目录

# mkdir /var/www/share

# mount 172.18.0.1:/var/www/share /var/www/share

技术图片

  1. 在APP1的/var/www/share上读写文件,在nfs上查看

技术图片

技术图片

  1. APP2按以上步骤配置

技术图片

技术图片

技术图片

?

案例子任务二、配置nginx1、APP1实现动静分离

步骤1:在APP1上编写PHP脚本,上传资源文件

  1. 使用任务一中的APP1
  2. # more /etc/httpd/conf/httpd.conf //查看在APP1的lamp环境
  3. vim /var/www/index.php //在APP1上编辑php文件

<?php

function serverIp(){ //获取服务器IP地址

if(isset($_SERVER)){

if($_SERVER[‘SERVER_ADDR‘]){

$server_ip=$_SERVER[‘SERVER_ADDR‘];

}else{

$server_ip=$_SERVER[‘LOCAL_ADDR‘];

}

}else{

$server_ip = getenv(‘SERVER_ADDR‘);

}

return $server_ip;

}

?>

<!doctype html>

<html>

<head>

<meta charset="utf-8">

<title>动静分离测试</title>

<link rel="stylesheet" type="text/css" href="share/banner.css">

<script type="text/javascript" src="share/jquery-1.7.2.min.js"></script>

</head>

<body>

<div class="banner">

<ul>

<li><img src="share/banner_02.jpg" /></li>

<li><img src="share/banner_01.gif" /></li>

</ul>

</div>

<div class="main_list">

<ul>

<li><a href="#">动静分离测试...</a></li>

<li><a href="#">动静分离测试...</a></li>

</ul>

</div>

?<span><?php echo serverIp(); ?></span>

</body>

</html>

技术图片

  1. 把图片资源文件上传到APP1服务器的 /var/www/share目录

技术图片

  1. 在宿主机nfs服务器的 /var/www/share目录中检查文件是否存在

技术图片

  1. 在宿主机使用curl访问http://172.18.0.111/index.php

技术图片

?

步骤2:配置nginx反向代理,访问APP1

  1. 启动容器nginx1,设定地址为172.18.0.11,把80端口映射到宿主机8080

docker run -d --privileged --net cluster --ip 172.18.0.11 -p 8080:80 --name nginx1 nginx-keep /usr/sbin/init

技术图片

  1. 在nginx1上编辑/etc/nginx/nginx.conf,重启nginx服务

server {

listen 80;

server_name localhost;

location / {

proxy_pass http://172.18.0.111;

}

  1. 在主机使用浏览器访问http://192.168.*.100/index.php

技术图片

步骤3:配置nginx反向代理,宿主机nginx,支持动静分离

  1. 在nfs宿主机编辑/etc/nginx/conf.d/ default.conf,启用nginx服务

server {

listen 80;

server_name file.test.com;

location / {

root /var/www;

index index.html index.htm;

}

}

技术图片

技术图片

  1. 在nginx1上编辑/etc/nginx/nginx.conf,重启nginx服务

server {

listen 80;

server_name localhost;

location / {

proxy_pass http://172.18.0.111;

}

location /share {

proxy_pass http://172.18.0.1/share;

}

}

技术图片

  1. 在主机使用浏览器访问http://192.168.*.100/index.php

技术图片

步骤4:配置nginx1、APP1、APP2、宿主机nfs和nginx,支持负载均衡动静分离

  1. 容器APP1和宿主机使用上面步骤做好的,不做调整
  2. 仿照步骤1,在APP2上编写PHP脚本,上传资源文件

技术图片

技术图片

  1. 在nginx1上编辑/etc/nginx/nginx.conf,重启nginx服务

server {

listen 80;

server_name localhost;

location / {

proxy_pass http://APP;

}

location /share {

proxy_pass http://172.18.0.1/share;

}

upstream APP {

server 172.18.0.111;

server 172.18.0.112;

}

}

技术图片

  1. 在主机使用浏览器访问http://192.168.*.100/index.php

技术图片

技术图片

配置NFS实现nginx动静分离

标签:使用   ddr   php   挂载共享   80端口映射   strong   etc   white   justify   

原文地址:https://www.cnblogs.com/jake-jin/p/12885296.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!