前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在Windows机器搭建vagrant+ nginx+uwsgi+django环境

在Windows机器搭建vagrant+ nginx+uwsgi+django环境

原创
作者头像
selinagyan
发布2019-05-08 10:10:37
1.3K0
发布2019-05-08 10:10:37
举报
文章被收录于专栏:vagrantvagrant

安装需要软件

安装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:\Users\selinaguo\Downloads\centos-7.0-x86_64.box

下面把一些命令执行后的输出进行展示,方便大家比对:

# 安装box

$ vagrant box add CentOs7 /Users/helei/vagrant/centos-7.0-x86_64.box

输出内容:

box中的镜像文件被放到了C:\Users\当前用户名.vagrant.d\boxes\目录下。

# 如果是才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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装VirtualBox
  • 安装Vagrant
  • 配置Vagrant
  • 下载一个合适的box
  • 完成一个box的安装
  • ssh链接到安装的虚拟机
  • Vagrantfile配置
  • wsgi启动django
  • nginx+wsgi + django
相关产品与服务
负载均衡
负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档