>운영 및 유지보수 >엔진스 >동적 인터페이스에 액세스할 때 nginx 오류 404Not Found를 해결하는 방법

동적 인터페이스에 액세스할 때 nginx 오류 404Not Found를 해결하는 방법

WBOY
WBOY앞으로
2023-05-16 17:28:122696검색

문제 설명

Design은 Ant Design Vue와 JFinal 프레임워크를 사용하여 각각 프론트엔드와 백엔드를 개발하고 채용 백그라운드 관리 시스템을 만들었습니다. 프로젝트를 서버에 배포하려고 시도했지만 외부 액세스 중에 404 찾을 수 없음 오류가 계속 나타납니다

동적 인터페이스에 액세스할 때 nginx 오류 404Not Found를 해결하는 방법

솔루션 아이디어

오류 위치: 동적 인터페이스를 찾을 수 없지만 있는지 모르겠습니다. 프로젝트에 문제가 있거나 nginx 프록시를 통과한 후 문제가 발생했습니다.
그래서 프로젝트 자체의 인터페이스와 nginx 프록시 이후의 인터페이스를 별도로 테스트해야 합니다.

먼저 프로젝트 내의 인터페이스를 테스트하세요:

우분투 측에서 명령을 입력하세요: 컬 http://localhost:port/xxx/xxx

这里我的接口是: 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를 해결하는 방법

서버를 다시 시작해도 여전히 작동하지 않습니다.

완전히 해결되었습니다

무엇을 해야할지 몰랐을 때 갑자기 내 서버에 두 개의 nginx가 있는데 수정된 구성 파일이 내가 시작한 nginx가 아닙니다. 그래서 모든 nginx 구성 파일을 원래 구성 파일로 바꾸고 다시 시작했습니다. 그래도 작동이 안되네요
nginx 2개에 문제가 있는건 아닐까 걱정되어 서버에 있는 nginx를 모두 삭제했습니다. 삭제 단계(다음 단계를 순서대로 실행):

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

마지막으로 weget을 사용하여 새 nginx를 설치한 다음 원래 설치 단계에 따라 설치합니다. 구성 파일을 수정한 후, 동적 인터페이스에 액세스하려면 컬을 실행하세요. 갑자기 모든 것이 괜찮습니다!

아래에 게시됨 내 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제