nginx ์ ์ฉ์ css ๊นจ์ง๋ ํ์
Nginx๋ฅผ ์ฌ์ฉํ์ฌ ์น์๋ฒ๋ฅผ ๊ตฌ์ถํด๋ณด๋ ์๊ฐ์ ๊ฐ์ง ์ ์ด ์๋ค.
์ด๋, ์น์๋ฒ nginx์ default.conf์์ proxy_pass๋ก ์ค์ ์ ํ์ฌ WAS(Web Application Server)์ ์๋ ํ์ด์ง๋ฅผ ์์ฒญํ๋ค.
๊ทผ๋ฐ, ์ฒ์ ํ์ด์ง๋ฅผ ์์ฒญ์ ํ์ ๋ css์ js๊ฐ ์ ์ฉ์ด ์ ํ ์ ๋์๋ค.
์ฝ์์์ ์๋ฌ๋ฅผ ๋ณด๋ 404์๋ฌ๊ฐ ๋ํ๋ฌ๋ค.
404 : url์ ์๋ชป ์ ๋ ฅํ์ ๋ ์์ฒญํ url์ ์ฐพ์ ์ ์์์ ์๋ฏธํ๋ค. ํ์ง๋ง was์์๋ ๋ฌธ์ ์์ด ๋์๋๋ฐ ์ฌ๊ธฐ์๋ ์ ๋๋ ๊ฒ์ ๋ณด์์ ๋url ์์ฒด์ ์คํ๊ฐ ์์ง๋ ์์ ์ํฉ์ด๋ค. ์ฆ, ์ด๋ ํ ์ด์ ๋ก ๋ฆฌ์์ค๋ฅผ ๋ชป์ฐพ๊ณ ์๋ ๊ฒ์ด๋ค.
์ด๋ง์ ์ฆ, nginx๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์๋ nginx์์๋ ์์ฒญํด์ ๊ฐ์ ธ์ฌ ์ ์๋ ๊ฒฝ๋ก๋ฅผ ๋ง๋ค์ด์ค์ผ ํ๋ค๋ ์๋ฏธ์ด๋ค.
์๋ํ๋ฉด nginx๋ฅผ ์ค์ ํด์ ๋ธ๋ผ์ฐ์ ์ ์ต์ด ํ๋ฉด์ด์ผ๋ก ๋์ค๊ฒ ํ๊ธฐ ์ํด์ ์ ์ ํด๋ ๋ฐ ํ์ผ๋ค์ ๊ตฌ์กฐ๋ฅผ ์ค์ ํด ๋ ๋๋ก ๊ฐ์ ธ์์ผ ํ๊ธฐ ๋๋ฌธ์ด๋ค.
์๋ฅผ ๋ค๋ฉด,
server {
listen 80;
server_name example.com;
# ์ ์ ํ์ผ ์ฒ๋ฆฌ
location /static/ {
alias /path/to/your/static/files/;
# ์ ์ ํ์ผ ์บ์ฑ์ ์ํ ํค๋ ์ค์ (์ต์
)
expires 30d;
add_header Cache-Control "public, max-age=2592000";
}
# ๋์ ์์ฒญ ์ฒ๋ฆฌ (์: PHP, Python, Node.js ๋ฑ)
location / {
proxy_pass http://your_was_backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
์ด๋ฐ ์์ผ๋ก ์ ์ ํด๋๋ค์ ๊ฐ์ ธ์์ html๋ฑ ๊ธฐ๋ณธ ์ ์ผ๋ก ์ค์ ํด๋ ๊ตฌ์กฐํํ๋ก ngnix์ ๊ฐ์ ธ์์ผ ํ๋ ๊ฒ์ด๋ค.
์ฆ, ์ค์ html์ <script>์ <css>์ ๊ฒฝ๋ก๊ฐ ์๋๋ฐ ์ด ๊ตฌ์กฐ์ ๋ง๊ฒ ๊ฐ์ ธ์ค๋ฉด ๋๋ ํํ์ด๋ค.
๊ฒฐ๊ณผ์ ์ผ๋ก ์ด๋ฅผ ๋ฐ์ํ์ฌ ์๋์ฒ๋ผ ๊ตฌ์ฑํ๋๋, ๊นจ์ก๋ ํ๋ฉด์ด ์ ์์ ์ผ๋ก ๋์์๋ค.
location /axxx/dxxx {
proxy_pass http://192.xxx:8080/axxx/dxxx;
# ํด๋ผ์ด์ธํธ์ ํธ์คํธ ํค๋๋ฅผ ์ ์ง
proxy_set_header Host $host;
# ํด๋ผ์ด์ธํธ์ ์ค์ IP ์ฃผ์ ์ ๋ฌ
proxy_set_header X-Real-IP $remote_addr;
# ํ๋ก์๋ฅผ ๊ฑฐ์น ํด๋ผ์ด์ธํธ์ IP ์ฃผ์ ๋ฆฌ์คํธ ์ ๋ฌ
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# ํด๋ผ์ด์ธํธ์ ์์ฒญ ํ๋กํ ์ฝ ์ ๋ฌ (HTTP ๋๋ HTTPS)
proxy_set_header X-Forwarded-Proto $scheme;
}
location /axxx/css/ {
proxy_pass http://192.xxx:8080/axxx/css/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location /axxx/js/ {
proxy_pass http://192.xxx:8080/axxx/js/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location /axxx/img/ {
proxy_pass http://192.xxx:8080/axxx/img/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
์ดํ, ๋์ ์ธ ํ์ผ๋ค์ was์ ์์ฒญํ๊ฒ๋ proxy_pass๋ฅผ ์ค์ ํด์ฃผ๋ฉด ๋๋ค.
์ด์ ์๋ ngnix๋ฅผ ์๋ฌด ์๊ฐ์์ด ์ฌ์ฉํ๋๋ฐ, ์๊ฐ๋ณด๋ค ๊ณต๋ถํ ๋ด์ฉ์ด ๋ง์ ๊ฒ ๊ฐ๋ค.
์ฐจ์ฐจ ์ ๋ฆฌํด์ ๋ธ๋ก๊ทธ์ ์ ๋ฆฌํ๋๋ก ํด์ผ๊ฒ ๋ค.
*expires๋ -> Nginx ์ค์ ํ์ผ์์ expires ๋๋ ํฐ๋ธ๋ ๋ธ๋ผ์ฐ์ ์บ์ฑ์ ์ ์ดํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ค. ์ด ๋๋ ํฐ๋ธ๋ ํด๋ผ์ด์ธํธ์๊ฒ ์ ๊ณต๋๋ ํ์ผ์ ์บ์ฑ ๊ธฐ๊ฐ์ ์ค์ ํ๋ค. ํด๋ผ์ด์ธํธ์ ๋ธ๋ผ์ฐ์ ๋ ์ค์ ๋ ๊ธฐ๊ฐ ๋์ ํ์ผ์ ์บ์ํ๊ณ , ์๋ฒ๋ก๋ถํฐ ๋ค์ ์์ฒญํ์ง ์๋๋ค. ์ด๋ ๊ฒ ํจ์ผ๋ก์จ ์๋ฒ ๋ถํ๋ฅผ ์ค์ด๊ณ , ํด๋ผ์ด์ธํธ์ ๋ก๋ ์๊ฐ์ ๋จ์ถํ ์ ์๋ค.
์ฐธ๊ณ :