Nginx

nginx ์„ค์ • ๋ฐฉ๋ฒ•

์•„ํŒŒ์น˜๋Š” ๋ผ์ด๋ฏน์Šค์— ํฌํ•จ๋œ .htaccess ํŒŒ์ผ์„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋„ ์งง์€ ์ฃผ์†Œ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ,
nginx๋Š” .htaccess ํŒŒ์ผ์„ ์‚ฌ์šฉํ•œ ์„ค์ • ๋ณ€๊ฒฝ์„ ์ง€์›ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์„œ๋ฒ„ ์„ค์ •์„ ์ง์ ‘ ์ˆ˜์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Ubuntu 18.04 ์ด์ƒ

Ubuntu์—์„œ๋Š” ์ตœ์‹  ๋ฒ„์ „์— ๊ฐ€๊นŒ์šด nginx๋ฅผ ์ œ๊ณตํ•˜๋ฏ€๋กœ ํŒจํ‚ค์ง€ ์„ค์น˜๋ฅผ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

apt-get install nginx

์„ค์น˜๋ฅผ ๋งˆ์น˜๋ฉด /etc/nginx/sites-enabled/default ์œ„์น˜์— ๊ธฐ๋ณธ ์„ค์ • ํŒŒ์ผ์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
์ด ํŒŒ์ผ์˜ ๋‚ด์šฉ์„ ์•„๋ž˜์™€ ๊ฐ™์ด ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜, ๊ฐ™์€ ํด๋” ๋‚ด์— ๋‹ค๋ฅธ ์ด๋ฆ„์˜ ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด ์•„๋ž˜์˜ ๋‚ด์šฉ์„ ๋„ฃ์Šต๋‹ˆ๋‹ค.

server {
    listen 80 default;    # ๋‹ค๋ฅธ ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด ์“ฐ๋Š” ๊ฒฝ์šฐ default ์‚ญ์ œ
    root /var/www/html;   # ๋ผ์ด๋ฏน์Šค๋ฅผ ์„ค์น˜ํ•  ๊ฒฝ๋กœ (๋ฐ˜๋“œ์‹œ ์ตœ์ƒ๋‹จ์— ์œ„์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.)
    server_name _;        # ์‚ฌ์šฉํ•  ๋„๋ฉ”์ธ์„ ์—ฌ๊ธฐ์— ์ถ”๊ฐ€ํ•ด๋„ ๋จ (์˜ˆ: server_name example.com www.example.com;)
    index index.html index.htm index.php;   # index.php๊ฐ€ ๋ฐ˜๋“œ์‹œ ํฌํ•จ๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    client_max_body_size 32m;   # ์—…๋กœ๋“œ ํ—ˆ์šฉ ์šฉ๋Ÿ‰ (๋ผ์ด๋ฏน์Šค๋Š” ๋ถ„ํ•  ์—…๋กœ๋“œ๋ฅผ ์ง€์›ํ•˜๋ฏ€๋กœ ์•ฝ 10MB๋งŒ ๋„˜์œผ๋ฉด ์‚ฌ์‹ค์ƒ ๋ฌดํ•œ๋Œ€๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.)

    include snippets/rhymix.conf;   # ๋ผ์ด๋ฏน์Šค rewrite ๊ทœ์น™ ์ธํด๋ฃจ๋“œ

    # location ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•˜๋Š” ๋‹ค๋ฅธ ์„ค์ •์€ ๋ฐ˜๋“œ์‹œ ๋ผ์ด๋ฏน์Šค rewrite ๊ทœ์น™๋ณด๋‹ค ๋‚˜์ค‘์— ์„ ์–ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    location ~ \.php$ {
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;    # PHP-FPM์„ ์œ ๋‹‰์Šค ์†Œ์ผ“์œผ๋กœ ์—ฐ๋™ํ•˜๋Š” ๊ฒฝ์šฐ
        fastcgi_pass 127.0.0.1:9000;                   # PHP-FPM์„ ๋กœ์ปฌ ํฌํŠธ๋กœ ์—ฐ๋™ํ•˜๋Š” ๊ฒฝ์šฐ
        include snippets/fastcgi-php.conf;
    }
}

์ฃผ์˜: ๋ผ์ด๋ฏน์Šค 2.0๋ถ€ํ„ฐ๋Š” rewrite ๊ทœ์น™์— location / { try_files ... } ๋ธ”๋Ÿญ์ด ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ
์‚ฌ์ดํŠธ ์„ค์ •์— ๋™์ผํ•œ ๋ธ”๋Ÿญ์„ ์ถ”๊ฐ€ํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

PHP-FPM ์—ฐ๋™ ๊ฒฝ๋กœ๋Š” ์•„๋ž˜์˜ ๋ช…๋ น์œผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (PHP ๋ฒ„์ „์— ๋”ฐ๋ผ ๊ฒฝ๋กœ๊ฐ€ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.)

grep -r "listen =" /etc/php/7.4/fpm/pool.d

์ตœ๊ทผ Ubuntu์—์„œ๋Š” nginx์™€ ๊ด€๋ จ๋œ ์žก๋‹คํ•œ ์„ค์ •ํŒŒ์ผ๋“ค์€ /etc/nginx/snippets ํด๋”์— ๋„ฃ๋Š” ๊ฒƒ์ด ๊ด€๋ก€์ž…๋‹ˆ๋‹ค.
๋ผ์ด๋ฏน์Šค์—์„œ ์ œ๊ณตํ•˜๋Š” rewrite ๊ทœ์น™ ํŒŒ์ผ์„ ๋‹ค์šด๋ฐ›์•„
์ด ํด๋”์— rhymix.conf๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ๋„ฃ์Šต๋‹ˆ๋‹ค.

curl https://raw.githubusercontent.com/rhymix/rhymix/master/common/manual/server_config/rhymix-nginx.conf > /etc/nginx/snippets/rhymix.conf

์„ค์ •์„ ๋ณ€๊ฒฝํ•œ ํ›„์—๋Š” nginx๋ฅผ ์žฌ์‹œ์ž‘ํ•ด ์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

service nginx restart

๋งŒ์•ฝ ์žฌ์‹œ์ž‘์‹œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋ฉด /var/log/nginx/error.log ์—๋Ÿฌ ๋กœ๊ทธ๋ฅผ ํ™•์ธํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

CentOS 7 ์ด์ƒ

CentOS๋Š” ๊ธฐ๋ณธ ์ œ๊ณต๋˜๋Š” nginx ๋ฒ„์ „์ด ๋‚ฎ์œผ๋ฏ€๋กœ nginx ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์—์„œ ์ œ๊ณตํ•˜๋Š”
RPM ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ตœ์‹  ๋ฒ„์ „์„ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
yum install nginx

์„ค์น˜๋ฅผ ๋งˆ์น˜๋ฉด /etc/nginx/conf.d/default.conf ์œ„์น˜์— ๊ธฐ๋ณธ ์„ค์ • ํŒŒ์ผ์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
์ด ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜, ๊ฐ™์€ ํด๋” ๋‚ด์— ๋‹ค๋ฅธ ์ด๋ฆ„์˜ ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด์„œ
์œ„์˜ Ubuntu ์„ค๋ช…์™€ ๊ฐ™์€ ๋‚ด์šฉ์„ ๋„ฃ์Šต๋‹ˆ๋‹ค.

PHP-FPM ์—ฐ๋™ ๊ฒฝ๋กœ๋Š” ์•„๋ž˜์˜ ๋ช…๋ น์œผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

grep -r "listen =" /etc/php-fpm.d

CentOS์—์„œ๋Š” /etc/nginx/snippets ํด๋”์— ์žก๋‹คํ•œ ์„ค์ •ํŒŒ์ผ๋“ค์„ ๋ชจ์œผ๋Š” ๊ด€๋ก€๊ฐ€ ์—†์œผ๋‚˜,
conf.d ํด๋”์— ๋„ฃ์œผ๋ฉด ์ธํด๋ฃจ๋“œ ์ˆœ์„œ๊ฐ€ ๋งž์ง€ ์•Š์•„ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ
Ubuntu์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ snippets ํด๋”๋ฅผ ๋งŒ๋“ค์–ด ์‚ฌ์šฉํ•˜๋ฉด ํŽธ๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

mkdir /etc/nginx/snippets
curl https://raw.githubusercontent.com/rhymix/rhymix/master/common/manual/server_config/rhymix-nginx.conf > /etc/nginx/snippets/rhymix.conf

์„ค์ •์„ ๋ณ€๊ฒฝํ•œ ํ›„์—๋Š” nginx๋ฅผ ์‹œ์ž‘ํ•ด ์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. (CentOS์—์„œ๋Š” ์„ค์น˜์‹œ ์ž๋™์œผ๋กœ ์‹œ์ž‘๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.)

systemctl start nginx
systemctl enable nginx

๋งŒ์•ฝ ์žฌ์‹œ์ž‘์‹œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋ฉด /var/log/nginx/error.log ์—๋Ÿฌ ๋กœ๊ทธ๋ฅผ ํ™•์ธํ•˜์‹œ๊ฑฐ๋‚˜, ์•„๋ž˜์˜ ๋ช…๋ น์œผ๋กœ ์„œ๋น„์Šค ์ƒํƒœ๋ฅผ ์ ๊ฒ€ํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

systemctl status nginx