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

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
그누보드5 Restful API NGINX 관련 질문

QA

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

본문

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가 있어야 동작이 될 것 같습니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 126,530 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT