[Nginx] ubuntu 16.04 환경 Nginx 의 컴 파일, 설치, 자체 시작 설정 과 서비스 설정

글 목록
  • ubuntu 16.04 환경 Nginx 의 컴 파일, 설치, 자체 시작 설정 과 서비스 설정
  • 1. 컴 파일, 설치
  • 1. 다운로드
  • 2. 컴 파일
  • (1) 업데이트 소스 (선택 가능)
  • (2) 설치 의존
  • (3) 압축 해제, 컴 파일, 설치

  • 2. 시스템 서비스 로 추가
  • 1. 서비스 파일 만 들 기
  • 2. 문서 내용 및 설명
  • 3. 자동 작 동 설정
  • 4. 서비스 명령
  • 3. 프로필
  • 1. 파일 구조 설정
  • 2. 나의 설정
  • 4. 철저히 마 운 트 해제
  • 1. sudo apt - get install 방식 으로 설치
  • 2. 소스 코드 컴 파일 방식 설치


  • ubuntu 16.04 환경 Nginx 의 컴 파일, 설치, 자체 시작 설정 과 서비스 설정
    Nginx (engine x) 는 경량급 웹 서버 / 역방향 프 록 시 및 이메일 (IMAP / POP 3) 프 록 시 서버 로 BSD - like 프로 토 콜 에서 발행 된다.
    FastCGI, SSL, Virtual Host, URL Rewrite, Gzip 등 기능 을 지원 합 니 다.또한 많은 제3자 모듈 확장 을 지원 합 니 다.
    상용: HTTP 에이전트, 역방향 에이전트;부하 균형;웹 캐 시 처리 등
    메모리 가 적 고 병발 능력 이 강 한 것 이 특징 이다.
    국내 에서 인터넷 서비스 에 광범 위 하 게 응용 되다.
    컴 파일, 설치
    1. 다운로드
    //     stable  :nginx-1.14.2
    ubuntu@VM-0-12-ubuntu:~/work$ wget http://nginx.org/download/nginx-1.14.2.tar.gz
    

    2. 컴 파일
    (1) 업데이트 원본 (선택 가능)
    ubuntu@VM-0-12-ubuntu:~/work$ sudo cp /etc/apt/sources.list /etc/apt/sources.list.old
    ubuntu@VM-0-12-ubuntu:~/work$ sudo vim /etc/apt/source.list
    
    #       
    deb http://mirrors.aliyun.com/ubuntu/ trusty main multiverse restricted universe 
    deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main multiverse restricted universe 
    deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main multiverse restricted universe 
    deb http://mirrors.aliyun.com/ubuntu/ trusty-security main multiverse restricted universe 
    deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main multiverse restricted universe 
    deb-src http://mirrors.aliyun.com/ubuntu/ trusty main multiverse restricted universe 
    deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main multiverse restricted universe 
    deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main multiverse restricted universe 
    deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main multiverse restricted universe 
    deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main multiverse restricted universe
    
    ubuntu@VM-0-12-ubuntu:~/work$ sudo apt-get update
    

    (2) 설치 의존
    // gcc、g++   
    ubuntu@VM-0-12-ubuntu:~/work$ sudo apt-get install build-essential
    ubuntu@VM-0-12-ubuntu:~/work$ sudo apt-get install libtool
    
    // pcre   (http://www.pcre.org/)
    ubuntu@VM-0-12-ubuntu:~/work$ sudo apt-get install libpcre3 libpcre3-dev
    
    // zlib   (http://www.zlib.net)
    ubuntu@VM-0-12-ubuntu:~/work$ sudo apt-get install zlib1g-dev
    
    // ssl   
    ubuntu@VM-0-12-ubuntu:~/work$ sudo apt-get install openssl
    

    (3) 압축 풀기, 컴 파일, 설치
    ubuntu@VM-0-12-ubuntu:~/work$ sudo tar -zxvf nginx-1.14.2.tar.gz
    ubuntu@VM-0-12-ubuntu:~/work$ cd nginx-1.14.2/
    ubuntu@VM-0-12-ubuntu:~/work$ sudo ./configure --prefix=/usr/local/nginx
    ubuntu@VM-0-12-ubuntu:~/work$ sudo make
    ubuntu@VM-0-12-ubuntu:~/work$ sudo make install
    

    configure 매개 변수:
    ... / configure -- help 명령 을 통 해 볼 수 있 습 니 다.
  • – prefix = path 설치 디 렉 터 리 설정, 기본 값 은 / usr / local / nginx
  • – sbin - path = path 설정 nginx 실행 가능 한 파일 의 경로 와 이름, 기본 – prefix / sbin / nginx, 일반적으로 기본 값 (예: – sbin - path = / home / nginx 1)
  • 을 사용 합 니 다.
  • – conf - path 설정 nginx. conf 부품 파일 의 경로, 유사 – sbin - path 매개 변수, 기본 지정 – prefix / conf / nginx. conf (/ home / nginx / nginx 1. conf).nginx 가 시 작 될 때 - c 매개 변 수 를 통 해 부품 파일 을 지정 할 수 있 습 니 다.
  • – pid - path = path 는 메 인 프로 세 스 id 를 저장 하 는 파일 이름 을 설정 합 니 다. 기본 값 은 – prefix / logs / nginx. pid 입 니 다. 설치 가 완료 되면 pid 명령 을 통 해 nginx. conf 부품 파일 에서 변경 할 수 있 습 니 다.
  • – error - log - path = path 는 주 요청 의 오류, 경고, 진단 로그 파일 의 이름 을 설정 합 니 다. 기본 값 은 – prefix / logs / access. log 입 니 다. 설치 가 완료 되면 nginx. conf 부품 에서 error 를 지정 할 수 있 습 니 다.로그 명령 으로 수정 합 니 다.
  • – http - log - path = path 는 HTTP 서버 의 주 요청 로그 파일 의 이름 을 설정 합 니 다. 기본 값 은 – prefix / logs / access. log 입 니 다.이 이름 도 nginx. conf 설정 파일 에서 access 를 통 해log 명령 변경.
  • – user = name 작업 프로 세 스 가 사용 하 는 비 특권 사용자 의 사용자 이름 을 설정 합 니 다. 기본 값 은 nobody 입 니 다.설치 가 완료 되면 nginx. conf 에서 user 명령 을 통 해 수정 할 수 있 습 니 다.
  • – group = name 작업 프로 세 스 가 사용 하 는 비 특권 사용자 그룹의 이름 을 설정 합 니 다. 기본 그룹 이름과 – user 의 이름 이 일치 합 니 다.설치 가 완료 되면 nginx. conf 설정 파일 에서 user 명령 을 통 해 지정 할 수 있 습 니 다.
  • – with - select - module, – without - select - module 모듈 을 사용 하거나 사용 하지 않 습 니 다
  • –without-http_gzip_module 에서 gzip 압축 모듈 구축 을 사용 하지 않 습 니 다.이 모듈 을 구축 하고 실행 하려 면 zlib 라 이브 러 리 가 필요 합 니 다.
  • –without-http_rewrite_module 에 서 는 HTTP 서버 의 방향 을 바 꾸 거나 요청 URI 를 변경 할 수 있 는 모듈 을 구축 하지 못 합 니 다.이 모듈 을 구축 하고 실행 하려 면 PCRE 라 이브 러 리 가 필요 합 니 다.
  • –without-http_proxy_module HTTP 서버 프 록 시 모듈 사용 안 함
  • –with-http_ssl_module 은 HTTP 서버 에 HTTPS 프로 토 콜 을 추가 하 는 모듈 을 사용 합 니 다. 이 모듈 은 기본적으로 사용 하지 않 습 니 다.이 모듈 을 구축 하고 실행 하려 면 OpenSSL 라 이브 러 리 가 필요 합 니 다.
  • – with - pcr = path 는 PCRE 라 이브 러 리 의 경 로 를 설정 합 니 다. 이 라 이브 러 리 는 PCRE 사이트 에서 다운로드 해 야 합 니 다.location 명령 의 정규 표현 지원 은 이 라 이브 러 리 가 필요 합 니 다.
  • – with - zlib = path zlib 라 이브 러 리 의 경로 설정, ngxhttp_gzip_module 모듈 은 이 라 이브 러 리 가 필요 합 니 다.

  • 2. 시스템 서비스 로 추가
    1. 서비스 파일 생 성
    ubuntu@VM-0-12-ubuntu:~/work$ sudo vim /lib/systemd/system/nginx.service
    

    2. 문서 내용 및 설명
    [Unit]
    Description=nginx - high performance web server
    After=network.target remote-fs.target nss-lookup.target
    [Service]
    Type=forking
    ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
    ExecReload=/usr/local/nginx/sbin/nginx -s reload
    ExecStop=/usr/local/nginx/sbin/nginx -s stop
    [Install]
    WantedBy=multi-user.target
    
    //   
    [Unit]		//      
    Description	//     
    After		//   ,                   
     
    [Service]		//          
    Type=forking	//        
    ExecStart		//          (        )
    ExecReload		//     (        )
    ExecStop		//     (        )
    PrivateTmp=True	//               
    //   :  、  、              
     
    [Install]	//          ,       
    
    
    

    Type:
  • type = simple (기본 값): systemd 는 이 서비스 가 즉시 시 작 될 것 이 라 고 생각 합 니 다.서비스 프로 세 스 가 fork 를 하지 않 습 니 다.이 서비스 가 socket 활성화 형 이 아 닌 다른 서 비 스 를 시작 하려 면 이 형식 으로 시작 하지 마 십시오.
  • type = forking: systemd 는 이 서비스 프로 세 스 가 fork 이 고 부모 프로 세 스 가 종료 되면 서비스 가 시작 되 었 다 고 생각 합 니 다.일반적인 데 몬 (daemon) 에 대해 서 는 이 시작 방식 이 수 요 를 만족 시 키 지 못 하 는 지 확인 하지 않 으 면 이 형식 으로 시작 하면 됩 니 다.이 시작 형식 을 사용 하려 면 시스템 d 가 서비스의 주 프로 세 스 를 추적 할 수 있 도록 PIDFile = 을 동시에 지정 해 야 합 니 다.
  • Type = oneshot: 이 옵션 은 한 가지 작업 만 수행 하고 즉시 종료 하 는 서비스 에 적 용 됩 니 다.RemainAfterExit = yes 를 동시에 설정 해 야 할 수도 있 습 니 다. systemd 는 서비스 프로 세 스 가 종 료 된 후에 도 서비스 가 활성화 상태 라 고 생각 합 니 다
  • Type = notify: Type = simple 과 같 지만 약속 서 비 스 는 준 비 된 후에 systemd 에 신 호 를 보 냅 니 다.이 알림 의 실현 은 libsystemd - daemon. so 에서 제공 합 니 다.
  • Type = dbus: 이 방식 으로 시작 하면 지정 한 BusName 이 DBus 시스템 버스 에 나타 날 때 systemd 는 서비스 가 준비 되 었 다 고 생각 합 니 다.

  • 3. 자동 시작 설정
    //       
    ubuntu@VM-0-12-ubuntu:~/work$ sudo systemctl enable nginx.service
    
    //       
    ubuntu@VM-0-12-ubuntu:~/work$ sudo systemctl disable nginx.service
    

    4. 서비스 명령
    //    nginx   
    ubuntu@VM-0-12-ubuntu:~/work$ sudo systemctl start nginx.service
    
    //     
    ubuntu@VM-0-12-ubuntu:~/work$ sudo systemctl status nginx.service
    
    //     
    ubuntu@VM-0-12-ubuntu:~/work$ sudo systemctl restart nginx.service
    
    //       
    ubuntu@VM-0-12-ubuntu:~/work$ sudo systemctl list-units --type=service
    
    

    3. 프로필
    공식 설정 설명 문서:https://www.nginx.com/resources/wiki/start/
    1. 설정 파일 구조
    ...              #   
    
    events {
                  #events 
       ...
    }
    
    http      #http 
    {
         
        ...   #http   
        server        #server 
        {
          
            ...       #server   
            location [PATTERN]   #location 
            {
         
                ...
            }
            location [PATTERN] 
            {
         
                ...
            }
        }
        server
        {
         
          ...
        }
        ...     #http   
    }
    
    // 1、   :    nginx     。     nginx       ,nginx  pid    ,      ,      ,    worker process  。
    
    // 2、events :    nginx            。           ,                ,              ,            。
    
    // 3、http :      server,    ,  ,                    。     ,mime-type  ,     ,    sendfile    ,      ,       。
    
    // 4、server :           ,  http      server。
    
    // 5、location :       ,           。
    

    2. 나의 설정
    worker_processes  1;
    
    error_log  logs/error.log  info;
    
    pid        logs/nginx.pid;
    
    events {
         
        worker_connections  1024;
    }
    
    http {
         
        include       mime.types;
        default_type  application/octet-stream;
    
    	gzip  			on;
        sendfile        on;
        keepalive_timeout  65;
    
        server {
         
    		client_max_body_size 4G;
    
            listen       1024;
            server_name  localhost;
    
    		root /home/ubuntu/nginx/files;
    
            location / {
         
    	    	autoindex on; 					##    
                autoindex_localtime on;  		##    
    	    	server_tokens off;				##     
    	    	autoindex_exact_size off;		##        (K、M、G   )
    	    	if ($request_filename ~* ^.*?\.(txt|doc|pdf|rar|gz|zip|docx|exe|xlsx|ppt|pptx|jpg|png)$) {
         	##            
                	add_header 'Content-Disposition' 'attachment;';                  
                }       
            }
    	}       
    }
    
    

    4. 철저히 마 운 트 해제
    1. sudo apt - get install 방식 으로 설치
  • nginx 서비스 정지
    ubuntu@VM-0-12-ubuntu:~/work$ sudo service nginx stop
    
  • nginx 삭제, – Purge 설정 파일 포함
    ubuntu@VM-0-12-ubuntu:~/work$ sudo apt-get --purge remove nginx
    ubuntu@VM-0-12-ubuntu:~/work$ 
    
  • 사용 하지 않 는 패 키 지 를 자동 으로 제거
    ubuntu@VM-0-12-ubuntu:~/work$ sudo apt-get autoremove
    
  • nginx 와 관련 된 소프트웨어 를 열거 하고 표시 되 는 소프트웨어 를 삭제 합 니 다
    ubuntu@VM-0-12-ubuntu:~/work$ dpkg --get-selections|grep nginx
    ubuntu@VM-0-12-ubuntu:~/work$ 
    ubuntu@VM-0-12-ubuntu:~/work$ sudo apt-get --purge remove nginx
    ubuntu@VM-0-12-ubuntu:~/work$ sudo apt-get --purge remove nginx-common
    ubuntu@VM-0-12-ubuntu:~/work$ sudo apt-get --purge remove nginx-core
    
  • 검증
    ubuntu@VM-0-12-ubuntu:~/work$ dpkg --get-selections|grep nginx	#      nginx     
    ubuntu@VM-0-12-ubuntu:~/work$ which nginx	#      nginx     
    
  • 2. 소스 코드 컴 파일 방식 설치
    //      
    ubuntu@VM-0-12-ubuntu:~/work$ sudo rm nginx-1.14.2.tar.gz nginx-1.14.2 -rf
    
    //        
    ubuntu@VM-0-12-ubuntu:~/work$ sudo rm /usr/local/nginx -rf
    
    //        
    ubuntu@VM-0-12-ubuntu:~/work$ sudo rm /lib/systemd/system/nginx.service
    

    ——2018-12-24——

    좋은 웹페이지 즐겨찾기