Nginx 입문 부터 정통 까지

5843 단어 Linux 진급Nginx
설명: 본 논문 의 일부 내용 은 인터넷 에서 수집 되 었 으 나 모두 본인 의 실험 을 거 쳤 다.
Nginx 개요:
1. nginx 가 무엇 입 니까?
Nginx 는 고성능 http 서버 / 리 버스 프 록 시 및 이메일 (IMAP / POP 3) 프 록 시 서버 입 니 다.러시아의 프로그램 디자이너 Igor Sysoev 가 개발 한 공식 테스트 nginx 는 5 만 개의 병렬 링크 를 지탱 할 수 있 고 cpu, 메모리 등 자원 소모 가 매우 낮 으 며 운행 이 매우 안정 적 입 니 다.
2. 응용 장면
http 서버: Nginx 는 http 서 비 스 를 독립 적 으로 제공 할 수 있 는 http 서비스 입 니 다.웹 페이지 정적 서버 를 만 들 수 있 습 니 다.
가상 호스트: 한 서버 에서 여러 사 이 트 를 가상 으로 만 들 수 있 습 니 다.예 를 들 어 개인 사이트 에서 사용 하 는 가상 호스트.
역방향 프 록 시, 부하 균형: 사이트 의 방 문 량 이 어느 정도 에 이 르 면 한 대의 서버 가 사용자 의 요 구 를 만족 시 키 지 못 할 때 여러 대의 서버 클 러 스 터 를 사용 하여 nginx 를 역방향 프 록 시 로 할 수 있 습 니 다.또한 여러 대의 서버 는 평균 적 으로 부 하 를 분담 할 수 있 으 며, 한 서버 의 부하 가 높 아 지연 되 지 않 아 한 서버 가 방치 되 어 있 는 경우 도 없다.
Nginx 설치:
yum 설치
yum -y install nginx

 
수 동 설치
요구 되 는 설치 환경
gcc 를 설치 할 환경 이 필요 합 니 다.
yum install gcc-c++

제3자 개발 가방.
PCRE
PCRE (Perl Compatible Regular Expressions) 는 perl 호 환 을 포함 한 정규 표현 식 라 이브 러 리 입 니 다.nginx 의 http 모듈 은 pcre 를 사용 하여 정규 표현 식 을 해석 하기 때문에 Liux 에 pcre 라 이브 러 리 를 설치 해 야 합 니 다.
yum install -y pcre pcre-devel

주: pcre - devel 은 pcre 를 이용 하여 개발 한 2 차 개발 창고 입 니 다.nginx 도 이 라 이브 러 리 가 필요 합 니 다.
zlib
zlib 라 이브 러 리 는 여러 가지 압축 과 압축 을 푸 는 방식 을 제공 합 니 다. nginx 는 zlib 를 사용 하여 http 패키지 의 내용 을 gzip 하기 때문에 Liux 에 zlib 라 이브 러 리 를 설치 해 야 합 니 다.
yum install -y zlib zlib-devel

 
openssl
OpenSSL 은 강력 한 보안 소켓 암호 라 이브 러 리 로 주요 암호 알고리즘, 자주 사용 하 는 키 와 인증서 패 키 징 관리 기능 및 SSL 프로 토 콜 을 포함 하고 테스트 나 다른 목적 으로 사용 할 수 있 는 다양한 응용 프로그램 을 제공 합 니 다.
nginx 는 http 프로 토 콜 뿐만 아니 라 https (즉 ssl 프로 토 콜 에서 http 전송) 도 지원 하기 때문에 Liux 에 openssl 라 이브 러 리 를 설치 해 야 합 니 다.
yum install -y openssl openssl-devel
 
설치 절차
 
첫 번 째 단계: nginx 의 소스 패 키 지 를 Liux 시스템 에 전달 합 니 다.
STEP 2: 압축 풀기
[root@localhost ~]# tar zxf nginx-1.8.0.tar.gz
세 번 째 단계: configure 명령 을 사용 하여 MakeFile 파일 을 만 듭 니 다.
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi
메모: nginx 를 시작 하기 전에 위 에 임시 파일 디 렉 터 리 를 / var / temp / nginx 로 지정 합 니 다. / var 에서 temp 및 nginx 디 렉 터 리 를 만들어 야 합 니 다.
[root@localhost sbin]# mkdir /var/temp/nginx/client -p
STEP 4: make
STEP 5: make install
 
 
시작 nginx
sbin 디 렉 터 리 에 들 어가 기
[root@localhost sbin]# ./nginx
 
 
nginx 닫 기:
[root@localhost sbin]# ./nginx -s stop
추천 사용:
[root@localhost sbin]# ./nginx -s quit
 
nginx 다시 시작:
먼저 닫 고 시작 합 니 다.
프로필 새로 고침:
[root@localhost sbin]# ./nginx -s reload
 
 
Nginx 프로필:
http 내 server 노드 기본 설정:
server {

    listen       80;

    server_name  localhost;



    location / {

        root   /usr/share/nginx/html;

        index  index.html index.htm;

    }



error_page  404              /404.html;



    error_page   500 502 503 504  /50x.html;

    location = /50x.html {

        root   /usr/share/nginx/html;

    }



 }

SSL 설정:
server
{
    listen 80 default_server;
	listen 443 ssl http2;
    server_name xxx.cn   ip www.xxx.cn;
    index index.php index.html index.htm default.php default.htm default.html;
    root /www/wwwroot/xxx.cn;
    
    #SSL-START SSL    ,              404  
    #error_page 404/404.html;
    ssl_certificate    /etc/letsencrypt/live/xxx.cn/fullchain.pem;
    ssl_certificate_key    /etc/letsencrypt/live/xxx.cn/privkey.pem;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    error_page 497  https://$host$request_uri;

    limit_conn perserver 300;
    limit_conn perip 25;
    limit_rate 512k;
    #SSL-END
    
    #ERROR-PAGE-START       ,    、     
    error_page 404 /404.html;
    error_page 502 /502.html;
    #ERROR-PAGE-END
    
    #PHP-INFO-START  PHP    ,       
    include enable-php-56.conf;
    #PHP-INFO-END
    
    #REWRITE-START URL      ,                  
    include /www/server/panel/vhost/rewrite/xxx.cn.conf;
    #REWRITE-END
    
    #          
    location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
    {
        return 404;
    }
    
    #    SSL          
    location ~ \.well-known{
        allow all;
    }
    
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
        expires      30d;
        error_log off;
        access_log off;
    }
    
    location ~ .*\.(js|css)?$
    {
        expires      12h;
        error_log off;
        access_log off; 
    }
    access_log  /www/wwwlogs/xxx.cn.log;
    error_log  /www/wwwlogs/xxx.cn.error.log;
}

tomcat 설정 전달
#user  nobody;
worker_processes  2;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  2048;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       80;
        server_name  localhost;

	index index.jsp index.html;
        root /yjdata/www/www/;
        location ~ .* {
                proxy_pass http://127.0.0.1:8080;
        }


}

좋은 웹페이지 즐겨찾기