编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

Linux基础架构学习 - Apache用于企业级容错 - Day10

wxchong 2024-08-18 00:42:55 开源技术 27 ℃ 0 评论

Apache前向代理

转发代理服务器位于客户端和源服务器之间。 为了访问源服务器,客户端向转发代理发送请求,将源服务器命名为目标。 代理从源服务器获取数据并将其提供给客户端。 如果要避免从Intranet直接访问Internet,则可以使用转发代理将Intranet用户连接到Internet。 图6-3显示了转发代理的示例。

清单6-17显示了如何设置转发代理。 必须提供两个指令:ProxyRequests和ProxyVia。 ProxyVia控制Via:HTTP标头。 此标头有四个选项:on,off,full和block。 出于安全考虑,建议使用Require指令限制谁可以使用代理服务器。 没有限制,任何人都可以使用代理服务器。

客户端还必须在其系统上配置代理设置。 如果他们使用Firefox浏览器,那么他们必须进入Firefox中的高级网络设置并添加指向Apache转发代理的HTTP代理。

清单6-17。 Apache HTTP转发代理

ProxyRequests On
ProxyVia On
<Proxy *>
 Require ip 10.0.0.0/255.0.0.0
</Proxy>

For additional documentation, refer to

  • https://httpd.apache.org/docs/2.4/mod/mod_proxy.html
  • https://httpd.apache.org/docs/2.4/mod/mod_proxy.html#proxyvia
  • https://httpd.apache.org/docs/2.4/mod/mod_proxy.html#proxyrequests

Apache与Python

在Apache中使用Python程序有很多选择:

通用网关接口(CGI)是使用Apache运行Python的最古老的方法。启用CGI的Python库是cgitb。 CGI不是使用Apache运行Python的最佳方式,因为每个CGI请求都会启动一个新的Python解释器,使得它在大型负载情况下变慢(https://docs.python.org/2/library/cgi.html)。

mod_python模块使用Apache嵌入Python解释器。与CGI不同,每个请求都不会启动新的Python解释器。但是,每个Apache子进程都会启动自己的嵌入式Python解释器。使用mod_python编写的程序无法移植到其他Web服务器(http://modpython.org/)。

两个Apache模块mod_fastcgi和mod_fcgid试图克服mod_python的限制。他们不是使用Apache嵌入解释器,而是创建一个单独的,长期运行的Python进程。 Apache中仍然有一个模块与长期运行的Python进程通信(http://www.fastcgi.com/drupal/node/2 https://pypi.python.org/pypi/scgi)。

Python框架使用模块mod_wsgi(其中WSGI代表Web服务器网关接口)允许Python程序在Web服务器中运行(https://code.google.com/p/modwsgi/)。

像Gunicorn和Cherry这样的WSGI服务器是Apache的替代品,尽管你可以把Apache放在它们面前(http://gunicorn.org/和http://www.cherrypy.org/)。

在运行Python时,可以使用Apache部署诸如Django和Zope之类的Python框架(https://www.djangoproject.com/ http://www.zope.org/)。

有关其他信息,请参阅以下内容:

Python Web服务器(https://docs.python.org/2/howto/webservers.html)

WSGI的PEP 333(http://legacy.python.org/dev/peps/pep-0333/)

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表