그누보드5 Restful API NGINX 관련 질문

그누보드5 Restful API NGINX 관련 질문

QA

그누보드5 Restful API NGINX 관련 질문

답변 1

본문

https://sir.kr/so_restful/345

 

안녕하세요

 

저는 초보 개발자입니다!

 

위의 올려주신 자료를 바탕으로 플러터 앱에서 로그인/로그아웃을 구현하려고 하는데

 

잘 안되서 여쭤보게됐습니다ㅠ

 

nginx config를 수정해야하는데 도메인주소/api/member/login에 직접 링크를 치거나, POSTMAN으로 데이터를 보냈을때 nginx 404 에러가 나왔었습니다

 

그리고 현재는 conf 파일을 다음과 같이 수정하였습니다.

 location / {
         try_files $uri $uri/ /index.php;

     location /api {
         rewrite ^/api(.*)$ /api/index.php break;
     }

 }

 

이제는 nginx에서 Postman에서 똑같이 /api/member/login로 데이터를 보내면 /api/index.php 코드 내용의 전체가 보입니다. 직접 링크를 치고 들어가면 다운로드가 되버리네요.

 

결론을 말씀드리면 REST API 사용을 위한 nginx 환경 설정 방법을 잘 모르겠습니다

혹시 되시는 선배님 계시면 nginx conf파일을 올려주실 수 있나요?

아니면 다른 문제가 있어서 안되는 걸까요?

 

하기는 현재 nginx 설정입니다.

 

 include /etc/nginx/conf.d/*.conf;

    server {
        listen       80;
        listen       [::]:80;
        server_name  _;
        root         /usr/share/nginx/html;
    
        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;
    
        error_page 404 /404.html;
        location = /404.html {
        }

        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
        }
    }

 

include 내부 (nginx/conf.d/default.conf)

 location / {
         try_files $uri $uri/ /index.php;
     proxy_buffer_size          128k;
         proxy_buffers              4 256k;
         proxy_busy_buffers_size    256k;

     location /api {
         rewrite ^/api(.*)$ /api/index.php break;
     }

    }

    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }

    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

 

 

개발환경

CentOS7, PHP 7.4, NGINX 1.20.1

 

설치 및 테스트 방법

1. 그누보드 루트에 위 링크 자료 폴더인 api를 넣는다

2. api/index.php 에서 100번째줄 G5_JWT_AUDIENCE에 도메인 주소를 넣는다. http 없이 ex) sir.kr

3. 도메인주소/api/member/login 에 POSTMAN으로 json 데이터를 보낸다

예시 GET - body - RAW JSON

{

    "mb_id":"admin",

    "mb_password":"1111"

}

 

 

이 질문에 댓글 쓰기 :

답변 1

위의 코드를 보면, content만 코드가 있는 것 같습니다.  

 

즉 다른 api코드는 직접 작성을 해야 될 것 같습니다.

 

PHP 코드를 잘 몰라서, 틀릴 수도 있겠지만, 

 

설명에도 있듯이

------

3. 신규페이지 만들기

  - api 폴더에 폴더를 생성하고 그안에 php 파일을 생성

  - php 파일에 함수를 생성

  - 함수명은 대문자로 시작해야 함(외부에서 호출하기 위해)

-----

api/member/login 을 접속할려면,

그안에 member, login 디렉토리가 순차적으로 있어야 될 것 같고,  그안에 index.php가 있어야 동작이 될 것 같습니다.

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 99
© SIRSOFT
현재 페이지 제일 처음으로