ホームページ > 運用・保守 > Nginx > 動的インターフェイスにアクセスするときに発生するnginxエラー404Not Foundを解決する方法

動的インターフェイスにアクセスするときに発生するnginxエラー404Not Foundを解決する方法

WBOY
リリース: 2023-05-16 17:28:12
転載
2697 人が閲覧しました

問題の説明

デザイナーは、Ant Design Vue と JFinal フレームワークを使用してフロントエンドとバックエンドをそれぞれ開発し、採用背景調整システムを作成しました。プロジェクトをサーバーにデプロイしようとしましたが、外部アクセス中に 404 Not Found エラーが表示され続けます

動的インターフェイスにアクセスするときに発生するnginxエラー404Not Foundを解決する方法

ソリューションのアイデア

エラーを次のように位置付けます。動的インターフェイスは見つかりましたが、プロジェクト内に問題があるのか​​、nginx プロキシ後に問題があるのか​​はわかりません。
したがって、プロジェクト自体のインターフェイスと nginx プロキシ後のインターフェイスは個別にテストする必要があります。

最初にプロジェクト内のインターフェイスをテストします。

ubuntu 側でコマンドを入力します。curl http://localhost:port/xxx/xxx

Myここでのインターフェースは:curl http://localhost:20294/sys/login

実行結果:

動的インターフェイスにアクセスするときに発生するnginxエラー404Not Foundを解決する方法

問題がないことを意味します私のプロジェクトのインターフェースを使用して。

nginx プロキシの後のインターフェイスを再度テストします:

ubuntu でコマンドを入力します

curl http://localhost:8080/api/user/login
ログイン後にコピー

実行結果:

動的インターフェイスにアクセスするときに発生するnginxエラー404Not Foundを解決する方法

ここでは、インターフェースが見つからないと表示されており、プロキシサーバーnginxに問題があることを示しているため、nginx設定ファイルを変更する必要があります。

他のブログの提案に従って、nginx 設定のこの場所にスラッシュを追加しました

動的インターフェイスにアクセスするときに発生するnginxエラー404Not Foundを解決する方法

サーバーを再起動した後も、まだ機能しませんでした。

完全な解決策

何をすればよいのかわからなかったとき、突然、サーバーに 2 つの nginx·····## があることに気づきました #2 つの nginx があり、変更された設定ファイルが私が開始した nginx ではないためではないかと考えています。そこで、すべての nginx 設定ファイルを元の設定ファイルに置き換えて再起動しました。まだ動作しません
#2 つの nginx の問題ではないかと心配になったので、サーバー内のすべての nginx を削除しました。削除手順 (次の手順を順番に実行します):

ps aux|grep nginx  #查看nginx进程
kill -9 进程号      #杀死上一步中查询到的nginx(进程号在第二列)
find / -name nginx #找到nginx的文件地址
rm -rf xxx         #删除nginx所有文件
ログイン後にコピー

最後に weget を使用して新しい nginx をインストールし、元のインストール手順に従ってインストールします。構成ファイルを変更した後、curl を実行して動的ファイルにアクセスします。インターフェイスが表示され、突然すべてがうまくいきました!

私の 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;
        }
    }
}
ログイン後にコピー

動的アクセス API を設定するときは、最後にスラッシュを忘れずに追加してください

以上が動的インターフェイスにアクセスするときに発生するnginxエラー404Not Foundを解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート