Search

Nginx ์„ค์น˜

Nginx ์„ค์น˜

๊ฐœ์š”

Nginx(์—”์ง„์—‘์Šค)๋Š” ๊ฒฝ๋Ÿ‰ ๊ณ ์„ฑ๋Šฅ ์›น ์„œ๋ฒ„๋กœ, Ubuntu์—์„œ apt install nginx ํ•œ ์ค„๋กœ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋‹ค.
๋“œ๋””์–ด Nginx๋ฅผ ์ง์ ‘ ์„ค์น˜ํ•ด๋ณผ ์‹œ๊ฐ„์ด์—์š”! ์ด๋ก ์€ ์ถฉ๋ถ„ํžˆ ๋ฐฐ์› ์œผ๋‹ˆ ์ด์ œ ์†์œผ๋กœ ์ง์ ‘ ํ•ด๋ด์•ผ์ฃ . Nginx ์„ค์น˜๋Š” ์ •๋ง ๊ฐ„๋‹จํ•ด์š” โ€” ๋ฆฌ๋ˆ…์Šค ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž(apt)๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ช…๋ น์–ด ๋ช‡ ์ค„์ด๋ฉด ๋์ด์—์š”.
AWS EC2์— Ubuntu ์„œ๋ฒ„๋ฅผ ๋„์šฐ๋“ , ๋กœ์ปฌ์— ๊ฐ€์ƒ๋จธ์‹ ์„ ์„ค์น˜ํ•˜๋“ , ๊ณผ์ •์€ ๊ฑฐ์˜ ๋™์ผํ•ด์š”!

์„ค์น˜ ํ™˜๊ฒฝ ์•„ํ‚คํ…์ฒ˜

graph TD
    A[๐Ÿ’ป ๋‚ด ์ปดํ“จํ„ฐ] -->|SSH ์ ‘์†| B[๐Ÿ–ฅ๏ธ Ubuntu ์„œ๋ฒ„]
    B --> C[๐Ÿ“ฆ apt ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž]
    C -->|apt install nginx| D[โš™๏ธ Nginx ์„ค์น˜๋จ]
    D --> E[๐ŸŒ ํฌํŠธ 80์—์„œ ๋Œ€๊ธฐ]
    D --> F[๐Ÿ“ /etc/nginx/ ์„ค์ • ํŒŒ์ผ]
    D --> G[๐Ÿ“‚ /var/www/html/ ์›น ๋ฃจํŠธ]
    D --> H[๐Ÿ“ /var/log/nginx/ ๋กœ๊ทธ]

    style D fill:#90EE90
Mermaid
๋ณต์‚ฌ

์„ค์น˜ ๋‹จ๊ณ„

Step 1: ํŒจํ‚ค์ง€ ๋ชฉ๋ก ์—…๋ฐ์ดํŠธ

sudo apt update
Bash
๋ณต์‚ฌ
์„ค์น˜ ์ „์— ํ•ญ์ƒ ํŒจํ‚ค์ง€ ๋ชฉ๋ก์„ ์ตœ์‹ ํ™”ํ•ด์•ผ ํ•ด์š”. ์•ˆ ํ•˜๋ฉด ์˜›๋‚  ๋ฒ„์ „์ด ์„ค์น˜๋  ์ˆ˜๋„ ์žˆ๊ฑฐ๋“ ์š”!

Step 2: Nginx ์„ค์น˜

sudo apt install nginx -y
Bash
๋ณต์‚ฌ
โ€ข
y ์˜ต์…˜์€ "์„ค์น˜ํ•  ๊ฑฐ์•ผ? (Y/N)" ์งˆ๋ฌธ์— ์ž๋™์œผ๋กœ "Y"๋ฅผ ์ž…๋ ฅํ•ด์ฃผ๋Š” ๊ฑฐ์˜ˆ์š”.

Step 3: ์„ค์น˜ ํ™•์ธ

# Nginx ๋ฒ„์ „ ํ™•์ธ nginx -v # ์ถœ๋ ฅ ์˜ˆ์‹œ: nginx version: nginx/1.24.0 (Ubuntu)
Bash
๋ณต์‚ฌ

Step 4: Nginx ์‹œ์ž‘ ๋ฐ ์ƒํƒœ ํ™•์ธ

# Nginx ์‹œ์ž‘ sudo systemctl start nginx # ์ƒํƒœ ํ™•์ธ sudo systemctl status nginx # ๋ถ€ํŒ… ์‹œ ์ž๋™ ์‹œ์ž‘ ์„ค์ • sudo systemctl enable nginx
Bash
๋ณต์‚ฌ
# ์ €์žฅ์†Œ ์—…๋ฐ์ดํŠธ sudo apt update # Nginx ์„ค์น˜ sudo apt install -y nginx # ์„œ๋น„์Šค ์‹คํ–‰ ๋ฐ ๋ถ€ํŒ… ์‹œ ์ž๋™ ์‹œ์ž‘ sudo systemctl enable nginx sudo systemctl start nginx # ์ƒํƒœ ํ™•์ธ systemctl status nginx
Bash
๋ณต์‚ฌ

์ €์žฅ์†Œ ์—…๋ฐ์ดํŠธ

sudo apt update
Bash
๋ณต์‚ฌ

Nginx ์„ค์น˜

sudo apt install -y nginx
Bash
๋ณต์‚ฌ

์„œ๋น„์Šค ์‹คํ–‰ ๋ฐ ๋ถ€ํŒ… ์‹œ ์ž๋™ ์‹œ์ž‘

sudo systemctl enable nginx
Bash
๋ณต์‚ฌ
sudo systemctl start nginx
Bash
๋ณต์‚ฌ

์ƒํƒœ ํ™•์ธ

systemctl status nginx
Bash
๋ณต์‚ฌ

์„ค์น˜ ํ™•์ธ ๋ฐฉ๋ฒ•

๋ฐฉ๋ฒ• 1: systemctl๋กœ ํ™•์ธ

sudo systemctl status nginx
Bash
๋ณต์‚ฌ
โ— nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled) Active: active (running) โ† โœ… ์ด๊ฒŒ ๋ณด์ด๋ฉด ์„ฑ๊ณต!
Plain Text
๋ณต์‚ฌ

๋ฐฉ๋ฒ• 2: curl๋กœ ํ™•์ธ

curl <http://localhost>
Bash
๋ณต์‚ฌ
"Welcome to nginx!" ํŽ˜์ด์ง€๊ฐ€ ๋ณด์ด๋ฉด ์„ฑ๊ณต์ด์—์š”!

๋ฐฉ๋ฒ• 3: ๋ธŒ๋ผ์šฐ์ €๋กœ ํ™•์ธ

๋ธŒ๋ผ์šฐ์ €์—์„œ http://์„œ๋ฒ„IP์ฃผ์†Œ ์ž…๋ ฅ โ†’ Nginx ๊ธฐ๋ณธ ํ™˜์˜ ํŽ˜์ด์ง€๊ฐ€ ๋ณด์ด๋ฉด ์„ฑ๊ณต!

์„ค์น˜ ํ›„ ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ

graph TD
    A["Nginx ์„ค์น˜ ํ›„<br/>์ฃผ์š” ๊ฒฝ๋กœ"] --> B["/etc/nginx/<br/>โš™๏ธ ์„ค์ • ํŒŒ์ผ"]
    A --> C["/var/www/html/<br/>๐Ÿ“ ์›น ๋ฃจํŠธ (๊ธฐ๋ณธ)"]
    A --> D["/var/log/nginx/<br/>๐Ÿ“ ๋กœ๊ทธ"]
    A --> E["/usr/sbin/nginx<br/>๐Ÿ”ง ์‹คํ–‰ ํŒŒ์ผ"]

    B --> B1["nginx.conf<br/>๋ฉ”์ธ ์„ค์ • โญ"]
    B --> B2["sites-available/<br/>์‚ฌ์ดํŠธ ์„ค์ • ๋ณด๊ด€"]
    B --> B3["sites-enabled/<br/>ํ™œ์„ฑํ™”๋œ ์‚ฌ์ดํŠธ โญ"]
    B --> B4["conf.d/<br/>์ถ”๊ฐ€ ์„ค์ •"]

    D --> D1["access.log<br/>์ ‘๊ทผ ๋กœ๊ทธ"]
    D --> D2["error.log<br/>์—๋Ÿฌ ๋กœ๊ทธ"]

    style B1 fill:#FFD700
    style B3 fill:#FFD700
Mermaid
๋ณต์‚ฌ
๊ฒฝ๋กœ
์šฉ๋„
์ค‘์š”๋„
/etc/nginx/nginx.conf
๋ฉ”์ธ ์„ค์ • ํŒŒ์ผ
/etc/nginx/sites-available/
์‚ฌ์ดํŠธ๋ณ„ ์„ค์ • ํŒŒ์ผ ๋ณด๊ด€์†Œ
/etc/nginx/sites-enabled/
์‹ค์ œ ํ™œ์„ฑํ™”๋œ ์‚ฌ์ดํŠธ ์„ค์ • (์‹ฌ๋ณผ๋ฆญ ๋งํฌ)
/etc/nginx/conf.d/
์ถ”๊ฐ€ ์„ค์ • ํŒŒ์ผ ๋””๋ ‰ํ† ๋ฆฌ
/var/www/html/
๊ธฐ๋ณธ ์›น ๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ
/var/log/nginx/access.log
์ ‘๊ทผ ๋กœ๊ทธ
/var/log/nginx/error.log
์—๋Ÿฌ ๋กœ๊ทธ
/usr/sbin/nginx
Nginx ์‹คํ–‰ ๋ฐ”์ด๋„ˆ๋ฆฌ

sites-available vs sites-enabled

graph LR
    A["sites-available/<br/>๐Ÿ“ฆ ๋ชจ๋“  ์‚ฌ์ดํŠธ ์„ค์ •"] -->|"์‹ฌ๋ณผ๋ฆญ ๋งํฌ<br/>ln -s"| B["sites-enabled/<br/>โœ… ํ™œ์„ฑํ™”๋œ ์„ค์ •๋งŒ"]
    B --> C["Nginx๊ฐ€ ์ด ํด๋”๋งŒ<br/>์ฝ์–ด์„œ ์ ์šฉ"]

    style A fill:#87CEEB
    style B fill:#90EE90
Mermaid
๋ณต์‚ฌ
sites-available์—๋Š” ์„ค์ • ํŒŒ์ผ์„ ๋ณด๊ด€ํ•˜๊ณ , sites-enabled์— ์‹ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ๋งŒ๋“ค์–ด ํ™œ์„ฑํ™”ํ•ด์š”. ์‚ฌ์ดํŠธ๋ฅผ ์ž ์‹œ ๋น„ํ™œ์„ฑํ™”ํ•˜๊ณ  ์‹ถ์œผ๋ฉด ๋งํฌ๋งŒ ์‚ญ์ œํ•˜๋ฉด ๋˜๋‹ˆ๊นŒ, ์„ค์ • ํŒŒ์ผ์„ ์ง€์šธ ํ•„์š”๊ฐ€ ์—†์–ด์„œ ํŽธํ•ด์š”!
# ์‚ฌ์ดํŠธ ์„ค์ • ํ™œ์„ฑํ™” sudo ln -s /etc/nginx/sites-available/mysite /etc/nginx/sites-enabled/ # ์‚ฌ์ดํŠธ ๋น„ํ™œ์„ฑํ™” sudo rm /etc/nginx/sites-enabled/mysite
Bash
๋ณต์‚ฌ

์‹ฌ๋ณผ๋ฆญ ๋งํฌ(soft link)

์‹ค์ œ ํŒŒ์ผ์ด๋‚˜ ํด๋”๋ฅผ ๋ณต์‚ฌํ•˜์ง€ ์•Š๊ณ , ๋‹ค๋ฅธ ๊ฒฝ๋กœ์˜ ๋Œ€์ƒ์„ ๊ฐ€๋ฆฌํ‚ค๋Š” โ€œ๋ฐ”๋กœ๊ฐ€๊ธฐโ€ ๊ฐ™์€ ๋งํฌ ํŒŒ์ผ์ด์—์š”.

๋ฐฉํ™”๋ฒฝ ์„ค์ • (UFW)

Nginx๋ฅผ ์„ค์น˜ํ•˜๋ฉด UFW(๋ฐฉํ™”๋ฒฝ)์— ์ž๋™์œผ๋กœ ํ”„๋กœํ•„์ด ๋“ฑ๋ก๋ผ์š”.
# Nginx ๋ฐฉํ™”๋ฒฝ ํ”„๋กœํ•„ ํ™•์ธ sudo ufw app list
Bash
๋ณต์‚ฌ
ํ”„๋กœํ•„
ํ—ˆ์šฉ ํฌํŠธ
์šฉ๋„
Nginx HTTP
80
HTTP๋งŒ
Nginx HTTPS
443
HTTPS๋งŒ
Nginx Full
80 + 443
HTTP + HTTPS ๋ชจ๋‘
# HTTP + HTTPS ๋ชจ๋‘ ํ—ˆ์šฉ (๊ฐ€์žฅ ์ถ”์ฒœ) sudo ufw allow 'Nginx Full' # ๋ฐฉํ™”๋ฒฝ ์ƒํƒœ ํ™•์ธ sudo ufw status
Bash
๋ณต์‚ฌ

์„ค์น˜ ๋ฐฉ๋ฒ•๋ณ„ ๋น„๊ต

๋ฐฉ๋ฒ•
๋ช…๋ น์–ด
๋ฒ„์ „
์žฅ์ 
๋‹จ์ 
apt (๊ธฐ๋ณธ ์ €์žฅ์†Œ)
apt install nginx
์•ˆ์ • ๋ฒ„์ „
๊ฐ„ํŽธ, ์ž๋™ ์—…๋ฐ์ดํŠธ
์ตœ์‹  ๋ฒ„์ „์ด ์•„๋‹ ์ˆ˜ ์žˆ์Œ
Nginx ๊ณต์‹ ์ €์žฅ์†Œ
PPA ์ถ”๊ฐ€ ํ›„ ์„ค์น˜
์ตœ์‹  ์•ˆ์ • ๋ฒ„์ „
๋” ์ตœ์‹ 
์„ค์ • ์•ฝ๊ฐ„ ๋ณต์žก
์†Œ์Šค ์ปดํŒŒ์ผ
./configure && make
์›ํ•˜๋Š” ๋ฒ„์ „
๋ชจ๋“ˆ ์ปค์Šคํ…€ ๊ฐ€๋Šฅ
๋ณต์žก, ์ˆ˜๋™ ๊ด€๋ฆฌ ํ•„์š”
Docker
docker run nginx
์›ํ•˜๋Š” ๋ฒ„์ „
๊ฒฉ๋ฆฌ, ์ด์‹์„ฑ
Docker ์ง€์‹ ํ•„์š”
์ฒ˜์Œ์—๋Š” apt ๊ธฐ๋ณธ ์„ค์น˜๋กœ ์ถฉ๋ถ„ํ•ด์š”! ํŠน๋ณ„ํ•œ ๋ชจ๋“ˆ์ด ํ•„์š”ํ•˜๊ฑฐ๋‚˜ ์ตœ์‹  ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•  ๋•Œ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ๊ณ ๋ คํ•˜๋ฉด ๋ผ์š”.

์„ค์น˜ ํ›„ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

์ˆœ์„œ
ํ™•์ธ ์‚ฌํ•ญ
๋ช…๋ น์–ด
๊ธฐ๋Œ€ ๊ฒฐ๊ณผ
1
Nginx ๋ฒ„์ „ ํ™•์ธ
nginx -v
๋ฒ„์ „ ๋ฒˆํ˜ธ ์ถœ๋ ฅ
2
์„œ๋น„์Šค ์ƒํƒœ ํ™•์ธ
systemctl status nginx
active (running)
3
ํฌํŠธ 80 ๋ฆฌ์Šจ ํ™•์ธ
ss -tlnp \| grep 80
Nginx๊ฐ€ 80ํฌํŠธ์—์„œ ๋Œ€๊ธฐ
4
๋ฐฉํ™”๋ฒฝ ํ™•์ธ
sudo ufw status
80/443 ํ—ˆ์šฉ
5
๋กœ์ปฌ ์ ‘์† ํ…Œ์ŠคํŠธ
curl <http://localhost>
HTML ์‘๋‹ต
6
์™ธ๋ถ€ ์ ‘์† ํ…Œ์ŠคํŠธ
๋ธŒ๋ผ์šฐ์ €์—์„œ ์„œ๋ฒ„IP ์ž…๋ ฅ
ํ™˜์˜ ํŽ˜์ด์ง€

ํ•ต์‹ฌ ์ •๋ฆฌ

์„ค์น˜: sudo apt update && sudo apt install nginx
์‹œ์ž‘: sudo systemctl start nginx, ์ž๋™ ์‹œ์ž‘: sudo systemctl enable nginx
์„ค์ • ํŒŒ์ผ:
/etc/nginx/nginx.conf (๋ฉ”์ธ),
/etc/nginx/sites-enabled/ (์‚ฌ์ดํŠธ๋ณ„)
์›น ๋ฃจํŠธ: /var/www/html/, ๋กœ๊ทธ: /var/log/nginx/
๋ฐฉํ™”๋ฒฝ: sudo ufw allow 'Nginx Full' (80+443 ํฌํŠธ ํ—ˆ์šฉ)