nginx

nginx 是一款快速、生产级别的 HTTP 服务器。当使用 部署到生产环境 中列出的其中一个 WSGI 服务器提供你的应用程序服务时,通常最好或有必要在它前面放置一个专门的 HTTP 服务器。此“反向代理”可以比 WSGI 服务器更好地处理传入请求、TLS 以及其他安全性和性能问题。

可以使用系统包管理器或 Windows 的预构建可执行文件来安装 Nginx。安装和运行 Nginx 本身不在本文档的讨论范围内。此页面概述了配置 Nginx 以代理你的应用程序的基本知识。务必阅读其文档以了解可用的功能。

域名

获取和配置域名不在本文档的讨论范围内。通常情况下,你将从注册商处购买域名,向托管服务商支付服务器空间费用,然后将你的注册商指向托管服务商的名称服务器。

为了模拟此操作,你还可以编辑位于 Linux 上的 hosts 文件,其位于 /etc/hosts。添加将名称与本地 IP 关联起来的行。

可以将现代 Linux 系统配置为将任何以 .localhost 结尾的域名像这样处理,而无需将其添加到 hosts 文件。

/etc/hosts
127.0.0.1 hello.localhost

配置

nginx 配置位于 Linux 上的 /etc/nginx/nginx.conf。它可能会根据你的操作系统而有所不同。查看文档并查找 nginx.conf

删除或注释掉任何现有的 server 部分。添加 server 部分并使用 proxy_pass 指令指向 WSGI 服务器正在监听的地址。我们假设 WSGI 服务器在 http://127.0.0.1:8000 本地监听。

/etc/nginx.conf
server {
    listen 80;
    server_name _;

    location / {
        proxy_pass http://127.0.0.1:8000/;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Prefix /;
    }
}

然后 告诉 Flask 它在代理后面,以便您的应用程序使用这些头。