如何在阿里云服务器部署Django
tomcat是一个web容器,java web项目相当与容器中的一个元素 ,当把java web项目部署到服务器的时候 就相当于在容器里面加入了一个元素 tomcat启动的时候 tomcat容器会获得里面元素的相关信息 比如web项目的名称
当用户请求服务器的时候 首先根据请求的一级域名找到你启动的tomcat容器,容器在分析一级域名后面的请求字符窜截取请求的项目名字 ,根据项目名字 把请求信息发给 容器里面与项目名字对应的web项目 然后web项目处理请求 处理完了 将响应信息 发给容器 容器在返回给用户
首先你请求的地址是本机的ip地址 ,这样请求能够发送到本机上 , 那么怎么给本机的tomcat 呢 这关键点就是 端口了 请求会根据本机上所有开启的程序的端口信息 给相应的程序
tomcat的默认端口是8080 所以你的请求地址需要加上:8080 当然你可以更改tomcat的端口比如80 这样你就不用去在请求地址上加:8080 因为100以内的端口 会自动匹配
这个就是一个简单的。
如果你有 webSphere 或者 weblogic 就需要复杂的配置了。不过基本都差不多。理解思想就可以了。
看到这么多回答,也讲的比较细致了。我再来个相对比较简单好用的一键部署WordPress搭建流程。
关于怎么购买阿里云服务器以及域名这里就不写了。可以先去阿里云官网领取代金券,然后再买,划算些。
下面写写拥有云服务器和域名后,如何开始搭建一个WordPress博客网站:
用阿里云服务器搭建一个WordPress网站主要有以下几种方式:
第一种,在购买的时候镜像选择“镜像市场”里面的linux+wordpress版本,也就是已经提前安装了特定环境的版本。登陆云服务器后,就可以直接开始安装配置WordPress了。
第二种,镜像选择“公共镜像”里的linux系统(比如centos7),然后手动配置好服务器环境,再安装WordPress。
第三种,也是最简单,比较推荐新手使用的一种,就是选择“公共镜像”里的linux系统后,云服务器里什么都不要安装,使用纯净的系统,一键安装宝塔面板,然后登陆宝塔面板,可视化操作,一键部署环境和安装WordPress。
下面详细讲讲第三种方法:
在购买云服务器时,地域选择国内是需要备案的,选择中国香港或者海外服务器是不需要备案的。
云服务器内存建议在4G或者以上(避免卡顿的情况),操作系统建议选择CentOS7版本,如下图
下面说说用阿里云服务器建立个人网站(以WordPress为例)的具体流程:
搭建之前,请先将你的域名解析到云服务器公网ip,新手可以选择“快速添加网站解析”,如下图:
1购买好云服务器后,登陆到你的控制台,找到你购买的“云服务器”,登陆进去。
2这时候应该打开了云服务器的命令行终端(阿里云或腾讯云登陆后都是一样的),我们只需把下面一行代码输入,然后按回车键即可。
yum install -y wget && wget -O installsh http://downloadbtcn/install/install_60sh && sh installsh
3 我们耐心等待一会儿,等宝塔面板自动安装完成(中间若出现是否安装Y/N?时,我们只需要输入y就行了)。
安装完成后,我们接着再命令行输入bt,这个时候就会显示面板的使用帮助菜单选项。
bt
4 这时候我们输入数字14,就能看到宝塔面板的登录地址还有用户名和密码。
5我们把登录地址复制到浏览器打开,输入用户名和密码,进入到宝塔面板的后台管理页面。一般来说, 首次登陆进来面板后,会自动推荐你安装环境套件,这里有两种选择,第一种是LNMP套件,第二种是LAMP套件 。如图(建议选择一键安装LNMP)
6为安全起见,建议修改你的用户名和密码,以及面板默认端口。
注意:修改面板端口之前,记得在你的阿里云或者腾讯云控制台,找到你的云服务器,在“安全组”一栏下修改规则,选择入站规则下的“添加规则”。
关于其他的安全设置,我们下一篇文章再讲,这里就先设置到这里。
7下面我们开始来一键部署WordPress建站程序,(提示:如果前面你没有安装LNMP环境或者LAMP环境,也不要着急,我们可以在软件搜索步骤5列出的几个套件手动安装),点击面板左侧“软件商店”,然后找到WordPress,选择一键部署。
8输入你的网站信息,即你的域名。另外,为了避免出现不可知的错误,新手建议不要修改默认创建的数据库名和命令,自己把它存储好就行。(当点击提交后,系统会自动列出数据库名和密码以及网站地址,请保存好这些信息,后面进入WordPress安装需要填写)
9在线安装WordPress网站程序的时候,先选择语言“简体中文”,然后填写数据库名和密码(就是上一步叫你保存的)
10 中间几步省略了,安装步骤填写就行。安装完成后,登陆你的Wordpress管理后台。(后台登陆地址为:你的网址或ip/wp-admin)
11到这里,你的WordPress网站就搭建成了。接着你可以去发布文章或更换主题,以及后期的维护等等,这里就不细说了。
12最后,如何在宝塔面板管理添加站点呢。点击左侧“网站”,选择右边的“添加站点”。接着在弹出的窗口里,填写好你的新站点信息即可。(如果只是部署静态网站的话,就不需要创建数据库)
13然后访问你的网站地址就会显示创建成功!
14接着你可以将你的静态网站源码上传到你的网站目录里,也可以手动部署WordPress网站(需要在上一步里创建数据库)。
15当然,如果你要做的是Wordpress网站,那么建议你先不要添加站点(即省略以上添加站点的步骤),直接在面板左侧“软件商店”选择一键
部署WordPress即可(这时会帮你自己创建数据库,或者手动更改也行),同时也会自动创建站点,部署WordPress成功后,回到你的“网站”目录里就可以看到自己的站点了。
概述与目的
此帖介绍了如何(利用 Ubuntu 操作系统)在阿里云上启动和部署 Django 应用程序。这两个流程的详细步骤说明如下所述:
● 在此实例上安装和部署 Django 应用程序
关于 Django
Django 是一个用 Python 语言写的开源 Web 框架,可帮助开发人员在构想形成后仅数小时内启动 Web 应用程序。它遵循模型视图模板 (MVT) 来构建应用程序,这可降低 Web 开发的复杂性,同时可让开发人员集中精力编写应用程序。它为网站地图、内容管理、用户鉴权、RSS 提要及其他任务提供开箱即用的设置。一些高流量网站使用 Django 是因为它能够快速、灵活地进行调整,从而可满足流量波动高峰期的需求。
前提条件
1 为 Python 应用程序安装 virtualenv 和 virtualenv wrapper,目的在于为 Python 项目创建独立的环境。
● 安装 pip
sudo apt-get install python-pip
● 安装 virtualenv
sudo pip install virtualenv
● 创建目录以存储您的 virtualenv
mkdir ~/virtualenvs
● 安装 virtualenwrapper
sudo pip install virtualenvwrapper
● 将 WORKON_HOME 设置为您的 virtualenv 目录
导出 WORKON_HOME=~/virtualenvs
● 将 WORKON_HOME 设置为您的 virtualenv 目录
导出 WORKON_HOME=~/virtualenvs
● 将 virtualenvwrappersh 添加到 bashrc
将此行添加到 ~/bashrc 的末尾,以便加载 virtualenvwrapper 命令。/usr/local/bin/virtualenvwrappersh
退出,然后重新打开您的 shell,或者使用 bashrc or source ~/bashrc 命令重新加载 bashrc,然后一切准备就绪。
2 安装 git。
apt-get install git
3 安装 Nginx 作为 Web 服务器,这样您便可在其之后运行您的应用程序。
Sudo apt-get install nginx
启动您的第一个 Linux 实例
接下来向您介绍使用阿里云管理控制台运行 ECS 实例的相关步骤。
1 登录到您的帐户,然后导航到“产品与服务”部分下的“云服务器”。单击侧边栏菜单中的概览。这会显示运行中的实例列表。单击购买实例从任意地域购买实例,或者继续到下一步创建新实例。
2 单击侧边栏菜单中的实例。在实例列表中选择所需地域,然后单击右上方栏中的创建实例。
3 系统会将您重新定向到“产品购买”控制台,在此您需要选择偏好的资源包 - 对 ECS 实例和数据传输提供特殊定价的初级资源包或提供两种定价模式的高级购买资源包。您可以根据自身需求选择订阅(按月或按年)或者按量付费。此案例中,我们选择了“按量付费”。
4 在此窗口中,选择要在其中启动 ECS 实例的数据中心地域和可用性区域。如果选择了地域但未选择可用性区域,系统会将实例随机放在任何区域。
5 现在您需要选择自己想要创建的实例类型。根据自身需求,从“生成”选项卡中选择生成实例类型。生成类型根据配置和所用的计算能力表示不同的实例类型。
6 接下来,选择网络类型以启动您的 ECS 实例。可根据自身需求选择经典网络或专有网络。在经典网络中,阿里云以分布式方式分配 IP 地址。它适合于需要简单快速地使用 ECS 的用户。专有网络更多的是一种逻辑隔离私有网络,它支持专用连接。它适合于熟悉网络管理的用户。选择适当的网络类型后,选择网络计费类型:数据传输或固定带宽。在这两种情况下,您都需要设置网络带宽峰值(最大数据传输速率)。
7 现在,您需要选择操作系统。每个选项下都提供了不同操作系统版本的列表。选择 Ubuntu。
8 根据自身需要,从下拉菜单中选择系统磁盘类型。您还可以通过单击“添加磁盘”向此列表添加更多磁盘。
9 在“安全设置”部分中,您可以创建密码以提高安全性,或者在此阶段跳过此步骤并稍后从管理控制台执行此操作。
10 在“采购计划”部分中,键入您的实例名称并设置要启动的实例的数量。
11 在“概览”部分查看配置详情和总价,然后单击立即购买。
12 单击开通确认业务订单并启动实例。
13 启动实例后,您可以在控制台的实例选项卡中查看该实例。
安装和部署 Django 应用程序
您已使用阿里云管理控制台创建和启动 ECS 实例,接下来让我们了解如何安装和部署 Django 应用程序。
1 使用 ssh 命令登录到您的服务器
2 输入密码
3 通过创建一个新的 virtualenv 为部署 Django 应用程序设置环境:
mkvirtualenv DjangoApp
要退出新的 virtualenv,请使用 deactivate。
您可以使用 workon 在环境之间切换。要加载或在 virtualenv 之间切换,请使用 workon 命令:workon DjangoApp
4 在您的当前环境中安装 Django
pip install Django
5 使用 django-admin 命令创建样本项目并将目录更改为项目文件夹。
django-admin startproject todoApp
cd todoApp/
6 迁移或引导您的数据库。
python managepy migrate
7 创建超级用户以访问管理面板。
python managepy createsuperuser
8 设置用户后,通过运行由 managepy 操作的 runserver 命令测试您的应用程序
python managepy runserver 0000:8000
您将看到以下内容在端口 8000 上运行
转至 /admin,这是您的管理面板,您可在此管理应用程序。
现在使用 Nginx 将您的应用程序置于 Web 服务器之后。
9 创建数据库架构 开通 python 环境。
● 将目录更改为 Django 项目目录
● 运行以下命令
python managepy migrate
10 收集所有静态文件(css、js 等)
● 运行以下命令以在任意特定位置收集所有静态文件
Python managepy collectstatic --noinput
● 开发人员负责将 STATIC_URL 路径设置为将收集所有静态文件的位置。
● 这些变量在项目目录内的 settingpy 中定义。
1 STATIC_URL
2 STATICFILES_DIRS
3 STATIC_ROOT
11 使用 uwsgi 服务器安装 uwsgi 库并启动服务器。
pip install uWSGI
● 创建用于部署 Django 应用程序的 ini 文件vim uwsgiini
● 将其保存到应用程序目录上的 uwsgiini。如需进一步了解如何编写 ini 文件,请参阅Python/WSGI 应用程序快速入门。运行此命令以启动您的应用程序。
uwsgi uwsgiini (您的 ini 文件)
12 更改 nginx 配置文件以用于应用程序。
server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; server_name localhost; location /static/ { include uwsgi_params; alias /root/todoApp/public/; } location / { include uwsgi_params; uwsgi_pass unix:/tmp/uwsgisock; } }
13 重启 nginx,随后您的应用程序将启动并在端口 80 上的 nginx 之后运行。
结论
在本文中,我们讨论了如何在阿里云上部署 Django 应用程序。概括地说,第一步是(利用 Ubuntu 操作系统)运行 ECS 实例。然后,您可以在此实例上安装和部署 Django 应用程序。请注意前提条件,确保顺利完成部署。
Windows也不是也是选用的阿里的云服务器?
在你的NGINX的nginxconf配置文件中增加类似如下的配置。
stream {
# windowsdb
upstream windowsdb {
server windows-server-IP-address:xxxx;
}
server {
listen xxxx;
proxy_pass windowsdb;
proxy_connect_timeout 1h;
proxy_timeout 1h;
}
}
0条评论