Sub Domain, Redirection ์ ์ฉ
nginx์์ Sub Domain, Redirection ์ ์ฉ
ํต์ฌ ๋ด์ฉ
- nginx ์ค์ ์ผ๋ก Dev, Prod๋ก ์์ํ๋ ์๋ธ ๋๋ฉ์ธ์ ๋ง๋ ๋ค.
- nginx ์ค์ ์ผ๋ก ํด๋ผ์ด์ธํธ์์ URL์ IP ์ฃผ์๋ฅผ ์ ๋ ฅํ์ ๋ ๋๋ฉ์ธ ์ฃผ์๋ก ๋ฐ๊ฟ์ฃผ๋๋ก ๋ฆฌ๋ค์ด๋ ์ ์ ์ ์ฉํด๋ณด์.
Sub Domain ๊ตฌํ
๊ฐ๋น์ ์ค์
๋๋ฉ์ธ ์ฃผ์๋ฅผ ๊ฐ๋น์์์ ๊ตฌ์
ํ์ผ๋ฏ๋ก, ๊ฐ๋น์๋ก ์ด๋ํ๋ค.
๊ฐ๋น์๋ก ์ด๋ ํ ๋ก๊ทธ์ธ์ ํ๋ฉด, ํ์ด์ง ํ๋จ์ ๊ตฌ์
ํ๋ ๋๋ฉ์ธ ๋ชฉ๋ก์ด ๋ณด์ด๊ณ , ์ฌ๊ธฐ์ ์๋ธ ๋๋ฉ์ธ์ ์ถ๊ฐํ๋ ค๋ ๋๋ฉ์ธ์ ๊ด๋ฆฌํด
ํด๋ฆญ ํ DNS ๋ ์ฝ๋ ์ค์ ์์ ์ค์
๋ฒํผ์ ํด๋ฆญํ๋ค.
DNS ์ค์ ์๋ ๋ด๊ฐ ๊ตฌ์
ํ ๋๋ฉ์ธ ๋ชฉ๋ก์ด ๋ณด์ด๊ณ ํด๋น ๋๋ฉ์ธ์ ์ค์
๋ฒํผ์ ํด๋ฆญ ํ ๋ ์ฝ๋ ์์
๋ฒํผ์ ๋๋ฌ์ค๋ค.
์ต์ด IP ์ฃผ์์ ๋ํ ๋๋ฉ์ธ ๋ฑ๋ก ํ์ ๋ค๋ฅธ ์ค์ ์ ํ์ง ์์๋ค๋ฉด, ํ์ A๋ง ๋ฑ๋ก๋ผ์์ ๊ฒ์ด๊ณ , ๋ค์๊ณผ ๊ฐ์ ์ค์ ์ ํด์ค๋ค.
์ต์ด๋ก ๋ฑ๋กํ๋ A ํ์
์ ๊ฐ์๋ ์๋ฒ์ IP ์ฃผ์๋ฅผ ์
๋ ฅํ์์ง๋ง, ์ถ๊ฐํ CNAME
์์๋ ๋๋ฉ์ธ ์ฃผ์๋ฅผ ์
๋ ฅํด ์ฃผ๊ณ , ํธ์คํธ์ ์๋ธ ๋๋ฉ์ธ์ผ๋ก ์ค์ ํ ์ ์ฃผ์๋ฅผ ๊ธฐ์
ํด ์ค๋ค.
์์ ์ด ์๋ฃ๋์์ผ๋ฉด nginx๋ก ์ ์ํด ์ค๋ค.
nginx ์ค์
๋ฆฌ๋ ์ค ์๋ฒ๋ก ์ ์ํด ์ค ํ nginx์ ์ค์ ํ์ผ์ ์๋ธ ๋๋ฉ์ธ ์ฃผ์๋ฅผ ์ถ๊ฐํด ์ค๋ค.
$ sudo vim /etc/nginx/sites-available/default
์ค์ ํ์ผ์ ํธ์ง๊ธฐ๋ก ์ฐ ๋ค ๋ค์๊ณผ ๊ฐ์ ์๋ธ ๋๋ฉ์ธ ์ค์ ์ ์ถ๊ฐํด ์ฃผ์.
server {
root /var/www/html/Dev;
index phpinfo.php index.html index.htm index.nginx-debian.html;
server_name Dev.vividstudy.shop;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
}
server {
root /var/www/html/Prod;
index phpinfo.php index.html index.htm index.nginx-debian.html;
server_name Prod.vividstudy.shop;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
}
vividstudy.shop
์ด๋ผ๋ ๋๋ฉ์ธ ๊ธฐ์ค์ผ๋ก Dev, Prod ์๋ธ ๋๋ฉ์ธ์ ์ถ๊ฐํด ์ฃผ๋ ์ค์ ์ด๋ค.
์ต์ด์ ํ์ด์ง๊ฐ ํ์ํ๋ฏ๋ก /var/www/html/Prod
, /var/www/html/Dev
๊ฒฝ๋ก์ ๊ฐ๊ฐ phpinfo.php
๋ฅผ ๋ง๋ค์ด์ ๋ฃ์ด์ค๋ค.
phpinfo.php๋ ๋ค์๊ณผ ๊ฐ๋ค.
// Prod Sub Domain Index Page
<?php echo "Prod Page!!"; ?>
// Dev Sub Domain Index Page
<?php echo "Dev Page!!"; ?>
sub ๋๋ฉ์ธ ์ ์
๊ฐ๊ฐ์ ์ฃผ์์ ์ ์ ์๋๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
Redirection(IP to Domain) ์ ์ฉ
nginx ์ค์
๋ฆฌ๋ค์ด๋ ์ ์ ์ ์ฉํ๊ธฐ ์ํด ์์์ ํธ์ง๊ธฐ๋ก ์ด์๋ nginx ์ค์ ํ์ผ์ ๋ค์ ์ด์ด์ฃผ์.
$ sudo vim /etc/nginx/sites-available/default
๋ค์๊ณผ ๊ฐ์ ๋ด์ฉ์ ์ถ๊ฐํด ์ค๋ค.
server_name
๋ค์ IP์ฃผ์;
๋ฅผ ์
๋ ฅํด ์ฃผ์.
IP ์ฃผ์์ 80๋ฒ ํฌํธ๋ก ์ ์ํ๋ฉด https๊ฐ ๋ถ์ ๋๋ฉ์ธ ์ฃผ์๋ก ๋ณด๋ด๋ฌ๋ผ๋ ์ค์ ์ด๋ค.
301 : 301์ URL Redirection ์๋ต ์ํ ์ฝ๋์ด๋ค.
ํ์ธ
IP ์ฃผ์๋ฅผ ์ ๋ ฅํด๋ณด์.
IP ์ฃผ์๋ฅผ ์ ๋ ฅํ๋ฉด https ํ๋กํ ์ฝ์ ๋๋ฉ์ธ ์ฃผ์๋ก ๋ฆฌ๋ค์ด๋ ์ ๋๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.