[UBUNTU]nginx 설치(tar, 소스코드, make) 및 실행
목차
설치
3가지를 다운받을텐데 경로 정하기 편한 곳으로 다운을 받으셔야 설정하기 편합니다.
openssl 다운
wget https://www.openssl.org/source/openssl-3.0.7.tar.gz
zlib 다운
wget https://zlib.net/zlib-1.2.13.tar.gz
pcre 다운
wget https://github.com/PCRE2Project/pcre2/releases/download/pcre2-10.40/pcre2-10.40.tar.gz
tar -xvf pcre2-10.40.tar.gz
Nginx 설치
http://nginx.org/en/download.html
stable 버전으로 전 받았습니다.
wget http://nginx.org/download/nginx-1.22.1.tar.gz
tar -xvf nginx-1.22.1.tar.gz
압축을 해제하시고 해당 폴더에 들어갑니다.
./configure
make
sudo make install
그냥 위와 같이 설정하고 설치하면 되지만 경로를 따로 설정해주고 싶어 옵션을 주었습니다.
./configure \
--prefix=/home/ubuntu/app/nginx-1.22.1 \
--pid-path=/home/ubuntu/app/nginx-1.22.1/nginx.pid \
--with-openssl=/home/ubuntu/downloads/openssl-3.0.7 \
--with-pcre=/home/ubuntu/downloads/pcre2-10.40 \
--with-zlib=/home/ubuntu/downloads/zlib-1.2.13
그냥 configure 하면 default prefix가 /usr/local/nginx로 설정이 됩니다.
pcre와 zlib, openssl 은 다운받은경로로 설정합니다.
자세한 옵션은 아래에
http://nginx.org/en/docs/configure.html
설치하고 sudo 로 하면 소유자가 root로 되서 접근이 안될수도 있는데 다음과 같이 변경해줍니다.
(사용하는 사용자명에 다라 ubuntu에서 변경하시면됩니다.)
sudo chown ubuntu:ubuntu sbin conf logs html
실행 및 확인
nginx를 실행줍니다.
설치경로에 sbin폴더에 nginx 를 실행시켜 주면됩니다.
./sbin/nginx
nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)
실행하고 위 같은 에러가 발생할때가 있는데
해당 에러는 80번 포트를 다른 앱이사용하고 있기 때문에 에러가 발생하는것입니다.
저같은 경우는 elasticsearch에서 사용하고 있기 때문에
nginx 포트를 8800으로 변경하겠습니다.
설정 파일은 nginx설치폴더/conf/nginx.conf 파일입니다.
설정하고 저장하신뒤
./sbin/nginx 를 하시면 nginx가 실행됩니다.
curl localhost:8800
으로 확인해보시면 잘 실행되는것을 보실수 있습니다.
종료
nginx -s [옵션]
다음 옵션으로 종료나 다른것을 할수 있습니다.
- stop — 빠른 종료
- quit — 정상 종료
- reload — 구성 파일 다시 로드
- reopen — 로그 파일 다시 열기
서비스 등록
nginx를 서비스로 등록하여 경로 입력할 필요 없이 service nginx start 이런식이나 재시작등을 할수 있습니다.
아래와 같이 해주시면 됩니다.
저는 딱히 필요를 못느껴서 하지 않았습니다.
sudo wget https://raw.github.com/JasonGiedymin/nginx-init-ubuntu/master/nginx -O /etc/init.d/nginx
sudo chmod +x /etc/init.d/nginx
tar로 하는이유
한서버에 인스턴스 두개 올려야할때가 있는데
그럴경우 ./configure에서 prefix를 다른 폴더로 지정하여 설치해준뒤 포트 설정해주면
인스턴스를 한개 더 띄울수 있기 때문입니다.
한 서버에 다른 웹사이트를 여러개 띄울수도 있구요.
Reference
Nginx 사용자 가이드
http://nginx.org/en/docs/beginners_guide.html