서버개발 SpringBoot6 Linux / URL / Domain / Name Server / Sub Domain / Redirection Linux - Linux는 Unix 운영체제를 기반으로 만들어진 운영체제로 유닉스 클론 운영체제라 할 수 있다.Unix와 마찬가지로 다중 사용자, 다중작업 다중 스레드를 지원하는 네트워크 운영체제를 의미한다. 또한 Unix가 애초부터 통신 네트워크를 지향해 설계된 것 처럼 Linux 역시 서버로 작동하는데 최적화 되어있다. 또한 Linux는 자유 소프트 라이센스로 누구나 소스코드를 활용, 수정 및 재 배포가 가능해서 지속적인 업그레이드가 이루어진다. - 리눅스는 크게 커널, 셸, 디렉토리 3가지로 구성되어 있다. 커널(kernel) 커널은 운영체제의 핵심으로 메모리 관리, 프로세스 관리, 장치 관리 등 컴퓨터의 모든 자원을 초기화하고 제어하는 기능을 수행한다. 쉘(shell) 사용자가 입력한 문장을 읽어.. 서버개발 SpringBoot 2022. 4. 7. EC2 Instance 에 HTTPS 적용 / HTTPS Redirect / Let's Encrypt / Certbot Let's Encrypt Let's Encrypt 는 SSL 인증서를 무료로 발급해주는 CA(Certificate Authorities)이다. Certbot Let’s Encrypt의 SSL인증서는 ACME 프로토콜을 준수하는 프로그램을 이용해 발급을 받을 수 있는데 Let’s Encyrpt는 Cerbot 사용을 권장하고 있다. 우분투 에서 제공하는 Certbot 패키지가 이미 존재하지만, 오래된 버전이다. 따라서 레포지토리를 이용해 설치를 할 것이다. $ sudo add-apt-repository ppa:certbot/certbot Certbot의 Nginx 패키지 설치 $ sudo apt install python-certbot-nginx SSL 인증서 Certbot은 다양한 플러그인을 통해 SSL .. 서버개발 SpringBoot 2022. 4. 7. EC2 서버 환경 구축 / 도메인 접속 / 서브 도메인 연결 / Redirection nginx 설치 $ sudo apt install nginx MYSQL 설치 및 접속 $ sudo apt install mysql-server $ sudo mysql -u root -p PHP 설치 $ sudo apt install php-fpm php-mysql PHP 와 nginx 연동 $ cd etc/nginx/sites-available $ sudo vi default location ~ \.php$ {} 이 블록의 주석을 해제한 후, include 부분도 주석을 해제한다. 또한 php 의 버전에 맞게 수정한다. 다음으로 아래의 명령어들을 실행한 후 $ cd /etc/nginx $ sudo vi nginx.conf nginx.conf 에서 커서가 위치해있는 저 줄 ( server_names_has.. 서버개발 SpringBoot 2022. 4. 6. 서버 클라이언트 통신 / OSI 7 계층 / TCP / IP(패킷 헤더, IPv4, IPv6, 도메인) / Port(포트번호, 포트리스닝, 인바운드/아웃바운드) / 포트포워딩(외부IP/내부IP, 외부Port/내부Port) / AWS EC2 서버와 클라이언트 통신 방법 http 통신 - client의 요청(Request)이 있을 때만 서버가 응답(response)하여 해당 정보를 전송하고 곧바로 연결을 종료하는 방식이다. 이는 단방향적 통신으로 서버가 클라이언트 쪽으로 요청을 보낼수는 없다. - 실시간 연결이 아니고, 필요한 경우에만 Server로 요청을 보내는 상황에 주로 사용된다. socket 통신 - 서버와 클라이언트가 특정 port를 통해 연결하여 실시간 양방향 통신을 하는 방식이다. http통신과 달리 socket통신은 서버 역시 클라이언트로 요청을 보낼 수 있고, 실시간으로 연결이 유지된다. - 실시간 동영상 Streaming이나 온라인 게임 등과 같은 경우에 자주 사용된다. 네트워크 계층 OSI 7 계층 - 물리계층 전기, 기계.. 서버개발 SpringBoot 2022. 4. 1. 공유기 포트포워딩 / AWS EC2 Instance 생성 우리집 공유기인 tp-link 의 관리자 페이지에 접속해 포트포워딩을 설정하였다. 이제 외부에서 내 컴퓨터로 접속이 가능해졌다. 이제 다른 컴퓨터(외부)를 이용해서 192.168.0.145 인 내 컴퓨터 IP 에 접속을 해보자. 나는 아이폰 사파리에서 접속을 해보았는데, 잘 접속이 되는 걸 확인해 볼 수 있다. 다음은 아이폰에서 내 노트북의 phpinfo.php 에 접속한 결과이다. 이제 포트포워딩 설정을 완료했으니, AWS 에서 가상 컴퓨터를 만들어보자. AWS EC2 인스턴스를 생성해주었다. 인스턴스 하나를 생성하는 것은 컴퓨터 한 대를 조립한 것과 같다. 다음으로는 탄력적 IP 를 연결해주어야 한다. EC2 인스턴스를 생성하여 서버를 실행시키면, 고정 IP 가 아닌 동적 IP 를 할당받는다. 그래서.. 서버개발 SpringBoot 2022. 4. 1. 로컬 서버 구축 / 서버 구조 / 서버와 클라이언트 비트나미 이용해서 local환경에 WAMP 설치 WAMP 는 윈도우 환경에서 amp 서버를 구동할 수 있게 해준다. 즉, amp 를 각각 설치하지 않아도 wamp 을 사용하면 한 번에 구성할 수 있도록 도와주는 것이다. AMP 란? apache, mysql, php 의 약자이다. apache : http통신을 이용해서 내 컴퓨터 자원에 접근할 수 있도록 만들어주는 http 웹서버 프로그램 mysql : 데이터베이스 프로그램 php : 웹 개발 언어 local에서 웹서버 작동 확인(비트나미 화면, phpinfo) WAMP 를 실행하면 다음과 같은 창이 뜨고, Manage Servers 탭에서 웹 서버에 연결이 되었음을 확인할 수 있다. 웹서버가 실행되고 있는지 확인하기 위해 localhost/phpinfo.. 서버개발 SpringBoot 2022. 3. 29. 이전 1 다음