【问题标题】:Adding Flask app in existing nginx PHP configuration在现有的 nginx PHP 配置中添加 Flask 应用程序
【发布时间】:2019-07-18 23:48:57
【问题描述】:

下面的配置是 PHP 中的 Web 应用程序的配置,它正在工作(我将站点名称伪造为 https://sub.mysite.nl)。

server {
        listen [::]:443 ssl ipv6only=on; # managed by Certbot
        listen 443 ssl; # managed by Certbot

        ## some certificate info ##

        root /path/to/www;
        index index.php index.htm index.html;

        server_name sub.mysite.nl;

        location / {
                try_files               $uri $uri/ =404;
        }

        location ~ \.php$ {
                try_files               $uri =404;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass            unix:/var/run/php/php7.0-fpm.sock;
                fastcgi_index           index.php;
                fastcgi_param           SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include                 fastcgi_params;
        }

        location ~ /\.ht {
            deny all;
        }

        ## some logging info ##

    }

server {
        if ($host = sub.mysite.nl) {
                return 301 https://$host$request_uri;
        } # managed by Certbot

        listen 80 default_server;
        listen [::]:80 ipv6only=on default_server;

        server_name sub.mysite.nl;
        return 404; # managed by Certbot
}

现在我想在子文件夹中添加一个 Flask 应用程序,例如https://sub.mysite.nl/flaskapp.

下面的块是我从我遵循的 Flask Mega 教程中得到的,具体参见本章:https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-xvii-deployment-on-linux(在设置 Nginx 下)。我想我需要把它放在location /flaskapp/ 下,但我不确定如何继续,因为当我这样做并转到https://sub.mysite.com/flaskapp 时,它会给我404 Not Found

    location /flaskapp {
            proxy_pass http://localhost:8000;
            proxy_redirect off;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

我需要在我的 Flask 应用中更改路由吗?

【问题讨论】:

  • 将位置块设置在“location /”之上,并将其更改为“location ~ ^flaskapp {}”。你的flaskapp有log看看是不是连接到了但是找不到,还是直接没进入flaskapp而404是别人给的?
  • URI /flaskapp/flaskapp/ 不一样。您的烧瓶应用程序是否响应尾随 / 附加?
  • 好吧,首先,我犯了一个愚蠢的错误,在 nginx.conf 中包含了错误的文件,但现在我编辑了它,它给出了 Flask 404 页面而不是浏览器的 404 页面。 @flaixman 当您说“结束”时,您的意思是“上方”还是“周围”?如果我把它放在上面,php 应用程序会停止工作,我会再次得到浏览器的 404。
  • @RichardSmith 谢谢,我编辑了我的帖子。请参阅我上面的评论:我现在得到一个 Flask 404。

标签: php ssl nginx flask


【解决方案1】:

好的,我一直在胡闹,似乎在我的 Flask 应用程序中编辑路线提供了最简单的解决方案。为此,我使用底部原始帖子中的 Flask nginx 块。

所以我用@app.route('/flaskapp/')代替@app.route('/')

@app.route('/view_profile/<username>') 变为@app.route('/flaskapp/view_profile/<username>')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-06
    • 1970-01-01
    • 1970-01-01
    • 2015-09-02
    • 1970-01-01
    • 2020-03-07
    相关资源
    最近更新 更多