본 글은 IntelliJ상에서 EC2 IP로 원격 접근한 환경에서 NGINX에서의 정적콘텐츠 호스팅 실습을 해본 글입니다
uduntu 기준, /etc/nginx/sites-available 디렉토리의 default이 nginx의 설정 파일입니다. 이 파일은 주로 HTTP 요청을 처리하는 부분을 다룹니다.
default 파일 내부는 다음과 같습니다
server { #하나의 서버 블록을 정의하는 부분
listen 80 default_server; # 해당 서버를 80번 포트에서 HTTP 요청을 기다리는 기본 서버로 설정함(아래 줄도 마찬가지)
listen [::]:80 default_server;
# SSL configuration
#
# listen 443 ssl default_server;
# listen [::]:443 ssl default_server;
#
# Note: You should disable gzip for SSL traffic.
# See: https://bugs.debian.org/773332
#
# Read up on ssl_ciphers to ensure a secure configuration.
# See: https://bugs.debian.org/765782
#
# Self signed certs generated by the ssl-cert package
# Don't use them in a production server!
#
# include snippets/snakeoil.conf;
root /var/www/html; #웹 서버의 루트 디렉토리를 /var/www/html로 설정함. (이 디렉토리는 웹 페이지 파일들이 저장되는 곳임.)
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html; #웹 서버가 index 파일로 인식하는 파일들의 우선순위를 설정함.(index.html, index.htm, index.nginx-debian.html 순서로 우선시)
server_name _; #모든 호스트 네임에 대해 이 서버 블록을 사용하도록 설정(언더스코어(_)는 모든 호스트 네임을 나타냄)
location / { #클라이언트가 URI 경로에 따라 요청을 처리하는 방법을 정의
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404; #요청된 파일이나 디렉토리가 없을 경우 404 에러를 반환
}
# pass PHP scripts to FastCGI server
#
#location ~ \.php$ {
# include snippets/fastcgi-php.conf;
#
# # With php-fpm (or other unix sockets):
# fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
# # With php-cgi (or other tcp sockets):
# fastcgi_pass 127.0.0.1:9000;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
파일 내부를 자세히 알아보기 위해 주석을 달아두었으니 참고해주세요!
/mission3 경로에 대해 제 이름이 포함된 HTML 문서를 보여주기 위해 이 파일에서 /mission3 경로에 대한 설정을 추가해보겠습니다.
먼저 default 파일로 이동하여 수정해줍니다.
ubuntu@ip-10-0-1-202:~$ cd /etc/nginx/sites-available/
ubuntu@ip-10-0-1-202:/etc/nginx/sites-available$ sudo vi default
그 다음 /mission3 경로에 대한 설정을 아래와 같이 추가합니다
location /mission3 { #/mission3 경로에 대한 설정 정의
root /var/www; #해당 경로에서 파일을 찾을 때 기본적으로 /var/www 디렉토리를 사용함.(/mission3 경로에 사용될 파일을 /var/www 디렉토리 내에서 찾음.)
index mission3.html #mission3.html파일을 인덱스 파일로 사용하여 클라이언트에게 보여줌.
try_files $uri $uri/ =404; #위 파일이 없으면 404 에러 반환
}
자세한 내용은 주석을 참고해주세요!
이 다음 nginx 설정을 변경했으니 필수적으로 재실행 해주어야 합니다!
재실행 코드는 다음과 같습니다
ubuntu@ip-10-0-1-202:~$ sudo systemctl restart nginx
그 다음 아직 mission3.html을 만들지 않았기 때문에 이를 만들어주겠습니다.
위 location 블록 코드를 이해했다면, mission3.html 파일을 /var/www 에 만들어야한다는 것을 아실겁니다!
ubuntu@ip-10-0-1-202:~$ cd /var/www
ubuntu@ip-10-0-1-202:/var/www$ sudo mkdir mission3
ubuntu@ip-10-0-1-202:/var/www$ cd mission3/
ubuntu@ip-10-0-1-202:/var/www/mission3$ sudo vi mission3.html
ubuntu@ip-10-0-1-202:/var/www/mission3$ cat mission3.html
<h1> blu </h1>
이제 /mission3 경로로 접속해서 확인해보겠습니다!
다음과 같이 제대로 접속되는 것을 확인할 수 있습니다!
'프로젝트 🧸 > UMC 🌱' 카테고리의 다른 글
[UMC] /was에 접속 시 8080번 포트로 리버스 프록시가 되도록 설정하고 응답 확인해보기 (0) | 2024.04.17 |
---|---|
[AWS] VPC를 만들어 퍼블릭 서브넷을 구성하여 EC2를 해당 서브넷에 구성해보기 (0) | 2024.04.16 |
[UMC] NGINX 설치하고 브라우저에서 접속하기 (0) | 2024.04.14 |
[원격 접속] VSCode (Node.js) (0) | 2024.04.14 |
[원격 접속] IntelliJ (SpringBoot) (0) | 2024.04.14 |