如何设置Gunicorn以服务Python Web应用程序

在本文中,我们将设置一个VPS以使用Gunicorn和Nginx作为反向代理来服务Python Web应用程序。我们将Nginx用作反向代理,而不是直接与Gunicorn一起使用,以防止对Gunicorn的DoS攻击。使用Nginx还可以提高性能(使用代理缓冲),并可以处理更多请求。

入门

本教程假定您已经具有安装,更新和保护了Ubuntu 14.04或更高版本的VM。

  • 我们的Nginx实例将在HTTP端口80上运行(但您可以轻松升级到HTTPS)。
  • 我们的示例Python应用程序将在端口8080上侦听。iptables上将关闭此端口,以防止远程访问。
  • 本教程应在其他发行版上进行最少的更改。

安装pipvirtualenv

apt-get install python-pip python-virtualenv

关闭端口8080。只有Nginx才能访问Gunicorn。

iptables -A INPUT -p tcp --destination-port 8080 -j DROP

创建一个新文件夹并配置我们的应用程序。我们将使用Flask框架。

mkdir /var/www-folder/
cd /var/www-folder/
virtualenv exampleapp
source exampleapp/bin/activate
cd exampleapp
pip install gunicorn
pip install flask

创建应用程序文件。

nano myapplication.py 

将以下内容粘贴到内部:

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, Vultr!'

这将产生一个简单的页面,上面写着“你好,Vultr!”。当有人访问该页面时。现在,启动Gunicorn。x用2倍于VM的CPU内核数替换。

gunicorn -w x myapplication:app &

安装Nginx并配置反向代理。

deactivate
apt-get install nginx
nano /etc/nginx/sites-enabled/default

搜索该location / {行,并将括号内的内容替换为以下内容。

proxy_set_header HOST $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:8000/;

此配置指示Nginx将一些信息(HTTP协议,远程IP地址)连同实际请求一起转发到Gunicorn服务器。重新加载Nginx。

service nginx reload

至此,您的Gunicorn应用程序已正确配置。您可以使用Web浏览器访问它http://your-vps-ip/



Leave a Comment

AI 能否應對越來越多的勒索軟件攻擊?

AI 能否應對越來越多的勒索軟件攻擊?

勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根

ReactOS:這是 Windows 的未來嗎?

ReactOS:這是 Windows 的未來嗎?

ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+

人工智能如何將流程自動化提升到新的水平?

人工智能如何將流程自動化提升到新的水平?

閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。

macOS Catalina 10.15.4 補充更新引發的問題多於解決

macOS Catalina 10.15.4 補充更新引發的問題多於解決

最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息

大數據的13個商業數據提取工具

大數據的13個商業數據提取工具

大數據的13個商業數據提取工具

什麼是日誌文件系統,它是如何工作的?

什麼是日誌文件系統,它是如何工作的?

我們的計算機以稱為日誌文件系統的有組織的方式存儲所有數據。這是一種有效的方法,可以讓計算機在您點擊搜索時立即搜索和顯示文件。 https://wethegeek.com/?p=94116&preview=true

技術奇點:人類文明的遙遠未來?

技術奇點:人類文明的遙遠未來?

隨著科學的快速發展,接管了我們的大量工作,我們陷入無法解釋的奇點的風險也在增加。閱讀,奇點對我們意味著什麼。

洞察 26 種大數據分析技術:第 1 部分

洞察 26 種大數據分析技術:第 1 部分

洞察 26 種大數據分析技術:第 1 部分

2021 年人工智能對醫療保健的影響

2021 年人工智能對醫療保健的影響

過去幾十年,醫療保健領域的人工智能取得了巨大飛躍。因此,醫療保健中人工智能的未來仍在日益增長。