3.1 在服务器上部署你的项目

本文介绍了如何将Flask项目部署到服务器,包括初级部署步骤,如设置Linux或Windows服务器,配置Python环境,修改host和端口,处理防火墙限制。接着讨论了进阶部署,解决并发访问问题,引入Apache和mod_wsgi以支持更多用户同时访问。

3.1 在服务器上部署你的项目

3.1.1 初级部署

OK,假定你已经跟着教程学完了Flask的大概用法并且写好了自己的博客项目,现在我们要把它放到服务器上。为什么呢?我们注意到,我们的flask项目会运行在localhost:5000(也就是127.0.0.1:5000)这个网址上。但是这个网址顾名思义是local的网址,也就是我们本地可以上但别人的电脑却不行。

——大家好,这是我们新上线的网站:127.0.0.1:5000,请大家多多支持!
——什么?打不开?404?在我电脑上好好的,肯定是你们电脑有问题!

为了让大家都能访问我们的网站项目,我们需要一台接入互联网的服务器,在服务器上运行我们的项目。

至于服务器这东西呢,其实也不稀奇,和我们的电脑差不多,只是相比之下服务器所采用的CPU等更加稳定,毕竟要长时间开着;而且大多服务器都没有屏幕,因为桌面是不必要的。系统方面大多是Linux,但Windows Server也是常见的。不过呢,买台服务器比较贵,动不动几千的,所以我们租别人的服务器来用。

这里我们可以选择的系统有Windows Server和Ubantu,鉴于我们是初学者就选熟悉一点的windows。

需要注意的是这篇教程是写给java开发者的,也就是说什么jdk什么tomcat我们统统不用理,而是要配置python环境。和配置你自己的电脑一样的,python、mysql、pip包啥的该装装,要用的数据库该建建。

然后呢把你的flask项目文件copy到服务器上,在主py文件(就是一般是run.py的那个)的(一般是)最后一行app.run()加些东西:

app.run(host = '0.0.0.0', port = 8080)

意思是这个网站的host可以是啥都行,也就是可以运行在你的公网IP上;port就是端口,是冒号后面的那个(默认5000,8080也较常用),你也可以改成任何数字,不要太大就行(除了80端口,分给了IIS)。然后运行,理论上你就可以在任何一台联网的电脑浏览器上输入http://xxx.xxx.xxx.xxx(公网IP):8080/打开你的项目了。

然而,not yet。你会发现并不能打开这个网页。这是因为防火墙禁止了别的电脑访问8080端口。

这样就行啦,下面就可以把你的作品放到朋友圈炫耀了。

此外还要注意两个问题:

  • config里那条关于数据库的配置(SQLALCHEMY_DATABASE_URI)中,localhost和3306端口是是不用改的,什么'0.0.0.0'不关这个事。
  • 记得把migrations文件夹删掉重新migrate一次。

3.1.2 进阶部署

那么,现在朋友圈的诸位吃瓜群众已经可以上我们的网站了。但是很快他们会发现一个问题,就是总是登不上去。这是因为我们python自带的web server只允许一台电脑访问,同时多台是不行的。这时,我们就需要装一个更加强大的web server了(忘记了web server是啥的请回看这个知乎答案)。

由于大部分服务器使用linux系统,web server在linux下操作会比较简便。不过我们还是可以找到windows下的方案:Flask + Apache on Windows。这里面说的mod_wsgi就是个把flask和apache连在一起的桥梁;WSGI则是一个规范,符和这个规范的框架(Web Framework)可以和web server连在一起。

搞定apache之后,我们就可以让朋友圈中诸位好友一起上线了。

部署Web应用程序到没有互联网连接的Linux服务器上,通常需要提前准备好所有必要的依赖和安装包,然后通过本地工具(如Xshell和Xftp)传输到目标服务器上进行安装和配置。以下是完整的步骤说明: ### 3.1 准备阶段 在有网络连接的环境中,提前下载好以下内容: - Web服务器软件(如Tomcat、Nginx、Apache等) - 数据库系统(如MySQL、PostgreSQL等,如果项目依赖) - 项目所需的运行时环境(如JDK、Python运行环境等) - Web项目文件(如WAR包、HTML文件、后端服务代码等) 将所有文件整理好,确保版本兼容性,并将这些文件打包,便于后续传输。 ### 3.2 使用Xshell连接目标服务器 打开Xshell,创建一个新的会话,配置目标Linux服务器的SSH连接信息(IP地址、端口、用户名、密码或密钥),连接成功后进入命令行操作界面。 如果需要传输文件(如Web项目包、依赖库等),可以使用Xftp工具进行文件传输。在Xshell中点击“新建文件传输”按钮,或者使用快捷键 `Alt + P` 打开Xftp窗口,将本地准备好的安装包上传至服务器指定目录(如 `/home/user/webapp`)。 ### 3.3 安装运行环境 根据Web项目的类型,安装相应的运行环境: #### 安装JDK(适用于Java Web项目) ```bash # 解压JDK安装包 tar -zxvf jdk-8u291-linux-x64.tar.gz -C /usr/local/ # 配置环境变量 echo 'export JAVA_HOME=/usr/local/jdk1.8.0_291' >> /etc/profile echo 'export PATH=$JAVA_HOME/bin:$PATH' >> /etc/profile source /etc/profile # 验证安装 java -version ``` #### 安装Tomcat(适用于Java Web应用) ```bash # 解压Tomcat安装包 tar -zxvf apache-tomcat-8.5.55.tar.gz -C /opt/ # 启动Tomcat /opt/apache-tomcat-8.5.55/bin/startup.sh ``` #### 安装Node.js(适用于Node.js项目) ```bash # 解压Node.js安装包 tar -zxvf node-v14.17.0-linux-x64.tar.xz -C /usr/local/ # 配置环境变量 echo 'export PATH=/usr/local/node-v14.17.0-linux-x64/bin:$PATH' >> /etc/profile source /etc/profile # 验证安装 node -v npm -v ``` ### 3.4 部署Web项目 #### 部署Java Web项目(以Tomcat为例) 将本地打包好的 `.war` 文件上传至服务器,放入Tomcat的 `webapps` 目录下: ```bash cp yourapp.war /opt/apache-tomcat-8.5.55/webapps/ ``` Tomcat会自动解压并部署该应用。访问 `http://服务器IP:8080/yourapp` 即可查看部署结果。 #### 部署Node.js项目 上传项目文件夹至服务器,进入项目目录并启动服务: ```bash cd /home/user/webapp/my-node-app npm install --production # 使用本地准备好的node_modules(离线安装) node app.js ``` 建议使用 `pm2` 管理Node.js进程: ```bash npm install pm2 -g pm2 start app.js ``` ### 3.5 配置防火墙与访问 确保服务器的防火墙允许HTTP/HTTPS端口(如80、443、8080等)通过: ```bash # CentOS 7+ firewall-cmd --permanent --add-port=8080/tcp firewall-cmd --reload ``` ### 3.6 验证部署 通过浏览器访问部署Web应用,验证是否部署成功。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值