앱은 웹보다 배포가 까다롭기때문에, apk파일을 받을수있는 웹페이지를 만들고 이를 배포하여 내부에서 테스트 용도로 사용하기로 했다. 생각처럼 경로처리가 잘 안되어서.. 까먹기 전에 정리
앱 api용으로 띄워져 있는 node 서버(9999번 포트)에서 다운로드 페이지를 서빙하도록 구성했다.
index.html 파일의 경로는 /production/index.html
(직접 nginx에서 html 파일을 서빙하도록 설정해도 무관)
// index.js (express서버 entry file)
app.set("views", __dirname + "/production");
app.set("view engine", "ejs");
app.engine("html", require("ejs").renderFile);
app.get("/app", (req, res) => {
res.render("index.html");
});
index.html 파일의 한글 렌더링, apk파일 다운로드용 링크 설정을 위해
nginx 설정파일에 아래 내용을 추가해준다.
server {
listen 80;
charset utf-8; # index.html 한글 인코딩을 위해서 넣어줌
#1
location /app {
proxy_pass http://localhost:9999;
}
#2
location /apk {
alias /etc/nginx/app_api/production/;
}
}
테스트도메인/app 로 들어오는 요청을 노드서버가 처리하기 위해 9999번 포트로 프록싱. 그럼 9999번 포트에서 GET /app 요청에 대한 응답으로 index.html페이지 렌더링한다.
apk파일의 경로를 alias 해준다. 그래야 웹페이지에서 경로로 접근할 수 있다.
(테스트도메인/apk -> /etc/nginx/app_api/production/ )
앱apk파일(test.apk)의 경로는 /production/test.apk
a 태그의 href에 apk파일의 경로를 적으면, 태그를 클릭시 download 옵션에 넘겨준 이름(test.apk)으로 파일이 다운로드 된다.
<a href="http://테스트도메인/apk/test.apk" download="test.apk">앱 다운로드(v1.0.0)</a>