Nginx์ ์ฃผ์ ๊ธฐ๋ฅ์ด ์ด 5๊ฐ์ง๊ฐ ์๋ค.
- ์ฅ์ ๋ฅผ ๋์ํ๋ ๋ฐฉ๋ฒ
- ๋ก๋ ๋ฐธ๋ฐ์ฑ์ผ๋ก ๋ถํ๋ถ์ฐ์ ์ํํ๊ธฐ
- Keep Alive๋ก ์์์ ํจ์จ์ ์ผ๋ก ์ด์ฉํ๊ธฐ
- Sub-Domain์ผ๋ก ๋ค์ํ ์๋ฒ ํธ์คํ
- ์บ์ฑ ์ฒ๋ฆฌ๋ก ๋ ๋น ๋ฅธ ์๋๋ฅผ ์ ๊ณต
์ฅ์ ๋์
์ฅ์ ๋์์ Backend ์๋ฒ์ ๋ํ ์์ฒญ๊ณผ ์๋ต์ ํ ๋๋ก ์ฅ์ ๋ฅผ ํ๋จํ๋ ์๋น์ค์ด๋ค.
์ฅ์ ๋์์ ์ํด์๋ Upstream Module์ ์ฌ์ฉํ๋๋ฐ, max_fails
, fail_timeout
์ผ๋ก ์๋ฒ์ ์ํ๋ฅผ ํ์ธํ๋ค.
๊ทธ ์ค์ ์ผ๋ก ์๋ฒ ์ํ๋ฅผ ํ์ธํด์ ์ค์ ๊ฐ์ ์ด๊ณผํ๋ฉด ๋ฐฑ์ ์๋ฒ๋ก ์๋น์ค๊ฐ ํ์ฑํ๋๊ฒ ํ๋ฉฐ ์ฅ์ ๋ฅผ ๋์ํ๋ค.
max_fails=n
: n์ผ๋ก ์ง์ ๋ ํ์๋งํผ ์ฐ๊ฒฐ ์คํจํ๋ฉด ์๋ฒ ๋ค์ด๋ ๊ฒ์ผ๋ก ํ๋จ.fail_timeout=n
: max_fails๊ฐ ์ง์ ๋ ์ํ์์ n๊ฐ์ด ์ค์ ๋งํผ ์๋ฒ๊ฐ ์๋ตํ์ง ์์ผ๋ฉด ์๋ฒ๊ฐ ๋ค์ด๋ ๊ฒ์ผ๋ก ํ๋จ.
upstream service {
ip_hash;
server 192.168.0.121:80
server 192.168.0.188:80 max_fails=5 fail_timeout=15s;
}
๋ก๋ ๋ฐธ๋ฐ์ฑ
ํด๋ฌ์คํฐ์ ์ค์ ๋๋ ์๋ฒ ์ ๋ณด์ ํฌํธ๋ฅผ upstream ๋ชจ๋๋ก ์ค์ ํด์ ์ฒซ ๋ฒ์งธ ์ค์ ๋ ์๋ฒ๊ฐ ์ฐ์ ์ผ๋ก ์ฒ๋ฆฌ
upstream myservice {
ip_hash;
server 192.168.0.121:80;
server 192.168.0.188:80;
}
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://myservice;
}
Keep Alive ์ ์ด
Keep Alive๋ Http ์์ผ ์ฐ๊ฒฐ์ด ์ข ๋ฃ๋ ์์ ๋ถํฐ ์น ์๋ฒ์ ์ค์ ๋ Timeout ๊น์ง ๊ธฐ์กด ์์ผ์ ์ ์งํ๋ ๊ธฐ๋ฅ์ผ๋ก, Keep-Alive ์ต์ ์ผ๋ก 0์ด ๊ฐ๋ฉด ๋นํ์ฑํ 1์ด๋ฉด ํ์ฑํ๋ก ์ค์ ํ ์ ์๋ค.
keepalive_timeout ์ผ๋ก ์ปค๋ฅ์
์๊ฐ์ ์ค์ ํ๊ณ ํด๋น ์ค์ ์๊ฐ์ด ๋ง๋ฃ๋๋ฉด Keep Alive ์์ผ ์ฐ๊ฒฐ์ ํด์ ํ๋ค.
upstream myservice {
server 192.168.0.121:80;
keepalive 1
}
Server {
keepalive_timeout 10
}
Sub-Domain
๊ฐ์ํธ์คํธ ๋ฐฉ์์ผ๋ก ๋ ๊ฐ์ server์ ํ๋์ ์น์๋ฒ์์ ํธ์คํ ํ ์ ์๊ฒ ํด์ค๋ค.
server {
listen 80;
server_name test1.mydomain.com
location / {
root /var/www/test1/public_html;
}
server {
listen 80;
server_name test2.mydomain.com
location / {
root /var/www/test2/public_html;
}
์บ์ฑ ์ฒ๋ฆฌ
์บ์ฑ์ด๋ ์น ์๋น์ค์ ์ด๋ฏธ์ง,CSS, ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ ์ ์ ์ธ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ์ฌ
์น ์๋น์ค์ ์๋ต ์๋๋ฅผ ๋ณด๋ค ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌ ๊ฐ๋ฅํ๋ค
- location : ์บ์๋ก ์ ์ฅํ ํ์ผ ์ค์
- expires : ๋ฐ์ดํฐ์ ์ ์ฅ ๊ธฐ๊ฐ ์ค์
- expires 1 (m, y) ์ค์ ๊ธฐ๊ฐ ๋์ ์ ์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๊ดํ๋ ์ค์ ์ผ๋ก m์ ๋ฌ y๋ ๋
location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc)$ {
expires 1M;
access_log off;
add_header Cache-Control "public";
}
์ค๋์ Nginx์ ๋ํ์ ์ธ ๊ธฐ๋ฅ 5๊ฐ์ง์ ๋ํด์ ์์๋ณด์๋ค.
๋ค์ ์๊ฐ์๋ Nginx๋ก ์์ ๊ธฐ๋ฅ๋ค์ ํ๋ ํ๋ ๊ตฌํํด๋ณด๋ฉด์ ์ดํดํด๋ณด๋ ์๊ฐ์ ๊ฐ์ ธ๋ณด์.
๋๊ธ