일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- springboot
- JPA
- Git
- nginx
- MySQL
- IntelliJ
- tibero
- dbeaver
- BPMN
- Java
- NCP
- react
- VSCode
- mybatis
- Windows
- intellijIDEA
- kubectl
- Kubernetes
- database
- nodejs
- gradle
- log4j2
- gson
- wildfly
- jetbrains
- LOG4J
- JavaScript
- docker
- useEffect
- Spring
- Today
- Total
목록nginx (3)
두 손끝의 창조자
nginx.conf 에 백엔드 서비스의 주소를 명시적으로 할 필요없이 서비스 이름을 지정하여 간접적으로 지정할 수 있다. server { listen 80; error_log /var/log/nginx/error.log; location /api { proxy_pass http://backend-service.default:3001; } location / { root /usr/share/nginx/html; index index.html index.htm; try_files $uri $uri/ /index.html =404; } include /etc/nginx/extra-conf.d/*.conf; }/api로 요청하는 url에 대하여 backend-service 클러스터IP로 연계하는 설정이다. 내 ..
sudo docker run -d \ -v /home/dev/content:/usr/share/nginx/html:ro \ -v /home/dev/nginx.conf:/etc/nginx/nginx.conf:ro \ nginx nginx 컨텐츠와 설정파일을 볼륨 마운트 시키려고 했더니 자꾸 오류가 났다. 파일인데 디렉토리에 마운트를 시켜면 어떻하니 어쩌고 저쩌고 파일이라고 인식을 잘 못하는것 같다. nginx.conf파일을 만들어 놓고 실행하니 일단 실행은 되는데 서버는 올라오지 않는다. 아마도 설정 정보가 호스트 쪽으로 넘어가질 안나보다. 일단 컨피그쪽 설정을 빼고 컨테이너를 올린뒤 설정정보만 그대로 복사해서 호스트쪽으로 넣고 다시 실행했다. 인제 잘 된다.
SPA 는 웹 브라우저 기준으로는 진입점이 하나이다. index.html 하나에서 여러가지 페이지를 app 이 알아서 보여준다. 앱을 개발하면서 여러가지 라우트를 설정하여 개발한다. 개발할 때는 npm 을 이용해서 테스트 해보기 때문에 브라우저에 특정 패스를 넣으면 그 위치로 잘 넘어간다. 그러나 서버에 배포를 하게되면 문제가 생긴다. 브라우저는 이 앱이 SPA 인지 아닌지 그런건 알 수 없다. 그래서 입력한 주소로 요청을 보내는데 SPA 는 진입점이 하나, 즉 엔드포인트가 하나이므로 입력한 패스에 대한 자원을 찾을 수가 없을 것이다. localhost:3000/ 는 되지만 localhost:3000/abc 는 접근할 수 없다. 그래서 서버에 설정을 별도로 해줘야하는데 서버는 모든 요청에 대해서 SPA ..