IPTIME 설정하기
일단 내부망에 연결된 곳으로 가야하는데 일반적으로 192.168.10.1 이렇게 쓴다.
관리 도구로 접속하자
고급설정 - NAT/라우터관리 - 포트포워딩 설정으로 접속한다.
여기에 인식할수 있는 이름과
매핑할 C클래스 내부주소를 입력한다.
다음에 외부에서 들어올 포트를 주고
내가 C클래스 내부주소를 할당받아 포트를 준 내부 포트를 할당해준다
예를들어 웹서버는 81
API 서버는 11213으로 내부에서 할당해둔상태다.
EX.) 192.xxx.x.xxx 이런식으로 되어 있는거
할당을 해주면 아래처럼 접속이된다.
외부에서 접속가능한 아이피:할당한포트
이렇게 포트포워딩이 되서 준비가 완료된 상태이다.
스크립트작성
version: '3.8'
services:
nginx:
container_name: nginx
image: nginx
restart: always
ports:
- '81:81'
- '444:444'
volumes:
- ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro # nginx.conf 파일을 읽기 전용으로 마운트
- ./html:/usr/share/nginx/html:ro # html 디렉토리(하위 폴더 포함)를 읽기 전용으로 마운트
environment:
- TZ=Asia/Seoul
networks:
- server-connection
networks:
server-connection:
driver: bridge
예시로 작성해둔 docker-compose 파일인데
여기서 nginx.conf를 매핑해서
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 81;
server_name localhost;
location / {
root /usr/share/nginx/html; # html 디렉토리 기준으로 서빙
index index.html;
}
location /css/ {
root /usr/share/nginx/html;
}
location /js/ {
root /usr/share/nginx/html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
}
이렇게 nginx.conf 파일을 만들어준다.
그러면 기존에 80이 기준해서 81로 접속하는 대상에 대해 해당 서비스로
포트포워딩이 되게 된다.
백엔드는 각 상황에 맞춰서 하면되는데
예로 자바 Spring boot라면 properties에서 할당한 포트와
도커컨테이너와 매핑된 docker port를 매핑해서 처리해주면 된다.