nginx¶
nginx 是一个快速、生产级别的 HTTP 服务器。当使用 部署到生产环境 中列出的 WSGI 服务器之一来服务您的应用时,通常最好或有必要在其前面放置一个专用的 HTTP 服务器。这个“反向代理”可以比 WSGI 服务器更好地处理传入的请求、TLS 以及其他安全和性能问题。
可以使用您的系统包管理器或 Windows 的预构建可执行文件来安装 Nginx。安装和运行 Nginx 本身超出了本文档的范围。此页面概述了配置 Nginx 以代理您的应用程序的基础知识。请务必阅读其文档以了解可用的功能。
域名¶
获取和配置域名超出了本文档的范围。通常,您将从注册商处购买域名,向托管服务提供商支付服务器空间费用,然后将您的注册商指向托管服务提供商的域名服务器。
为了模拟这一点,您还可以编辑您的 hosts
文件,该文件位于 Linux 上的 /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 它在代理服务器后面,以便您的应用程序使用这些标头。