安装需要软件
安装VirtualBox
直接来到官网 https://www.virtualbox.org/wiki/Downloads 点击下载最新的virtualbox,双击安装,一路傻瓜化完成。
安装Vagrant
网上有说什么使用gem命令来安装的,建议大家别进这个坑了,直接到官网 https://www.vagrantup.com/downloads.html 下载最新的vagrant,然后双击安装,也是一路傻瓜化,就不说。
在windows下安装vagrant,为了写入相应配置到环境变量,可能会要求重新启动一下系统。
配置Vagrant
下载一个合适的box
进行完以上步骤后,就需要考虑我们的虚拟机需要使用什么操作系统了,我这里会以CentOs7.0为例。在以前使用vm的过程中,我们需要自己去下载镜像,然后进行相关的安装,设置系统等等操作。而vagrant的开源社区,提供了很多已经打包好的操作系统,在vagrant的世界里被称为box,在 http://www.vagrantbox.es/ 这里你可以找到你想要的操作系统box。
完成一个box的安装
box链接:https://github.com/tommy-muehle/puppet-vagrant-boxes/releases/download/1.1.0/centos-7.0-x86_64.box
$ vagrant box add {title} {url}
$ vagrant init {title}
$ vagrant up
vagrant box add 是添加box的命令 其中{title}可以自行设置,我这里使用的是 centos7 ,{url}是下载到本地box路径。我的路径是:C:UsersselinaguoDownloadscentos-7.0-x86_64.box
下面把一些命令执行后的输出进行展示,方便大家比对:
# 安装box
$ vagrant box add CentOs7 /Users/helei/vagrant/centos-7.0-x86_64.box
输出内容:
box中的镜像文件被放到了C:Users当前用户名.vagrant.dboxes目录下。
# 如果是才add 的box,就必须执行本步骤,初始化一次后,以后启动系统,就不需要执行本步骤。
$ vagrant init CentOs7
输出内容:
这样就会在当前目录生成一个 Vagrantfile的文件,里面有很多配置信息
网上有教程说vagrant up直接就可以启动,实际上由于vagrant和vitrualbox都用的新版本,启动的时候会没有任何输出提示,不成功,需要通过以下指令指定provider:
# 启动系统
$ vagrant up --provider='virtualbox'
ssh链接到安装的虚拟机
经过以上操作后,完成了虚拟机的安装,现在需要登录上虚拟机,进行操作。链接很简单,可以使用第三方(xshell等)shell工具或系统自带的,进行登录 ,在系统中,如mac,可直接使用 vagrant ssh 来完成链接。或者使用第三方如xshell,putty等。ip地址是:localhost,端口,需要观察,映射的22端口是多少,如上图,为2200,因为本机已经启动一个端口为2222
Vagrantfile配置
这里会讲下跟网络配置相关的内容:有三种方式:
第一种,通过母机端口映射的方式,可以通过localhost:port直接访问虚拟机
第二种,只允许母机和运行在母鸡的虚拟机之间相互访问,外界用户无法访问到这台机器
第三种:虚拟机和母机享有同等权利,可以提供给与母机同一个ip段的用户访问(具体没用过,是这么解释的)
另外,文件挂载配置,直接可以在虚拟机 /vagrant_data访问
这里会碰到的一个问题,就是配置了网络,但是还是无法访问,是因为有iptables,需要在虚拟机上配下端口访问权限: /sbin/iptables -I INPUT -p tcp --dport 8000 -j ACCEPT
也可以清空防火墙:/sbin/iptables -F
wsgi启动django
代码语言:javascript复制安装uwsgi pip install uwsgi
代码语言:javascript复制不同版本可以通过虚拟环境来启动
uwsgi --virtualenv ../VIRTUAL_ENV/ --http :8000 --ini ./wsgi.ini
虚拟环境的搭建指引链接:
http://www.jianshu.com/p/08c657bd34f1
如果是直接通过uwsgi启动的,需要通过安装dj_static在wsgi.py中加入以下内容就行:
也可以通过ngnix实现静态文件服务,如下
nginx wsgi django
首先,nginx的安装,网上很多,请参考
https://segmentfault.com/a/1190000002797601
安装好了之后,只要填写参数就行
1、单个server转发配置如下:
一定要注意uwsgi_pass这个参数,须在wsgi.ini配置socket 完全一致(我试过0.0.0.0:8000,不生效,出现502bad gateway)
启动方式:uwsgi --virtualenv ../VIRTUAL_ENV/ --ini ./wsgi.ini & /usr/local/your ngnix path/sbin/nginx
2、负载均衡的配置如下:
启动方式:
1、先启动nginx
2、在uwsgi启动APP