๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Deploy

์šฐ๋ถ„ํˆฌ์— Nginx ์„ค์น˜ & ํฌํŠธํฌ์›Œ๋”ฉ

Nginx ์„ค์น˜ & ํฌํŠธํฌ์›Œ๋”ฉ

Nginx๋ฅผ ์„ค์น˜ํ•˜๊ณ  ์„œ๋ฒ„์— ์ ‘์†ํ•˜๋ฉด ๋ฐ”๋กœ ์—ฐ๊ฒฐํ•  ํฌํŠธํฌ์›Œ๋”ฉ์„ ํ•ด๋ณด์ž.

Nginx ์„ค์น˜

sudo apt-get install nginx

๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•ด ์šฐ๋ถ„ํˆฌ์— ์„ค์น˜ํ•œ๋‹ค.

์œ„์™€ ๊ฐ™์ด ์—ฌ๋Ÿฌ ๋ฉ”์‹œ์ง€์™€ ํ•จ๊ป˜ nginx๊ฐ€ ์„ค์น˜๋œ๋‹ค.

Nginx ์‹คํ–‰ & ์ ‘์†

$ sudo service nginx start

ํ•ด๋‹น ๋ช…๋ น์–ด๋กœ nginx๋ฅผ ์‹คํ–‰์‹œ์ผœ ์ค€ ๋’ค, IP ์ฃผ์†Œ๋กœ ์ ‘์†ํ•ด ์ค€๋‹ค.

IP ์ฃผ์†Œ๋กœ ์ ‘์†

์œ„์™€ ๊ฐ™์€ ํ™”๋ฉด์ด ๋‚˜์˜ค๋ฉด nginx๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์„ค์น˜๋˜๊ณ  ์‹คํ–‰๋œ ๊ฒƒ์ด๋‹ค.

(EC2๋ผ๋ฉด ํฌํŠธ ๋ฒˆํ˜ธ 80๋ฒˆ์— ๋Œ€ํ•œ ์ ‘๊ทผ์ด ํ—ˆ์šฉ๋ผ์žˆ์–ด์•ผ ํ•œ๋‹ค.)

ํฌํŠธํฌ์›Œ๋”ฉ ์„ค์ •

Nginx๊ฐ€ ์‹คํ–‰๋˜๋ฉด ๋””ํดํŠธ ํฌํŠธ์ธ 80๋ฒˆ์— ์ ‘์†ํ•˜๋ฉด ์ž๋™์œผ๋กœ Nginx ํŽ˜์ด์ง€๊ฐ€ ๋‚˜์˜จ๋‹ค.

Nginx๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ชฉ์ ์€ ์›ํ•  ๋•Œ Nginx๊ฐ€ ๋ฐ”๋ผ๋ณด๋Š” ํฌํŠธ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฆฌ๋ฒ„์Šค ํ”„๋ก์‹œ๋ฅผ ์ ์šฉํ•˜๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์—, ์„ค์ •์œผ๋กœ ๊ธฐ๋ณธ ip์— ์ ‘์†ํ–ˆ์„ ๋•Œ Nginx๊ฐ€ ์‹คํ–‰ ์ค‘์ธ ์„œ๋ฒ„์˜ ํฌํŠธ๋กœ ์ ‘์†ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ์ž.

$ sudo vi /etc/nginx/nginx.conf

์ด ๋ช…๋ น์–ด๋กœ nginx ์„ค์ • ํŒŒ์ผ์„ ์—ด์–ด๋ณด์ž.


server ์œ„์— ํฌํŠธํฌ์›Œ๋”ฉ ์„ค์ •์„ ํ•ด์ค˜์•ผ ํ•˜๋Š”๋ฐ ์ด์™€ ๊ฐ™์ด server๋ฅผ ์ฐพ์•„๋ด๋„ ์•ˆ ๋ณด์ด๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค.

์ด๋•Œ๋Š” ๋‹ค์Œ์˜ ๋ช…๋ น์–ด๋กœ ํŒŒ์ผ์„ ์—ด์–ด๋ณด์ž.

$ sudo vi /etc/nginx/sites-available/default


server๊ฐ€ ๋ณด์ผ ๊ฒƒ์ด๊ณ  server ์œ„์— location \์— ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํฌํŠธํฌ์›Œ๋”ฉ์„ ์ ์šฉํ•ด ์ฃผ์ž.

์ด๋•Œ, try_files $uri $uri/ =404;๋Š” #์œผ๋กœ ์ฃผ์„ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ฃผ์ž.

   location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                # try_files $uri $uri/ =404;
                proxy_set_header    HOST $http_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;
                proxy_set_header    X-NginX-Proxy true;
                proxy_pass http://localhost:"์›ํ•˜๋Š” ํฌํŠธ ๋ฒˆํ˜ธ";
                proxy_redirect  off;
                charset utf-8;
        }

esc -> :wq๋กœ ์ €์žฅ์„ ํ•œ ๋’ค ์•„๋ž˜์˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ์ž.

$ sudo nginx -t

$ sudo service nginx reload

์‹คํ–‰

๋ฆฌ๋กœ๋“œ ์‹œํ‚จ ๋’ค, ๋‹ค์‹œ ์ ‘์†์„ ์‹œ๋„ํ•œ๋‹ค.

ip ์ฃผ์†Œ + ์„œ๋ฒ„ url

์˜ˆ์‹œ๋กœ ์Šคํ”„๋ง ๋ถ€ํŠธ swagger ํŽ˜์ด์ง€๋ฅผ ๋„์›Œ๋ดค๋‹ค.

ํฌํŠธ ๋ฒˆํ˜ธ๊ฐ€ ์—†์–ด๋„ Nginx๊ฐ€ ์„œ๋ฒ„์˜ ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ์—ฐ๊ฒฐํ•ด ์ฃผ๋ฏ€๋กœ ์ด์ƒ ์—†์ด ์„œ๋ฒ„ ํŽ˜์ด์ง€๊ฐ€ ๋‚˜์˜จ๋‹ค.