首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么WSGI服务器修改后需要重新加载Python文件,而PHP不需要?

WSGI(Web Server Gateway Interface)是一种Python Web应用程序和Web服务器之间的通信协议。它定义了Web服务器如何与Python应用程序进行交互,使得开发者可以使用各种Web服务器来运行Python应用程序。

当使用WSGI服务器运行Python应用程序时,如果对应的Python文件发生了修改,需要重新加载这些文件,以使修改生效。这是因为Python是一种解释型语言,每次运行Python应用程序时,解释器会动态地解析和执行Python代码。因此,当Python文件发生修改时,WSGI服务器需要重新加载这些文件,以便解释器能够读取最新的代码并执行。

相比之下,PHP是一种预编译的脚本语言。在PHP应用程序运行之前,PHP解释器会将PHP代码编译成字节码,然后再执行。由于PHP代码在运行之前已经被编译成字节码,所以对PHP文件的修改不会立即生效,而是需要重新启动PHP解释器才能加载最新的代码。

总结起来,WSGI服务器需要重新加载Python文件是因为Python是一种解释型语言,每次运行时都需要解释器读取最新的代码。而PHP不需要重新加载是因为PHP是一种预编译的脚本语言,代码在运行之前已经被编译成字节码。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

使用pycharm创建Django项目

如果你曾经是原生 PHP 程序员(没有使用过现代框架),你可能会习惯于把代码放在 Web 服务器的文档根目录(诸如 /var/www)。当使用 Django 时不需要这样做。...然后再把处理结果返回给 wsgi web server, wsgi web server再返回给前端。 为什么要搞出两个子系统,这么麻烦呢? 因为这两个子系统有各自负责的重点。...我们将这个服务器内置在 Django 中是为了让你能快速的开发出想要的东西,因为你不需要进行配置生产级别的服务器(比如 Apache)方面的工作,除非你已经准备好投入生产环境了。...会自动重新加载服务器 runserver 用于开发的服务器需要的情况下会对每一次的访问请求重新载入一遍 Python 代码。 所以你不需要为了让修改的代码生效频繁的重新启动服务器。...然而,一些动作,比如添加新文件, 将不会触发自动重新加载,这时你得自己手动重启服务器

1.7K60

wsgi和asgi

相比CGI,asp(jsp)的性能更加优越,因为它们可以直接在HTML网页中动态嵌入元素不需要单独引用CGI文件。...由于CGI程序反复加载CGI造成性能低下,如果CGI程序保持在内存中并接收FastCGI进程管理器调度,则可以提供良好的性能、伸缩性、Fail-Over特性等。...WSGI Web服务器网关接口(Python Web Server Gateway Interface,缩写为WSGI)是为Python语言定义的Web服务器和Web应用程序或框架之间的一种简单通用的接口...WSGI协议其实是定义了一种server与application解耦的规范,有了这个,写Web框架的人,不需要考虑server部分的编写;写server的人就可以专注于写server,不是写出来server...这么一说,大家都明白了,ASGI和WSGI是一样的东西。那么为什么需要ASGI?以及ASGI的具体内容,可以参考asgi文档. ASGI被设计为WSGI的超集,即ASGI是兼容WSGI的。

1.1K20

Python Web 部署方式大全

不要让服务器裸奔 学过PHP的都了解,php的正式环境部署非常简单,改几个文件就OK,用FastCgi方式也是分分钟的事情。...传统CGI接口方式的主要缺点是性能很差,因为每次HTTP服务器遇到动态程序时都需要重新启动脚本解析器来执行解析,然后结果被返回给HTTP服务器。这在处理高并发访问时,几乎是不可用的。...由于 FastCGI 程序并不需要不断的产生新进程,可以大大降低服务器的压力并且产生较高的应用效率。它的速度效率最少要比CGI 技术提高 5 倍以上。...WSGI:   Python Web服务器网关接口(Python Web Server Gateway Interface,缩写为WSGI)是为Python语言定义的Web服务器和Web应用程序或框架之间的一种简单通用的接口...只要遵照这些协议,WSGI应用(Application)都可以在任何服务器(Server)上运行, 反之亦然。WSGI就是Python的CGI包装,相对于Fastcgi是PHP的CGI包装。

1.5K40

flask部署到nginx_flask部署404

,负载均衡、反向代理)+ web框架(django、flask)+ Web服务器(如uWSGI) 需要注意的是, WSGI 是一种接口,一种规范,一种标准,全称the Python Web Server...Gateway Interface (WSGI),用来保证不同Web服务器可以和不同的Python程序之间相互通信。...反向代理:客户端的请求由代理服务器分配给某web服务器不是客户端指定的目标服务器。对于一些静态文件,可以直接由反向代理处理,不经过web服务器。...反向代理:其实客户端对代理是无感知的,因为客户端不需要任何配置就可以访问,我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,再返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器整体...这时flask框架所在的机器不需要直接与客户端通信,只需要和代理服务器通信就行了(这时使用的协议就不限于HTTP/HTTPS了,这就看服务器之间协议的支持情况了)。

2.9K20

使用 gunicorn + nginx + supervisor 部署 flask 项目

部署 flask 项目的流程及要点 flask 一个使用 Python 编写的轻量级 Web 应用框架 gunicorn “绿色独角兽”是一个被广泛使用的高性能的 Python WSGI UNIX HTTP...Gunicorn 服务器作为 wsgi app 的容器,能够与各种 Web 框架兼容(flask,django 等),得益于 gevent 等技术,使用 Gunicorn 能够在基本不改变 wsgi app...用Supervisor 管理的进程,当一个进程意外被杀死,supervisort 监听到进程死后,会自动将它重新拉起,很方便的做到进程自动恢复的功能,不再需要自己写 shell 脚本来控制。...如果是解压缩的方法需要重新配置 service nginx start service nginx stop service nginx reload 新增的配置文件示例: server.../etc/supervisord.conf 配置文件基本是不需要修改,只需在文件最后加上进程管理配置文件的位置。

1.7K10

区分wsgi、uWSGI、uwsgi、php-fpm、CGI、FastCGI

只要web服务器和web框架满足WSGI协议,它们就能相互搭配。所以WSGI只是一个协议,一个约定。不是python的模块、框架等具体的功能。...有了这个东西,web.py或者bottle或者django等等的python web开发框架,就可以轻松地部署在不同的web server上了,不需要做任何特殊配置(也需要一些小小的配置调整) WSGI...为什么需要Nginx?...,而且有的一些简单的事情(比如静态文件)可以直接由反向代理处理,不经过Web服务器 总结 WSGI是一种通信协议 uwsgi是一种通信协议,常用于在uWSGI服务器与其他网络服务器的数据通信 uWSGI...WSGI和ASGI的区别 WSGI是基于HTTP协议模式的,不支持WebSocket,ASGI的诞生则是为了解决Python常用的WSGI不支持当前Web开发中的一些新的协议标准。

66730

基于 Django 的个人网站(6)

Python 安装以及创建虚拟环境 因为这个项目是一个 Python Web 项目,所以我们首先需要服务器安装 Python,我就直接通过源码安装 Python,首先是下载源码压缩包,进行解压,进入源码目录...,如果如果你想立即生效,可以执行source 〜/.bashrc 将在每次启动终端时执行export LD_LIBRARY_PATH="/usr/local/lib" 如果没有报错就是升级成功,重新连接远程服务器...,运行命令: python manage.py collectstatic 然后运行看看,发现样式并没有加载,如图所示。...这是因为一旦把 DEBUG 设置成了 False,Django 它就不会直接寻找静态文件,我们需要借助 Nginx 来实现静态文件的寻找,在此之前我们先让 gunicorn 以守护态运行这个项目,这里我就不开放远程访问了.../nginx/conf.d/personal_website.conf 如果没有就进行创建对应的文件,这里直接给出修改后的内容,首先是 /etc/nginx/nginx.conf,这个文件改动的不是很多

1.3K10

Django学习搭建第一个项目(3)

需要注意几点: 项目名称避免使用Python 或 Django 的内部保留字来命名项目,包括 test。 创建后不要删除里面的文件。...里面一层的 mysite/ 目录包含你的项目,它是一个纯 Python 包。 mysite/__init__.py:一个空文件,告诉 Python 这个目录应该被认为是一个 Python 包。...mysite/wsgi.py:作为你的项目的运行在 WSGI 兼容的Web服务器上的入口。 我们命令也输入完了,并且 Django 也帮我建立对应的目录和文件,我们的项目是否建立完成了?...会自动重新加载服务器 runserver 用于开发的服务器需要的情况下会对每一次的访问请求重新载入一遍 Python 代码。所以你不需要为了让修改的代码生效频繁的重新启动服务器。...然而,一些动作,比如添加新文件,将不会触发自动重新加载,这时你得自己手动重启服务器。 怎么停止我们的项目呢? 在我们启动的界面下,使用 Ctrl + C 即可。 ? 今天就这样了!

46910

超哥教你发布CRM

发布CRM你将使用以下软件 nginx uWSGI CentOS7 CRM项目文件 virtualenv supervisor WSGI、uWSGI python web服务器开发使用WSGI协议(Web...Server Gateway Interface) python web项目默认会生成一个wsgi.py文件,确定好应用模块。...比如把HTTP协议转化成WSGI协议,让Python可以直接使用。 Nginx 使用nginx是为了它的反向代理功能,项目会通过Django+uWSGI+Nginx进行服务器线上部署。...用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动将它重新拉起,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制。...以上步骤完成后,访问服务器主机地址和端口,如果nginx.conf中配置的为80端口,则地址栏不需要输入端口,因为浏览器请求端口也是默认为80端口,非80端口的需要自己在ip后面添加 完毕,有问题再找超哥

53320

·编写你的第一个 Django 应用-第 1 部分

如果你曾经是原生 PHP 程序员(没有使用过现代框架),你可能会习惯于把代码放在 Web 服务器的文档根目录(诸如 /var/www)。当使用 Django 时不需要这样做。...mysite/wsgi.py:作为你的项目的运行在 WSGI 兼容的Web服务器上的入口。阅读 如何使用 WSGI 进行部署 了解更多细节。...我们将这个服务器内置在 Django 中是为了让你能快速的开发出想要的东西,因为你不需要进行配置生产级别的服务器(比如 Apache)方面的工作,除非你已经准备好投入生产环境了。...会自动重新加载服务器 runserver 用于开发的服务器需要的情况下会对每一次的访问请求重新载入一遍 Python 代码。所以你不需要为了让修改的代码生效频繁的重新启动服务器。...然而,一些动作,比如添加新文件,将不会触发自动重新加载,这时你得自己手动重启服务器。 创建投票应用 现在你的开发环境——这个“项目” ——已经配置好了,你可以开始干活了。

1.3K30

Linux下安装Apache并以mod_wsgi方式部署django站点

首先需要下载mod_wsgi-2.4.tar.gz。 可以到官网下载。 还可以到点这里直接下载。...DocumentRoot /var/www/   #用来存放网页文件 magic文件中包含的是有关mod_mime_magic模块的数据, 一般不需要修改它; ports.conf则为服务器监听IP和端口设置的配置文件...; mods-available目 录下是一些.conf和.load 文件, 为系统中可以使用的加载各种模块的配置文件, mods-enabled目录下则是指向这些配置文件的符号连接, 从配置文件apache...(Unix平台最流行的WEB服务器平台)2.conf 中可以看出, 系统通过mods-enabled目录来加载模块, 也就是说, 系统仅通过在此目录下创建了符号连接的mods-available 目录下的配置文件加载模块...激活我新建的mysite网站,执行如下命令: sudo a2ensite mysite #其中mysite就是sites-available中新建的那个配置文件的名称 重新加载网站: sudo service

1.8K90

django部署在windows使用nginx_nginx的原理

霓虹闪烁,但人们真正需要的,只是一个可以照亮前路的烛光 二、必要的前提 2.1 准备知识 django 一个基于python的开源web框架,请确保自己熟悉它的框架目录结构。...uWSGI 一个基于自有的uwsgi协议、wsgi协议和http服务协议的web网关 nginx 常用高性能代理服务器 wsgi.py django项目携带的一个wsgi接口文件 如果项目名叫destiny...的话,此文件就位于[destiny/destiny/wsgi.py] 2.2 相关资料 wsgi:一种实现python解析的通用接口标准/协议,是一种通用的接口标准或者接口协议,实现了python web...uWSGI服务器自有的协议,它用于定义传输信息的类型,它与WSGI相比是两样东西。...和WSGI两种协议的Web服务器,负责响应python 的web请求。

1.4K40

如何在CentOs 6.4 上使用uWSGI+Nginx部署Flask Web服务器

uWSGI亮点 uWSGI附带一个WSGI适配器,它完全支持在WSGI上运行的Python应用程序。 它与libpython链接。它在启动时加载应用程序代码,就像Python解释器一样。...创建部署的应用程序目录 让我们从构建应用程序目录开始,包含: 我们的应用模块 虚拟环境目录 服务器需要WSGI文件 # 创建文件夹 mkdir ~/MyApplication # 文件名可以替换成其他你喜欢的名字...Nginx,请使用以下命令: # 每次配置完Nginx # 或者需要重新加载Nginx配置 # 都需要重启Nginx,才能使配置文件生效....你需要重新启动Nginx才能使更改生效。...运行以下命令重新启动Nginx: sudo service nginx stop sudo service nginx start 设置Python WSGI Web应用程序服务器 使用uWSGI服务应用程序

1.5K31

基于Python的Web应用程序的Web服务器比较

基于Python的Web应用程序的Web服务器比较 介绍 ---- 在本文中,我们将讨论三个主要内容:Python,Web服务器,最重要的是两者之间的比较。...Gunicorn 详细介绍 授权协议:MIT 开发语言:Python 操作系统:Linux Gunicorn 绿色独角兽'是一个Python WSGI UNIX的HTTP服务器。...他们不希望或需要对运行进程的机器进行全面的shell访问。侦听“低”TCP端口的进程通常需要以root用户身份启动和重新启动(UNIX错误)。...当进程终止时,操作系统会立即向Supervisor发出信号,这与某些依赖麻烦的PID文件和定期轮询重新启动失败进程的解决方案不同。...它完全用Python编写,因此安装不需要C编译器。

2K30

CentOS + Python3.6+

CentOS上升级Python 用的系统是CentOS 6.4,其上python版本是2.6,Django支持的版本是2.7+,又考虑到网页语言用UTF-8,python3+默认字符已变为Unicode...查看错误是版本冲突,因为我们上面安装过1.5.6(目前最新),yum安装的1.3几吧,于是我查看下pip文件,出于本能 把1.3.几全改成了1.5.6, vim /usr/bin/pip 修改后: #!...连接uwsgi与Django 不要看到一些教程上有就也跟着建立个django_wsgi,现在版本不需要了,直接myproject.wsgi即可。...13.pycharm开发 为什么上面要搭建那么复杂的环境,那是因为它是网站发布环境,对于django开发人员来说,上面所做的一切是万万不需要的。...只需要一个pycharm,现在pycharm 4.0集成django开发,不管windows下还是linux下,只需要安装python,安装django(甚至不需要,pycharm会自动帮你安装),打开

1.6K10

面试分享系列 | 17道Python面试题,让你在求职中无往不利

Spawn-fcgi是一个小程序,这个程序的作用是管理fast-cgi进程,那么管理wsgi进程也是没有问题的,功能和php-fpm类似。...故,简单地说,WSGI和FastCGI都是一种CGI,用于连接WEB服务器与应用程序,WSGI专指Python应用程序。...flup是WSGI的一种实现,Spawn-fcgi是用于管理flup进程的一个工具,可以启动多个wsgi进程,并管理它们。...缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。...HTTP/1.1使用Keep-Alive为默认值,这样,当浏览器需要多个文件时(比如一个HTML文件和相关的图形文件),不需要每次都建立连接。

1.1K40

面试分享系列 | 17道Python面试题,让你在求职中无往不利

Spawn-fcgi是一个小程序,这个程序的作用是管理fast-cgi进程,那么管理wsgi进程也是没有问题的,功能和php-fpm类似。...故,简单地说,WSGI和FastCGI都是一种CGI,用于连接WEB服务器与应用程序,WSGI专指Python应用程序。...flup是WSGI的一种实现,Spawn-fcgi是用于管理flup进程的一个工具,可以启动多个wsgi进程,并管理它们。...缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。...HTTP/1.1使用Keep-Alive为默认值,这样,当浏览器需要多个文件时(比如一个HTML文件和相关的图形文件),不需要每次都建立连接。

73310

面试分享:17道Python面试题,让你在求职中无往不利

Spawn-fcgi是一个小程序,这个程序的作用是管理fast-cgi进程,那么管理wsgi进程也是没有问题的,功能和php-fpm类似。...故,简单地说,WSGI和FastCGI都是一种CGI,用于连接WEB服务器与应用程序,WSGI专指Python应用程序。...flup是WSGI的一种实现,Spawn-fcgi是用于管理flup进程的一个工具,可以启动多个wsgi进程,并管理它们。...缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。...HTTP/1.1使用Keep-Alive为默认值,这样,当浏览器需要多个文件时(比如一个HTML文件和相关的图形文件),不需要每次都建立连接。

59910
领券