一、环境介绍

实验采用的是单节点部署。而多节点部署更适合实际生产环境,单节点部署更适合用于实验搭建与测试,实验拓扑图如图所示。

node.js + nginx

二、搭建配置Openstack

OpenStack目前可以采用多种方法进行搭建,如源码编译安装、Puppet、 安装DevStack脚本安装等,本文采用OpenStack官方网站所提供的指导手册进行安装,详细配置指令如下:

(1)创建Mysql数据库并授权

#mysql -u root –p

(2)安装KeyStone

# yum install -y openstack-keystone

(3)生成Token,并对环境变量设置

# export SERVICE_TOKEN=$(openssl rand -hex 10) 

# export SERVICE_ENDPOINT=http://192.168.5.10:35357/v2.0 

# echo $SERVICE_TOKEN > /tmp/ks_admin_token  59126bc836f2d2640378 

(4)设置配置文件

# openstack-config --set /etc/keystone/keystone.conf

  DEFAULT admin_token $SERVICE_TOKEN 

# openstack-config --set /etc/keystone/keystone.conf

  signing token_format UUID 

(5)启动keystone服务和设置开机自动启动

# chkconfig openstack-keystone on

# service openstack-keystone start 

(6)创建glance数据库

# CREATE DATABASE glance;

(7)glance的安装

# yum install -y openstack-glance

(8)环境变量设置

# source ~/keystonerc_admin

(9)设置配置文件

# openstack-config --set /etc/glance/glance-api.conf

  paste_deploy flavor keystone 

# openstack-config --set /etc/glance/glance-api.conf

   keystone_authtoken admin_tenant_name admin 

# openstack-config --set /etc/glance/glance-api.conf

   keystone_authtoken admin_user admin 

# openstack-config --set /etc/glance/glance-api.conf

   keystone_authtoken admin_password PASSWORD 

# openstack-config --set /etc/glance/glance-registry.conf

   paste_deploy flavor keystone 

# openstack-config --set /etc/glance/glance-registry.conf

   keystone_authtoken admin_tenant_name admin 

# openstack-config --set /etc/glance/glance-registry.conf

   keystone_authtoken admin_user admin 

# openstack-config --set /etc/glance/glance-registry.conf

   keystone_authtoken admin_password PASSWORD

(10)启动glance服务

# chkconfig openstack-glance-registry on 

# chkconfig openstack-glance-api on

# service openstack-glance-registry restart 

# service openstack-glance-api restart 

(11)安装Cinder

# yum install -y openstack-cinder

(12)设置环境变量

# source ~/keystonerc_admin

(13)修改配置文件

# openstack-config --set /etc/cinder/cinder.conf DEFAULT auth_strategy keystone 

# openstack-config --set /etc/cinder/cinder.conf

   keystone_authtoken admin_tenant_name admin 

# openstack-config --set /etc/cinder/cinder.conf

   keystone_authtoken admin_user admin 

# openstack-config --set /etc/cinder/cinder.conf

   keystone_authtoken admin_password PASSWORD

(14)修改tgt配置文件

grep -q /etc/cinder/volumes /etc/tgt/targets.conf || sed -i '1iinclude /etc/cinder/volumes/*' /etc/tgt/targets.conf

(15)启动tgt

#service tgtd start

#chkconfig tgtd on

(16)创建cinder-volumes

使用一个空闲独立的分区,这里这个分区为/dev/sdb1

# vgcreate cinder-volumes /dev/sdb1

(17)安装cinderclient和nova

# yum install -y openstack-nova 

# yum install -y python-cinderclient

(18)修改配置文件

# openstack-config --set /etc/nova/nova.conf DEFAULT auth_strategy keystone 

# openstack-config --set /etc/nova/api-paste.ini

  filter:authtoken admin_token $(cat /tmp/ks_admin_token)

(19)卸载nova-network

# rpm -e openstack-nova-network-2013.1-2.el6.noarch --nodeps

# service messagebus start 

# chkconfig messagebus on

# service libvirtd start 

# chkconfig libvirtd on

# openstack-config --set /etc/nova/nova.conf DEFAULT

   volume_api_class nova.volume.cinder.API 

# openstack-config --set /etc/nova/nova.conf DEFAULT

   enabled_apis ec2,osapi_compute,metadata

(20)创建服务和Endpoint

#keystoneendpoint-create--service_iffdd49433fd7432afb6e1a66964f6b5cc

(21)为OpenStack Networking配置Keystone

# source ~/keystonerc_admin

# keystone service-create --name openstack_network --type network

  --description 'OpenStack Networking Service'

#keystoneendpoint-create--service-id23d5cf3d27a132dabf4faf3de2f0de78

(22)安装 quantum 和插件

# yum install openstack-quantum

# yum install openstack-quantum-openvswitch

(23)配置Openstack-Networking

# openstack-config --set /etc/quantum/quantum.conf

DEFAULT rpc_backend quantum.openstack.common.rpc.impl_qpid 

# openstack-config --set /etc/quantum/quantum.conf

DEFAULT qpid_hostname 192.9.0.106 

# openstack-config --set /etc/quantum/quantum.conf

       keystone_authtoken admin_tenant_name admin 

# openstack-config --set /etc/quantum/quantum.conf

       keystone_authtoken admin_user admin 

# openstack-config --set /etc/quantum/quantum.conf

       keystone_authtoken admin_password PASSWORD

# sudo sh -c 'echo 127.0.0.1 `hostname` >> /etc/hosts'

# quantum-server-setup --plugin openvswitch

# service quantum-server start 

# chkconfig quantum-server on

(24)修改nova.conf

network_api_class = nova.network.quantumv2.api.API

quantum_admin_username = admin

quantum_admin_password = PASSWORD

quantum_admin_auth_url = http://192.9.0.106:35357/v3.0/

quantum_auth_strategy = keystone

quantum_admin_tenant_name = admin

quantum_url = http:// 192.9.0.106:9696/

libvirt_use_virtio_for_bridges=True

(25)安装OpenStack Networking Agents

# yum install -y openstack-quantum-openvswitch

# quantum-node-setup --plugin openvswitch

# service openvswitch start

# chkconfig openvswitch on

# service quantum-openvswitch-agent start

# chkconfig quantum-openvswitch-agent on

# chkconfig quantum-ovs-cleanup on

(26)安装 OpenStack DHCP 服务

#  quantum-dhcp-setup --plugin openvswitch

# service quantum-dhcp-agent restart

# chkconfig quantum-dhcp-agent on

(27)安装OpenStack Networking L5 Agent

# ovs-vsctl add-br br-int

# ovs-vsctl add-br br-ex

# ovs-vsctl add-port br-ex eth1

# yum install -y openstack-quantum

# quantum-l3-setup --plugin openvswitch 

# quantum router-create router1

# vi /etc/quantum/l5_agent.ini

router_id = 5467012f-3d20-7021-c66b-45dc3a3045ca

# service quantum-l5-agent start 

# chkconfig quantum-l5-agent on

(28)启动nova

# service openstack-nova-api start

# service openstack-nova-cert start

# service openstack-nova-conductor start

# service openstack-nova-objectstore start

# service openstack-nova-scheduler start

# service openstack-nova-compute start

(29)Horizon的安装

#yum install -y openstack-dashboard

#yum install -y mod_ssl

#keystone role-create --name Member

(30)HTTP服务器启动

#service httpd start

#chkconfig httpd on

二、node.js + nginx配置指令:

1、安装nginx需要的环境

#yum -y install zlib;

#yum –y install pcre;

#yum –y install openssl;

2、安装nginx服务

#yum –y install nginx ;

3、安装apache服务

#yum –y install httpd ;

4、修改配置文件

在http节点之间添加

upstream myServer{

server www.web1.com:80;  #负载均衡的服务器地址1

server www.web2.com:8080; #负载均衡的地址2

}

5、设置apache配置文件

Listen 80

Listen 8080

<VirtualHost *:80>

ServerName www.test1.com #对应的域名,负载均衡的服务器地址

DocumentRoot /var/www/html#对应的网站文件目录

</VirtualHost>

6、启动nginx服务

#service nginx start

7、测试服务

浏览器输入​​http://172.24.4.3​​,对网页进行刷新,网页会在In the web1和In the web2之间切换,实现负载均衡