{ "info": { "author": "Pilot Systems", "author_email": "ploneorg@pilotsystems.net", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "License :: OSI Approved :: GNU General Public License (GPL)", "Natural Language :: English", "Programming Language :: Python" ], "description": "==============\r\n1. What it is\r\n==============\r\n\r\n RPX is useful when you have a mostly static website, but on a slow server\r\n platform. \r\n \r\n For instance, a public website with content handled by a full-fledged CMS like \r\n Plone.\r\n\r\n It works a bit like a real proxy, but it is NOT a real proxy. It violates many\r\n aspects of many RFC : it will totally ignore HTTP headers about aging, \r\n expiration and caching of web pages and other HTTP content.\r\n\r\n===============================\r\n2. How it works (the big plan)\r\n===============================\r\n\r\n 2.1 A normal reverse proxy works like this :\r\n -------------------------------------------\r\n\r\n - client sends HTTP request to server\r\n\r\n - the HTTP request is actually intercepted by the reverse proxy\r\n\r\n - if the proxy has the requested content, and the content is not outdated, then\r\n it will return the content\r\n \r\n - else, the proxy retrieves the content from the real server, and stores it on \r\n disk if possible (if it is not a dynamic content for instance)\r\n\r\n 2.2 RPX works like this :\r\n ------------------------\r\n\r\n - client sends HTTP request to server\r\n\r\n - the HTTP request is also intercepted, but in a different way (it is just an\r\n implementation detail, not very important)\r\n\r\n - if the proxy has the requested content, it serves it right away (without \r\n taking care of aging, expiry, etc.)\r\n\r\n - the proxy writes all accesses in a separate log (a bit like the Apache \r\n access.log file)\r\n\r\n - a separate process parses the log on-the-fly, and for each parsed request, \r\n if the content in the proxy cache is missing or outdated, it will download it\r\n from the server, and put it in the proxy cache\r\n\r\n=========================================\r\n3. How it works (implementation details) \r\n=========================================\r\n\r\n The proxy itself is just Apache with an appropriate configuration.\r\n \r\n The proxy cache is stored into a local directory (and served as static files \r\n by Apache).\r\n \r\n When a request must go to the real server, it will use mod_rewrite and mod_proxy.\r\n \r\n The separate process (responsible of refreshing the content cache) is a small\r\n and simple Python script.\r\n\r\n\r\n==========================\r\n4. Installation and Setup\r\n==========================\r\n\r\n See Docs/README", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://contributions.pilotsystems.net", "keywords": "Plone Apache Proxy Cache", "license": "GPL", "maintainer": "Pilot Systems", "maintainer_email": "", "name": "RPX", "package_url": "https://pypi.org/project/RPX/", "platform": "Linux", "project_url": "https://pypi.org/project/RPX/", "project_urls": { "Homepage": "http://contributions.pilotsystems.net" }, "release_url": "https://pypi.org/project/RPX/1.0/", "requires_dist": null, "requires_python": null, "summary": "Reverse ProXy accelerator", "version": "1.0" }, "last_serial": 785491, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "e313dd4825aedc93ffdf392220c20b7a", "sha256": "390874b0e5a7cfa234b0623915fd696d04d65336fe7a1543aff9add9729a7d5a" }, "downloads": -1, "filename": "RPX-1.0.tar.gz", "has_sig": false, "md5_digest": "e313dd4825aedc93ffdf392220c20b7a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17434, "upload_time": "2009-10-25T20:17:48", "url": "https://files.pythonhosted.org/packages/39/24/affcb27de3409a3ee6e6c28fe4f20affbdfe94d463954a78e60381ec4e6a/RPX-1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e313dd4825aedc93ffdf392220c20b7a", "sha256": "390874b0e5a7cfa234b0623915fd696d04d65336fe7a1543aff9add9729a7d5a" }, "downloads": -1, "filename": "RPX-1.0.tar.gz", "has_sig": false, "md5_digest": "e313dd4825aedc93ffdf392220c20b7a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17434, "upload_time": "2009-10-25T20:17:48", "url": "https://files.pythonhosted.org/packages/39/24/affcb27de3409a3ee6e6c28fe4f20affbdfe94d463954a78e60381ec4e6a/RPX-1.0.tar.gz" } ] }