目录
最近嫖了一个服务器,想把项目放到服务器上,搞了一天半啥也没弄出来,光服务器就重置了好几次,后来理清了思路,很快就部署好了,现记录一下,防止以后忘记。 我嫖的是腾讯云的轻量服务器,第一次使用,所以还是选择了自己熟悉的Windows系统。
可以通过以下两种方式操作服务器:
:::
二、配置环境 2.1 IIS配置
6. 安装自己需要的组件,这里我用到了CGI、URL重写。打开默认的网站看看是否可以看到界面,如果能,说明IIS配置的差不多了,可以将其删掉(它占用了80端口,也可以不删,后面用其他端口)。
++wwwroot
++++myWeb
++++++web(放前端dist文件夹中的内容)
++++++be(放后端文件)
将前后端文件都放到对应的文件夹中。
Python我使用Miniconda创建的虚拟环境,下载安装Miniconda(参考我的另一篇博客)
python mian.py #输入自己的入口文件名
pip install wfastcgi
这里我前端(http://公网ip/默认80端口)和后端(http://公网ip:8080/)放在了两个不同的站点(我的项目不好放在同一个站点下,后面我会再试试放在同一个站点行不行)。
点击右上角编辑权限。点击安全->点击编辑->点击添加,输入 ==iis apppool\myAppPool== ,(myAppPool是自己创建的应用程序池名称),点击检查名称,没问题可以添加,然后编辑他的权限,选择完全控制,然后应用。
5. 绑定ip,点击右上角绑定,点击添加,输入自己服务器公网ip。点击右边浏览http://公网ip:端口号/可在浏览器中查看网页。如果正常,可以搭建后端站点。
先安装好Web平台组件CGI(安装后可能不显示,关闭IIS管理器重新进入即可)。
点击右上角添加模块映射,请求路径输入*,模块输入FastCgiModule,可执行文件输入刚刚得到的两个路径,中间用 “|” 隔开,然后起一个名字,请求限制取消默认选中的。
5. 在后端文件夹中会有一个web.config配置文件
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="handlePython" path="*" verb="*" modules="FastCgiModule" scriptProcessor="C:\Miniconda3\envs\python38\python.exe|C:\Miniconda3\envs\python38\lib\site-packages\wfastcgi.py" resourceType="Unspecified" />
</handlers>
<security>
<requestFiltering allowDoubleEscaping="true"></requestFiltering>
</security>
</system.webServer>
<appSettings>
<!-- Required settings -->
<add key="WSGI_HANDLER" value="main.app" />
<add key="PYTHONPATH" value="~/" />
</appSettings>
</configuration>
其中的参数大概能看懂,WSGI_HANDLER的value设置成入口文件.app的形式。
今天更新服务器上的文件,然后因为前端URL写错了,出了点故障,才让我明白一点URL怎么工作的,发现之前写的下面的内容不是必须的,是否需要URL重写取决于自己的URL到底是什么样的,如果直接请求后端,那么不需要重写,如果不能直接请求到后端则考虑重写。
-------------------------------------以下是URL重写-----------------------------
现在前端后端都可以被访问了,那么如何将其联系起来呢? 这就要用到刚刚提到的URL重写工具了。我个人理解的这个工具就是将,入站的URL修改为另一个想要访问的URL。我的项目里URL都是“http://公网ip/api”的形式
{R:0} 是 输入的URL
{R:1} 是 去掉api的URL
{R:2} 是 api,后面会用到
我这里想达到这样一个目的:当我传过来一个URL以后,判断api是不是空的,如果是空的就是页面本身,如果不是空的,则重写到后端。
那么我就需要添加条件,当他与模式不匹配(模式为:^(http://公网ip/)$)这个意思就是以http://公网ip/开头结尾的URL,也就是他本身。当不满足这个条件时,重写为:http://公网ip:后端端口号/{R:2},点击右上角应用即可。
这里根据自己的需要进行编写正则表达式。
文章只记录了过程,并没有解释很多概念上的的东西,如果有不懂的地方欢迎讨论,也欢迎批评指正!