我想使用Nginx提供前端角度2应用程序。我使用Gunicorn作为Nginx和Flask之间的媒介。我想部署这个Web应用程序进行生产。什么应该是适当的应用程序结构呢?另外,nginx服务器块配置是什么?我主持了一个基于数字海洋Linux的小滴(Ubuntu 16.04)。我已经引用了以下链接,但他们似乎也在使用Flask来为前端服务。
https://www.digitalocean.com/community/tutorials/how-to-structure-large-flask-applications
https://www.digitalocean.com/community/tutorials/how-to-serve-flask-applications-with-gunicorn-and-nginx-on-ubuntu-16-04
答案 0 :(得分:1)
这是一个示例Nginx配置文件。我确信这不是最好的方法,但它让我测试了我的应用程序。
server {
listen 80;
server_name localhost;
# Your angular app
location / {
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri $uri/ =404;
}
# Static files
location /static {
alias /usr/share/nginx/flask/static;
}
# Gunicorn
location /api {
proxy_pass http://localhost:4000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
注意事项
使用Angular CLI构建您的Angular应用程序,例如dist
文件夹。让nginx指向它。在配置中为/usr/share/nginx/html
。这个link帮助我更好地理解了Angular CLI。
使用gunicorn为您的烧瓶后端提供服务。说,gunicorn -b 127.0.0.1:4000 app:app
。路由到/api
。
配置nginx以反向代理到gunicorn。在代码中给出。
希望这至少让你前进。