Nginx sert des fichiers statiques pour l'application Flask 404
J'ai essayé beaucoup de solutions d'autres messages, mais il semble que je ne travaille pas avec moi, je reçois toujours
Erreur lors d'essayer de résoudre
Servir des fichiers statiques de mon
Application. Quelque part entre toutes ces tentatives pour la lancer, j'ai aussi eu
, Mais je ne peux pas le restaurer. Ceci est mon installation actuelle:
L'application est dans:
, qui devrait être un projet de test pour le lancement de tout, compréhension nginx etc. Il a la structure suivante:
Donc, il n'y a rien qu'un fichier nommé
, qui met en place quelques itinéraires et
dans
dossier.
J'ai mis en place la mienne
de la manière suivante:
Avec le contenu suivant:
En fin de compte, il y a une inclusion pour
sous-répertoire. Dans ce catalogue, j'ai un fichier nommé
. Dans ce fichier, j'ai la configuration suivante de mon projet:
j'ai commencé
Utilisation de la commande
. Quand ça marche, et je fais
, Je reçois le résultat suivant:
Donc, je sais que ça marche. J'avais l'habitude d'avoir une erreur dans le journal, me disant
Échec de la liaison avec un port spécifique, qui a été causé
Autoriser la liaison uniquement à certains ports. Je l'ai corrigé avec l'équipe
.
Après chaque changement, j'ai toujours couru
, Recommencer
Le serveur afin qu'il puisse redémarrer sa configuration.
j'utilise
Commencer mon application de décharge.
Quand j'ouvre URL
Je suis dans le navigateur
et le magazine que j'ai lu en utilisant
Déclare l'absence de nouvelles erreurs. Cependant, l'application flask Cela fonctionne que je peux vérifier en cliquant sur le lien:
et
, Qui fonctionnent les deux bien. Cependant, dès que le contenu statique du catalogue statique apparaît, je reçois
.
Mes hypothèses sont les suivantes:
D'une certaine manière
Ils ne lui parlent pas et il ne connaît pas la demande de contenu du dossier statique.
D'une manière ou d'une autre, les chemins ne sont toujours pas corrects.
Il y a un autre problème qui l'empêche d'obtenir un fichier pour un navigateur et de ne pas l'enregistrer.
J'ai essayé de le lancer pendant deux jours, mais aucune des configurations trouvées par moi n'a pas fonctionné. J'ai également essayé les deux équipes qui ont été offertes à d'autres endroits:
Changer de manière récursive le contexte de la sécurité du catalogue:
Permettre un démon http Connecter sur le réseau (???)
Quel est le problème avec ma configuration?
Information additionnelle
Dans mon
Catalogue J'ai la structure suivante:
une
déposer
subdirectoriel
contenant uniquement la configuration de mon application de décharge
subdirectoriel
Contenant un lien vers mon fichier de configuration pour les applications de la fiole dans
Je parviens
Ici.
404
Erreur lors d'essayer de résoudre
nginx
Servir des fichiers statiques de mon
flask
Application. Quelque part entre toutes ces tentatives pour la lancer, j'ai aussi eu
403
, Mais je ne peux pas le restaurer. Ceci est mon installation actuelle:
L'application est dans:
~/development/Python/flask_nginx_gunicorn/
, qui devrait être un projet de test pour le lancement de tout, compréhension nginx etc. Il a la structure suivante:
Donc, il n'y a rien qu'un fichier nommé
app.py
, qui met en place quelques itinéraires et
index.html
dans
static
dossier.
J'ai mis en place la mienne
nginx
de la manière suivante:
/etc/nginx/nginx.conf
Avec le contenu suivant:
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log warn;
pid /run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
En fin de compte, il y a une inclusion pour
sites-enabled
sous-répertoire. Dans ce catalogue, j'ai un fichier nommé
flask_project
. Dans ce fichier, j'ai la configuration suivante de mon projet:
server {
root /home/xiaolong/development/Python/flask_nginx_gunicorn/;
server_name localhost;
# LISTENING ON WHICH PORTS?
listen localhost:7777;
location / {
proxy_pass [url=http://127.0.0.1:8080;]http://127.0.0.1:8080;[/url]
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
location /static/ {
autoindex on;
root /home/xiaolong/development/Python/flask_nginx_gunicorn/;
}
}
j'ai commencé
nginx
Utilisation de la commande
systemctl start nginx
. Quand ça marche, et je fais
ps -aux | grep nginx
, Je reçois le résultat suivant:
root 17748 1.2 2.5 1607328 102772 pts/1 Sl 20:45 0:07 /usr/local/sublime_text_3/sublime_text /etc/nginx/nginx.conf
root 18762 0.0 0.0 122720 2880 ? Ss 20:53 0:00 nginx: master process /usr/sbin/nginx
nginx 18763 0.0 0.1 124808 7916 ? S 20:53 0:00 nginx: worker process
nginx 18764 0.0 0.1 124808 7916 ? S 20:53 0:00 nginx: worker process
nginx 18765 0.0 0.1 124808 7916 ? S 20:53 0:00 nginx: worker process
nginx 18766 0.0 0.1 124808 7916 ? S 20:53 0:00 nginx: worker process
root 18988 0.0 0.0 111032 1792 pts/0 S+ 20:54 0:00 tail -f 10 /var/log/nginx/error.log
root 19001 0.0 0.0 115820 2396 pts/1 S+ 20:55 0:00 grep --color=auto nginx
Donc, je sais que ça marche. J'avais l'habitude d'avoir une erreur dans le journal, me disant
nginx
Échec de la liaison avec un port spécifique, qui a été causé
SELinux
Autoriser la liaison uniquement à certains ports. Je l'ai corrigé avec l'équipe
semanage port --add --type http_port_t --proto tcp 7777
.
Après chaque changement, j'ai toujours couru
systemctl restart nginx
, Recommencer
nginx
Le serveur afin qu'il puisse redémarrer sa configuration.
j'utilise
gunicorn app:app -b localhost:8080
Commencer mon application de décharge.
Quand j'ouvre URL
[url=http://localhost:8080/static/]http://localhost:8080/static/[/url]
Je suis dans le navigateur
404
et le magazine que j'ai lu en utilisant
tail -f 10 /var/log/nginx/error.log
Déclare l'absence de nouvelles erreurs. Cependant, l'application flask Cela fonctionne que je peux vérifier en cliquant sur le lien:
[url=http://localhost:8080/]http://localhost:8080/[/url]
et
[url=http://localhost:8080/data]http://localhost:8080/data[/url]
, Qui fonctionnent les deux bien. Cependant, dès que le contenu statique du catalogue statique apparaît, je reçois
404
.
Mes hypothèses sont les suivantes:
D'une certaine manière
nginx
Ils ne lui parlent pas et il ne connaît pas la demande de contenu du dossier statique.
D'une manière ou d'une autre, les chemins ne sont toujours pas corrects.
Il y a un autre problème qui l'empêche d'obtenir un fichier pour un navigateur et de ne pas l'enregistrer.
J'ai essayé de le lancer pendant deux jours, mais aucune des configurations trouvées par moi n'a pas fonctionné. J'ai également essayé les deux équipes qui ont été offertes à d'autres endroits:
Changer de manière récursive le contexte de la sécurité du catalogue:
chcon -Rt httpd_sys_content_t /home/xiaolong/development/Python/flask_nginx_gunicorn/
Permettre un démon http Connecter sur le réseau (???)
setsebool -P httpd_can_network_connect 1
Quel est le problème avec ma configuration?
Information additionnelle
Dans mon
/etc/nginx/
Catalogue J'ai la structure suivante:
une
nginx.conf
déposer
subdirectoriel
sites-available
contenant uniquement la configuration de mon application de décharge
subdirectoriel
sites-enabled
Contenant un lien vers mon fichier de configuration pour les applications de la fiole dans
sites-available
Je parviens
Fedora 22
Ici.
Aucun résultat connexe trouvé
Invité:
Pour répondre aux questions, connectez-vous ou registre
1 réponses
Agathe
Confirmation de:
Nginx Écouter
, Mais votre URL mène au port 8080, Où est votre serveur Gunicorn. C'est pourquoi vous pouvez accéder à votre application. Flask (desservis gunicorn), Mais pas à son contenu statique (desservis ngninx). C'est pourquoi vous ne recevez rien dans des magazines nginx. Si vous allez à
, nginx doit réussir votre demande à votre demande Flask, et
Doit passer au contenu statique.