用Docker配置简单的Nginx+Apache的web负载均衡
2016-07-21 10:58
591 查看
这是本人第一次写CSDN博客,有出错的地方欢迎大家指正(别喷我~~),谢谢!应该是原创吧,网上大都是Nginx+Tomcat的配置。。。
介绍一下基本配置,宿主机系统是Ubuntu14.04,Docker容器也是用的Ubuntu14.04。
Docker的安装就不在这赘述了,首先说说容器的配置吧。
1、首先是用Dockerfile做镜像
编辑Dockerfile内容如下:
因为用的语言是php,所以在容器中也需要安装php环境,用VOLUME创建可挂载的文件夹,创建容器时挂载宿主机文件夹,这样方便传代码,EXPOSE 80端口,最后用ENTRYPOINT和CMD指令组合来在容器启动时默认运行Apache。
创建镜像:
2、在创建的php文件夹中写个简单的获取服务器ip的php代码
3、建立容器
接下来是在宿主机中安装配置Nginx服务器
1、安装Nginx服务器
2、配置Nginx,这个网上很多说法,都试了试,最后综合了一下才成功,不知道是不是我的问题,不过还是说一下我自己的配置
编辑/etc/nginx/sites-available/default这个文件
先找到server { 修改index这一行,添加index.php,index index.php index.html index.htm;
然后找到location ~ \.php$ {这,取消这6行注释
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
}
保存文件,命令行输入/etc/init.d/nginx reload 使配置生效
3、安装php sudo apt-get install -y php5-fpm
4、配置php监听端口 /etxc/php5/fpm/pool.d/www.conf
把 listen = /var/run/php5-fpm.sock 改成 listen = 127.0.0.1:9000
重启php
最后是负载均衡的配置,编辑/etc/nginx/nginx.conf文件
在http { 下添加,
保存文件,重启Nginx服务器,service nginx restart。
用浏览器访问192.168.1.99/info.php就会发现浏览器显示
![](https://oscdn.geek-share.com/Uploads/Images/Content/202006/01/50b9d11c72215382ba3b9bbba187e083)
刷新后,显示,说明配置成功
介绍一下基本配置,宿主机系统是Ubuntu14.04,Docker容器也是用的Ubuntu14.04。
Docker的安装就不在这赘述了,首先说说容器的配置吧。
1、首先是用Dockerfile做镜像
mkdir apache-php
cd apache-php
touch Dockerfile
mkdir php
编辑Dockerfile内容如下:
FROM ubuntu:14.04 MAINTAINER Adward RUN apt-get -yqq update RUN apt-get -yqq install php5 RUN apt-get -yqq install apache2 VOLUME ["/var/www/html"] WORKDIR /var/www/html ENV APACHE_RUN_USER www-data ENV APACHE_RUN_GROUP www-data ENV APACHE_LOG_DIR /var/log/apache2 ENV APACHE_PID_FILE /var/run/apache2.pid ENV APACHE_RUN_DIR /var/run/apache2 ENV APACHE_LOCK_DIR /var/lock/apache2 RUN mkdir -p $APACHE_RUN_DIR $APACHE_LOCK_DIR $APACHE_LOG_DIR EXPOSE 80 ENTRYPOINT ["/usr/sbin/apache2"] CMD ["-D", "FOREGROUND"]
因为用的语言是php,所以在容器中也需要安装php环境,用VOLUME创建可挂载的文件夹,创建容器时挂载宿主机文件夹,这样方便传代码,EXPOSE 80端口,最后用ENTRYPOINT和CMD指令组合来在容器启动时默认运行Apache。
创建镜像:
sudo docker build -t apache-php .
2、在创建的php文件夹中写个简单的获取服务器ip的php代码
<?php $server_ip = apache_getenv("server_addr"); echo "the ip of this apache server is: ".$server_ip; ?>
3、建立容器
sudo docker run -p 1180:80 -d -name apache1 -v /root/apache-php/php:/var/www/html apache-php用宿主机的1180端口作为容器的80端口,挂载php文件夹到容器apache工作文件夹,同理再建一个容器,用宿主机的1280端口
sudo docker run -p 1280:80 -d -name apache1 -v /root/apache-php/php:/var/www/html apache-php
接下来是在宿主机中安装配置Nginx服务器
1、安装Nginx服务器
sudo apt-get install -y nginx
2、配置Nginx,这个网上很多说法,都试了试,最后综合了一下才成功,不知道是不是我的问题,不过还是说一下我自己的配置
编辑/etc/nginx/sites-available/default这个文件
先找到server { 修改index这一行,添加index.php,index index.php index.html index.htm;
然后找到location ~ \.php$ {这,取消这6行注释
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
}
保存文件,命令行输入/etc/init.d/nginx reload 使配置生效
3、安装php sudo apt-get install -y php5-fpm
4、配置php监听端口 /etxc/php5/fpm/pool.d/www.conf
把 listen = /var/run/php5-fpm.sock 改成 listen = 127.0.0.1:9000
重启php
最后是负载均衡的配置,编辑/etc/nginx/nginx.conf文件
在http { 下添加,
http { upstrem balance { server 192.168.1.99:1180 weight=5; server 192.168.1.99:1280 weight=5; } server { listen 80; server_name 192.168.1.99; location / { proxy_pass http://balance; } } }
保存文件,重启Nginx服务器,service nginx restart。
用浏览器访问192.168.1.99/info.php就会发现浏览器显示
刷新后,显示,说明配置成功
相关文章推荐
- Ubuntu 默认壁纸历代记
- Ubuntu Remix Cinnamon 20.04 评测:Ubuntu 与 Cinnamon 的完美融合
- 关于Ubuntu 11.10启动提示waiting for the network configuration的问题
- 在 Ubuntu 桌面中使用文件和文件夹
- nginx代理指定目录
- ubuntu下chrome无法同步问题解决
- centos6.5上安装docker
- 访问Nginx发生SSL connection error的一种情况
- Ubuntu Linux使用体验
- docker容器的网络信息查看
- 使用 GNOME 优化工具自定义 Linux 桌面的 10 种方法
- 以Ubuntu 9.04为例 将工作环境迁移到 Linux
- Nginx+Naxsi部署专业级Web应用防火墙
- VirtualBox虚拟机XP与宿主机Ubuntu互访共享文件夹
- 从USB安装Ubuntu Server 10.04.3 图文详解
- Ubuntu 15.04 正式版发布下载
- Linux-Ubuntu 10.04安装Cadence-ic610 方法总结图解
- CentOS 6.2实战部署Nginx+MySQL+PHP
- Apache Isis 1.4.0 发布,领域驱动开发框架
- Ubuntu 12.04和Windows 7双系统安装图解