LINUX

[UBUNTU]nginx 설치(tar, 소스코드, make) 및 실행

Rainbound-IT 2022. 11. 9. 13:57
반응형

목차

     

    설치

    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

     

    nginx: download

     

    nginx.org

    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

     

    Building nginx from Sources

    Building nginx from Sources The build is configured using the configure command. It defines various aspects of the system, including the methods nginx is allowed to use for connection processing. At the end it creates a Makefile. The configure command supp

    nginx.org

     

     

    설치하고 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

     

    Beginner’s Guide

    Beginner’s Guide This guide gives a basic introduction to nginx and describes some simple tasks that can be done with it. It is supposed that nginx is already installed on the reader’s machine. If it is not, see the Installing nginx page. This guide de

    nginx.org

     

    반응형