Maison > Opération et maintenance > Nginx > Comment résoudre l'erreur nginx 404Not Found lors de l'accès à l'interface dynamique

Comment résoudre l'erreur nginx 404Not Found lors de l'accès à l'interface dynamique

WBOY
Libérer: 2023-05-16 17:28:12
avant
2723 Les gens l'ont consulté

Description du problème

Design a utilisé le framework Ant Design Vue et JFinal pour développer respectivement le front-end et le back-end, et a créé un système de gestion des antécédents de recrutement. Essayez de déployer le projet sur le serveur, mais l'erreur 404 Not Found continue d'apparaître lors d'un accès externe

Comment résoudre lerreur nginx 404Not Found lors de laccès à linterface dynamique

Idées de solutions

Positionnez l'erreur comme : L'interface dynamique est introuvable, mais je ne sais pas s'il y en a est un problème dans le projet, ou Un problème est survenu après avoir passé par le proxy nginx.
Nous devons donc tester séparément l'interface du projet lui-même et l'interface après le proxy nginx.

Testez d'abord l'interface au sein du projet :

Entrez la commande côté Ubuntu : curl http://localhost:port/xxx/xxx

这里我的接口是: curl http://localhost:20294/sys/login

Résultats d'exécution :

Comment résoudre lerreur nginx 404Not Found lors de laccès à linterface dynamique

Cela signifie qu'il y a aucun problème avec l'interface au sein de mon projet de.

Testez à nouveau l'interface derrière le proxy nginx :

Entrez la commande dans Ubuntu

curl http://localhost:8080/api/user/login
Copier après la connexion

Résultat d'exécution :

Comment résoudre lerreur nginx 404Not Found lors de laccès à linterface dynamique

Il indique que l'interface est introuvable, indiquant que le problème vient du serveur proxy nginx, donc nous devons le modifier dans le fichier de configuration nginx.

Suite aux suggestions d'autres blogs, j'ai ajouté un slash à cet endroit dans la configuration de nginx

Comment résoudre lerreur nginx 404Not Found lors de laccès à linterface dynamique

Après avoir redémarré le serveur, cela ne fonctionnait toujours pas.

Complètement résolu

Quand je ne savais pas quoi faire, j'ai soudainement découvert que il y avait deux nginx sur mon serveur, le fichier de configuration modifié n'est pas le nginx que j'ai démarré. J'ai donc remplacé tous les fichiers de configuration nginx par mes fichiers de configuration d'origine et redémarré. Cela ne fonctionne toujours pas
J'avais peur que ce soit un problème avec deux nginx, j'ai donc supprimé tous les nginx du serveur. Étapes de suppression (exécutez les étapes suivantes dans l'ordre) :

ps aux|grep nginx  #查看nginx进程
kill -9 进程号      #杀死上一步中查询到的nginx(进程号在第二列)
find / -name nginx #找到nginx的文件地址
rm -rf xxx         #删除nginx所有文件
Copier après la connexion

Enfin, utilisez weget pour installer le nouveau nginx, puis installez-le selon les étapes d'installation d'origine. Après avoir modifié le fichier de configuration, exécutez curl pour accéder à l'interface dynamique, et. du coup tout va bien !

Publié ci-dessous Hors de mon fichier de configuration nginx :

user root;
#user  nobody;
worker_processes  4;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       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"';

    server_names_hash_bucket_size 128;
    client_header_buffer_size 32k;
    underscores_in_headers on;
    large_client_header_buffers 4 32k;
    client_max_body_size 50m;
    #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  logs/access.log  main;

    sendfile        on;

    #keepalive_timeout  0;
    keepalive_timeout  65;
    tcp_nopush          on;
    fastcgi_connect_timeout 300;
    fastcgi_send_timeout    300;
    fastcgi_read_timeout    300;
    fastcgi_buffer_size     64k;
    fastcgi_buffers     4   64k;
    fastcgi_busy_buffers_size 128k;
    fastcgi_temp_file_write_size 256k;
    tcp_nodelay         on;

    #gzip  on;


    ######################################################
    #############     麻雀配置地址    ###########
    ######################################################
    server {
        listen       8080;
        server_name  somename;

        location /api/ {
            proxy_pass http://0.0.0.0:20294/; #映射到本地端口。
            proxy_redirect off;
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-Proto https;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            client_max_body_size 200m;
            proxy_connect_timeout 600;
            proxy_read_timeout 600;
        }
        
        location / {
            root /root/project-template/config/static;
            try_files $uri $uri/ @router;
            index index.html;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-Proto https;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            client_max_body_size 200m;
            proxy_connect_timeout 600;
            proxy_read_timeout 600;
        }

        location @router {
            rewrite ^.*$ /index.html last;
        }
    }
}
Copier après la connexion

Il est à noter que lors de la configuration de l'API d'accès dynamique, pensez à ajouter une barre oblique à la fin

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal