CentOS 원 키 컴 파일 설치 nginx, http2 / brotli / zlib / pcre / ssl, 루트 감청 이 아 닌 80 포트

4488 단어 수송 하 다.
시스템 환경 과 의존:
스 크 립 트 는 CentOS 7.6 을 시범 했다.우 분투 18 도 가능 합 니 다. 스 크 립 트 에 있 는 yumapt 로 바 꾸 면 됩 니 다.라 이브 러 리 에 의존 하 는 버 전 은 url 의 숫자 를 보십시오.업그레이드 가 있 으 면 버 전 숫자 를 바 꾸 면 이 스 크 립 트 를 계속 사용 할 수 있 습 니 다.
각본
설명 은 주석 에 있 습 니 다:
#      root     
#   git  GitHub clone brotli。gcc-c++ pcre   ,  configure   。
yum install -y wget git gcc-c++

#         root  
# pcre   location       。nginx         pcre,   pcre2
wget https://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gz
tar zxvf pcre-8.43.tar.gz

wget http://zlib.net/zlib-1.2.11.tar.gz
tar zxvf zlib-1.2.11.tar.gz

wget http://nginx.org/download/nginx-1.16.0.tar.gz
tar zxvf nginx-1.16.0.tar.gz

wget https://www.openssl.org/source/openssl-1.0.2s.tar.gz
tar zxvf openssl-1.0.2s.tar.gz

# brotli google         。      
git clone --depth=1 https://github.com/google/ngx_brotli.git
cd ngx_brotli && git submodule update --init && cd ..

cd nginx-1.16.0
# prefix  nginx       
#               ,    cd           nginx。
./configure \
    --prefix=../nginx \
    --with-pcre=../pcre-8.43 \
    --with-zlib=../zlib-1.2.11 \
    --with-openssl=../openssl-1.0.2s \
    --add-module=../ngx_brotli \
    --user=root \
    --group=root \
    --with-file-aio \
    --with-http_v2_module \
    --with-http_ssl_module \
    --with-http_realip_module \
    --with-http_sub_module \
    --with-http_gzip_static_module \
    --with-http_stub_status_module
make install

운행 $/nginx/sbin/nginx 하면 시동 이 걸 립 니 다.실제 gzip, http2, brotli, ssl 을 사용 하려 면 수정 nginx.conf 이 필요 합 니 다.간단 한 예제:
http {
  ...
  gzip on;
  gzip_min_length 1k;
  gzip_buffers 4 16k;
  gzip_http_version 1.0;
  gzip_comp_level 2;
  gzip_types text/plain application/javascript application/json application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
  gzip_vary off;

  brotli on;
  brotli_types text/plain application/javascript application/json application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;

  server {
    ...
    listen 443 ssl http2;

    ssl_certificate /home/fm/local/nginx/ssl/server.crt;
    ssl_certificate_key /home/fm/local/nginx/ssl/server.key;
    ssl_session_timeout  5m;
    ...
  }
  ...
}

루트 가 아 닌 사용자 감청 80 과 443 포트
루트 가 아 닌 사용자 가 nginx 를 실행 하면 1024 이하 의 포트 번 호 를 감청 할 수 없습니다.루트 계 정 으로 시작 하지 않 으 려 면 먼저 이렇게 설정 할 수 있 습 니 다.
#   root  cd sbin      
chown root:root nginx
chmod 755 nginx
chmod u+s nginx

그리고 루트 가 아 닌 사용자 도 nginx 를 시작 하고 80 포트 를 감청 할 수 있 습 니 다.
참고 문장
  • 공식 빌딩 nginx from Sources
  • NGINX 3rd Party Modules
  • github:google/ngx_brotli
  • Nginx 서버 구축 과 기본 설정 상세 설명
  • 루트 가 아 닌 사용자 설치 nginx
  • 좋은 웹페이지 즐겨찾기