nginx
리액트로 실습 후 가장 많이 사용되는 웹서버인 nginx를 써보았다. 간편한 세팅방법과 강력한 기능으로 많이 가장 많이 쓰인다는 글을 보았는데 사실 인 듯 하다 ㅎㅎ
HostPC에 설치하고 싶지 않아서 그냥 docker로 설치를 설치했기에 (window에서 직접 실행을 안해봐서 window는 잘 모르겠다)여기다가는 그냥 했던 방법을 기술한다.
적당한 폴더를 만들어서 docker-compose.yml을 만든 후 docker hub에서 nginx 검색한 후 거기 적혀 있는대로 작성하고 실행하면 되는데 필요해 따라서 수정해주면 될꺼 같다
web:
image: nginx
volumes:
- ./templates:/etc/nginx/templates
ports:
- "8080:80"
environment:
- NGINX_HOST=foobar.com
- NGINX_PORT=80
(yml을 띄어쓰기를 제대로 안하면 오류가 나니까 적절한 확장프로그램을 사용하는게 좋다)
docker는 container를 내리면 데이터가 다 없어지므로 데이터를 보관하고 싶다면 volume기능(공유폴더)이 필수적이다.
(volume을 활용하면 host에서 코딩하고 container에서 실행할 수 있다)
윈도우 8.1에서 실행하는데 volume을 세팅이 잘 안되어서… 고생좀했다..
(이 부분은 따로 작성했다..)
그리고 정상적으로 실행되는거 확인했는데
그냥 터미널로 명령어 쳐서 이리저리 옮겨다니는거보단 ssh로 하는게 편하고 좋을꺼 같아서
vscode확장프로그램을 찾아보던 중 Remote - Containers를 발견했다 와 쩐다
성공적으로 container 실행했고 성공적으로 확장프로그램을 설치를 하였다면
vscode내에서 f1을 눌러보자 거기서 remote 만 쳐도 이러저러한 것들이 잔뜩 나오는데
거기서 remote-containers:aTTach To Running Container… 을 누르면 실행중인 컨테이너가 나온다.
컨테이너를 클릭하고 들어가면 에디터로 SSH 접속한거처럼 탐색기도 사용가능하고 터미널도 docker 터미널이 된다. 헿 너무 좋아
nginx 세팅 파일을 열어보면 아래와 같이 작성되어있다. (경로는 /etc/nginx/conf.d/)
server {
listen 80;
listen [::]:80;
server_name localhost;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
....
}
여기서 기존 location 주석처리하고(주석이 #이다) location을 수정한다.
location / {
root 폴더경로
index index 파일이름
}
React를 빌드 후 생긴 파일을 경로와 파일이름을 잡아주면 실행이 잘 된다…아..?
서브페이지에서 자꾸 404 에러 난다… -_-
찾아보니 location에 아래의 옵션을 주면 사라진다고 해서 넣어보니 오 정말 없어졌다
try_files $uri $uri/ /index.html;
나중에 서브도메인도 세팅해봐야겠다
