그누보드5 Restful API NGINX 관련 질문
본문
안녕하세요
저는 초보 개발자입니다!
위의 올려주신 자료를 바탕으로 플러터 앱에서 로그인/로그아웃을 구현하려고 하는데
잘 안되서 여쭤보게됐습니다ㅠ
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가 있어야 동작이 될 것 같습니다.