Nginx๋?
Nginx(์์ง x๋ผ ์ฝ๋๋ค)๋ ์น ์๋ฒ ์ํํธ์จ์ด๋ก, ๊ฐ๋ฒผ์๊ณผ ๋์ ์ฑ๋ฅ์ ๋ชฉํ๋ก ํ๋ค. ์น ์๋ฒ, ๋ฆฌ๋ฒ์ค ํ๋ก์ ๋ฐ ๋ฉ์ผ ํ๋ก์ ๊ธฐ๋ฅ์ ๊ฐ์ง๋ค.
2017๋ 10์ ๊ธฐ์ค์ผ๋ก ์ค์ง์ ์ผ๋ก ์๋ํ๋ ์น ์ฌ์ดํธ(active site)๋ค์์ ์ฐ์ด๋ ์น ์๋ฒ ์ํํธ์จ์ด ์์๋ ์ํ์น(44.89%), ์์ง์์ค(20.65%), ๊ตฌ๊ธ ์น ์๋ฒ(7.86%), ๋ง์ดํฌ๋ก์ํํธ IIS(7.32%)์์ด๋ค. ์ด ์กฐ์ฌ์์ ์์ฑ์ ๋์ด์์ผ๋ ์ ์์ ์ผ๋ก ์๋ํ์ง ์๋ ์น ์ฌ์ดํธ๋ค์ ๋ฐฐ์ ๋์์ผ๋ฉฐ ํนํ MS์ ์ธํฐ๋ท ์ ๋ณด ์๋น์ค(IIS)๋ฅผ ์ค์นํ ์น ์ฌ์ดํธ๋ค์ ์๋น์๊ฐ ๋นํ์ฑ ์ฌ์ดํธ์๋ค. ๊ทธ๋ฐ ์ฌ์ดํธ๋ค๋ ํฌํจํ๋ฉด MS IIS๊ฐ 1์์ด๋ค. 2017๋ 6์ ํ์ฌ Nginx๋ ํ๊ตญ ์ ์ฒด ๋ฑ๋ก ๋๋ฉ์ธ ์ค 24.73%๊ฐ ์ฌ์ฉํ๊ณ ์๋ค.
Nginx๋ ์์ฒญ์ ์๋ตํ๊ธฐ ์ํด ๋น๋๊ธฐ ์ด๋ฒคํธ ๊ธฐ๋ฐ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๋ค. ์ด๊ฒ์ ์ํ์น HTTP ์๋ฒ์ ์ค๋ ๋/ํ๋ก์ธ์ค ๊ธฐ๋ฐ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๋ ๊ฒ๊ณผ๋ ๋์กฐ์ ์ด๋ค. ์ด๋ฌํ ๊ตฌ์กฐ๋ ์๋ฒ์ ๋ง์ ๋ถํ๊ฐ ์๊ธธ ๊ฒฝ์ฐ์ ์ฑ๋ฅ์ ์์ธกํ๊ธฐ ์ฝ๊ฒ ํด์ค๋ค.
์ฐธ์กฐ : ์ํค๋ฐฑ๊ณผ (https://ko.wikipedia.org/wiki/Nginx)
์ํ์น ์น์๋ฒ์ ๋ง์ด ๋น๊ต๋๋ Nginx์ ๋๋ค.
Nginx ์ฌ์ฉ ๋น์จ์ด ์ ์ ๋์ด๋๊ณ ์๋ ์ด์ ๋ ๊ฐ๋ณ๊ณ ์๋๊ฐ ๋ ๋น ๋ฅธ ์ด์ ๋ ์๋์ง๋ง ๋ณด์๋ฉด์์๋ ์ด์ ์ด ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
1. Nginx ์ค์น
ํ์๋ Nginx 1.13.8๋ฒ์ ์ ์ค์น ํ๋ ค๊ณ ํ๋ค.
์ปดํ์ผ ์ค์น๋ฅผ ์ํด tarํ์ผ์ ๊ตฌํด ๋ณด๊ฒ ์ต๋๋ค.
์๋ ๋นจ๊ฐ ๋ฐ์ค ๋ด๋ถ์ ์๋ ๋งํฌ ์๋ฌด๊ฑฐ๋ ์ ํํด์ ๋งํฌ์ฃผ์๋ฅผ ๋ณต์ฌํ๋ค.
http://nginx.org/en/download.html
๋ณต์ฌํ ์ฃผ์๋งํฌ๋ฅผ ๋ถ์ฌ๋ฃ๊ณ ์ํ๋ ๋ฒ์ ์ผ๋ก ์ซ์๋ง ๋ฐ๊ฟ์ค๋ค.
wget๋ช ๋ น์ผ๋ก ๋ฐ์์ฃผ๊ณ ํ์ด์ค๋ค.
1 2 3 | [jamong@localhost ~]$ cd dev_util/ [jamong@localhost dev_util]$ wget http://nginx.org/download/nginx-1.13.8.tar.gz [jamong@localhost dev_util]$ tar xvfz nginx-1.13.8.tar.gz | cs |
Nginx์ค์น๋ฅผ ์ํด ์ค์นํด์ค์ผํ ํจํค์ง๋ค์ด ์๋ค.
ํ์ง๋ง ํ์๋ CentOS๋ฅผ ์ค์นํ ๋ ์ธํ๋ผ ์ค์น๋ฅผ ํด์ ์ด๋ฏธ ์ค์น๋์ด์๋ ํจํค์ง๋ค์ด ๋ง๋ค.
์๋๊ฒฝ์ฐ ์๋ ํจํค์ง๋ค์ ์ค์นํ๋ค. ์๋ง devel์ด ๋ถ์ ํจํค์ง๋ค๋ง ์ค์นํด์ฃผ๋ฉด ๋ ๊ฒ์ด๋ค.
1 2 3 4 5 6 | [jamong@localhost dev_util]$ sudo yum install openssl [jamong@localhost dev_util]$ sudo yum install openssl-devel [jamong@localhost dev_util]$ sudo yum install pcre [jamong@localhost dev_util]$ sudo yum install pcre-devel [jamong@localhost dev_util]$ sudo yum install zlib [jamong@localhost dev_util]$ sudo yum install zlib-devel | cs |
์ปดํ์ผ ์ค์น๋ฅผ ํ๊ธฐ์ ์, configureํ์ผ์ ๊ธฐ๋ณธ ์ค์น๊ฒฝ๋ก๋ฅผ ๋ฐ๊ฟ์ค๋ค.
๊ทธ๋ฅ ์ค์นํด๋ ์๊ด์์ง๋ง, ํ์๋ ๋ชจ๋ ์ค์น ํ๋ก๊ทธ๋จ์ jamong๊ณ์ ์ dev_util ํด๋์์ ๋ฃ์ด์ฃผ๊ธฐ ์ํด ๋ฐ๊พผ๋ค.
1 2 3 4 | [jamong@localhost dev_util]$ cd nginx-1.13.8/ [jamong@localhost nginx-1.13.8]$ ls CHANGES CHANGES.ru LICENSE README auto conf configure contrib html man src [jamong@localhost nginx-1.13.8]$ vi configure |
1 | NGX_PREFIX=${NGX_PREFIX:-/usr/local/nginx} | cs |
configure ํ์ผ์ ์๋ถ๋ถ์ ์๋์ ๊ฐ์ด ๋ฐ๊ฟ์ค๋ค.
1 | NGX_PREFIX=${NGX_PREFIX:-/home/jamong/dev_util/nginx} | cs |
์ด์ ์ปดํ์ผ ์ค์น๋ฅผ ํด๋ณด์.
1 2 3 4 | [jamong@localhost nginx-1.13.8]$ ./configure \ > --user=jamong \ > --group=jamong \ > --with-openssl=/usr/bin | cs |
error ์์ด ๋๋๋ค๋ฉด ์๋ ๋ช ๋ น์ ์คํ์์ผ nginx ํด๋๋ฅผ ๋ง๋ค์ด์ค๋ค.
1 2 | [jamong@localhost nginx-1.13.8]$ make [jamong@localhost nginx-1.13.8]$ make install | cs |
Nginx์ ๊ธฐ๋ณธ ํฌํธ๋ 80์ด๋ค.
๋ง์ฐฌ๊ฐ์ง๋ก ๋ฐฉํ๋ฒฝ ํฌํธ๋ฅผ ๊ฐ๋ฐฉํ๋ค.
1 2 3 4 5 6 | [jamong@localhost sbin]$ sudo firewall-cmd --zone=public --add-port=80/tcp --permanent success [jamong@localhost sbin]$ sudo firewall-cmd --reload success [jamong@localhost sbin]$ sudo firewall-cmd --list-ports 22/tcp 3306/tcp 8080/tcp 80/tcp |
Nginx๋ฅผ ์คํํด๋ณด์.
1 2 3 | [jamong@localhost nginx-1.13.8]$ cd ../nginx/sbin/ [jamong@localhost sbin]$ sudo ./nginx [jamong@localhost sbin]$ | cs |
์น์ผ๋ก ์๋ฒ์ ip๋ง ์น๊ณ ๋ค์ด๊ฐ๋ฉด "welcome to nginx!"์ ๊ฐ์ ๋ฌธ๊ตฌ๊ฐ ๋จ๋ฉด ์ฑ๊ณต!
ํ์ง๋ง 403์๋ฌ๊ฐ ๋ฌ๋ค.
์ค์ ํ์ผ์์ ์ ์ ๋ฅผ ์ถ๊ฐํด์ฃผ๋ฉด ํด๊ฒฐํ ์ ์๋ ๋ฌธ์ ๋ค.
1 2 | [jamong@localhost sbin]$ cd /home/jamong/dev_util/nginx/conf/ [jamong@localhost conf]$ vi nginx.conf | cs |
์๋จ์ user nobody ์ฃผ์์ ํด์ ํ๊ณ ์๋์ ๊ฐ์ด ์ถ๊ฐํ๋ค.
1 | user jamong; | cs |
์ ์ฅํ๊ณ Nginx๋ฅผ ๋ค์ ์คํํ๋ค.
sbin ํด๋๋ก ๋ค์ด๊ฐ์ ์๋ ๋ช ๋ น์ ์คํํด์ค๋ค.
1 2 3 | [jamong@localhost sbin]$ sudo ./nginx -s stop [jamong@localhost sbin]$ sudo ./nginx [jamong@localhost sbin]$ | cs |
๋ค์ ์น ๋ธ๋ผ์ฐ์ ์์ ์๋ฒ์ ip๋ง์ผ๋ก ์ ๊ทผ์ ํด์คฌ์๋ ์๋์ ๊ฐ์ ํ๋ฉด์ด ๋์ค๋ฉด ์ค์น ์ฑ๊ณต์ด๋ค.
2. Nginx Tomcat ์ฐ๋
์ค์น๋ ๋๋ฌ๋ค. ์ด์ tomcat๊ณผ ์ฐ๋์์ผ์ค์ผ Nginx๋ฅผ ์ฌ์ฉํ๋ ์๋ฏธ๊ฐ ์๊ธด๋ค.
Nginx์ ์ค์ ํ์ผ์ ์์ ํด์ค ๊ฒ์ด๋ค.
1 | [jamong@localhost conf]$ vi /home/jamong/dev_util/nginx/conf/nginx.conf | cs |
html์์ tomcat์ ์ถ๊ฐํด์ค๋ค. 8080์ด ์๋ ๋ค๋ฅธ ํฌํธ๋ฅผ ์ฌ์ฉํ๊ณ ์๋ค๋ฉด ํฌํธ๋ฅผ ๋ง์ถฐ์ ์์ ํด์ฃผ๊ณ
server๋ถ๋ถ์ ์๋์ ๊ฐ์ด ์์ ํด์ค๋ค.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | upstream tomcat { ip_hash; server 127.0.0.1:8080; } server { listen 80; server_name localhost; location / { 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://tomcat; proxy_redirect off; charset utf-8; } |
๋ค์ ์น ๋ธ๋ผ์ฐ์ ์์ ์๋ฒ์ ip๋ง์ผ๋ก ์ ๊ทผ์ ํด์คฌ์๋ ์์์ ์ถ๋ ฅ๋ nginx welcome์ด ์๋ ํฐ์บฃ ์ธ๋ฑ์ค๊ฐ ์ถ๋ ฅ๋๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
ํ์์ ๊ฒฝํ์ ์ด๋ ๊ฒ ์ค์ ํ๊ณ ๋ ์๋ฌ๊ฐ ๋ฐ์ํ์ฌ ์๋๋ ๊ฒฝ์ฐ๊ฐ ์์ด์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ง์ ์๊ฐ์ ํฌ์ํ ์ ์ด ์๋ค.
Nginx์๋ฌ ํ์ด์ง๊ฐ ๋จ๋ ๊ฒฝ์ฐ, ํฐ์บฃ์ด ์คํ๋์ด ์๋์ง ํ๋ฒ ํ์ธํด๋ณธ๋ค.
ํฐ์บฃ์ด ์คํ๋์ด ์์ง ์์ ๊ฒฝ์ฐ, ์๋ฌํ์ด์ง๋ก ์ด๋๋๋ค.
๋๊ธ