#☕️ 백 엔 드 \ # 1. Nginx

6938 단어
웹 서버 로 역방향 프 록 시, 부하 분산 기, HTTP 캐 시 로 도 사용 할 수 있 습 니 다.
설치 하 다.
  • 컴 파일 설치
  • 링크 ux 아래 설치 방법:
    yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel //     
    
    configure --prefix=/opt/nginx/ //      ,      
    
    maks && make install //     
    

    mac 아래 설치 방법:
    brew install nginx //           
    

    알림 정보:
    The default port has been set in /usr/local/etc/nginx/nginx.conf to 8080 so that
    nginx can run without sudo.
    
    nginx will load all files in /usr/local/etc/nginx/servers/.
    
    To have launchd start nginx now and restart at login:
      brew services start nginx
    Or, if you don't want/need a background service you can just run:
      nginx
    

    홈 브 루 는 자 유 롭 게 소스 코드 를 개방 하 는 패키지 관리 시스템 으로 맥 OS X 시스템 의 소프트웨어 설치 과정 에 사용 된다.
    의존 목록:
    gcc
    컴 파일 러
    pcre pcre-devel
    configure 프로 세 스에 필요 한 정규 표현 식
    zlib zlib-devel
    전송 내용 압축
    openssl openssl-devel
    https 지원 필요
    메모: devel 은 일반 가방 을 포함 하고 헤더 파일 이 많아 서 컴 파일 할 때 필요 합 니 다.
    Https, SSL 과 OpenSSL 의 삼자 관계
    HTTPS
    Hyper Text Transfer Protocol over Secure Socket Layer
    HTTP 의 암호 화 버 전, 기본 값 은 SSL 을 암호 화 프로 토 콜 로 사용 합 니 다.
    SSL
    Secure Socket Layer (보안 소켓 층)
    클 라 이언 트 와 서버 사이 에 SSL 보안 채널 을 만 드 는 암호 화 프로 토 콜
    OpenSSL
    --
    TLS / SSL 프로 토 콜 의 오픈 소스 구현, 오픈 라 이브 러 리 와 명령 행 프로그램 제공
    TLS
    전송 계층 보안 (전송 계층 보안 프로 토 콜)
    두 응용 프로그램 간 에 기밀 성과 데이터 완전 성 을 제공 하 는 데 사용 된다.
    시작 및 닫 기
    nginx 설치 디 렉 터 리 에 들 어 가 는 sbin 폴 더
    실행 nginx, 두 개의 nginx 프로 세 스 를 시작 합 니 다. 각각:
    master 프로 세 스: 데 몬
    work 프로 세 스: 요청 에 응답 하 는 데 사 용 됩 니 다.
    실행 nginx -s stop 프로 세 스 닫 기
    실행 nginx -s reload 프로 세 스 재 부팅
    시작: 시스템 이 자동 으로 실행 되 는 스 크 립 트 파일 을 편집 합 니 다. centos 에 서 는 / etc / rc. d / rc. local 입 니 다. nginx 시작 명령 을 추가 하면 됩 니 다.
    배치 하 다.
    nginx. conf 파일 편집
    #       ,         
    worker_processes  1;
    
    #error_log  logs/error.log;
    #error_log  logs/error.log  notice;
    #error_log  logs/error.log  info;
    
    #pid        logs/nginx.pid;
    
    # event         ,          
    events {
        worker_connections  1024;
    }
    
    # http    http  
    http {
        #             
        include       mime.types;
        #      
        default_type  application/octet-stream;
    
        #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
        #                  '$status $body_bytes_sent "$http_referer" '
        #                  '"$http_user_agent" "$http_x_forwarded_for"';
    
        #access_log  logs/access.log  main;
         #          ,sendfile    nginx    sendfile       ,         on,             IO     ,    off,        I/O    ,       。  :               off。
        sendfile        on;
        #      
        #tcp_nopush     on;
    
        #       ,    
        #keepalive_timeout  0;
        keepalive_timeout  65;
        
        #  gzip    
        #gzip  on;
    
        #       ,  server_name    ,              server
        server { 
            #    
            listen       8080;
            #       ,     
            server_name  localhost;
    
            #    
            charset utf-8;
    
            #            
            #access_log  logs/host.access.log  main;
            location / {
                root   html;
                index  index.html index.htm;
                allow 192.168.10.100;
                allow 172.29.73.0/24;
                deny all;
            }
    
            #error_page  404              /404.html;
    
            # redirect server error pages to the static page /50x.html
            #
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
    
            # proxy the PHP scripts to Apache listening on 127.0.0.1:80
            #
            #location ~ \.php$ {
            #    proxy_pass   http://127.0.0.1;
            #}
    
            # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
            #
            #location ~ \.php$ {
            #    root           html;
            #    fastcgi_pass   127.0.0.1:9000;
            #    fastcgi_index  index.php;
            #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            #    include        fastcgi_params;
            #}
    
            # deny access to .htaccess files, if Apache's document root
            # concurs with nginx's one
            #
            #location ~ /\.ht {
            #    deny  all;
            #}
        }
    
    
        # another virtual host using mix of IP-, name-, and port-based configuration
        #
        #server {
        #    listen       8000;
        #    listen       somename:8080;
        #    server_name  somename  alias  another.alias;
    
        #    location / {
        #        root   html;
        #        index  index.html index.htm;
        #    }
        #}
    
    
        # HTTPS server
        #
        #server {
        #    listen       443 ssl;
        #    server_name  localhost;
    
        #    ssl_certificate      cert.pem;
        #    ssl_certificate_key  cert.key;
    
        #    ssl_session_cache    shared:SSL:1m;
        #    ssl_session_timeout  5m;
    
        #    ssl_ciphers  HIGH:!aNULL:!MD5;
        #    ssl_prefer_server_ciphers  on;
    
        #    location / {
        #        root   html;
        #        index  index.html index.htm;
        #    }
        #}
        include servers/*;
    }
    
    

    위치 표현 식
    syntax: location [=|~|~*|^~|@] /uri/ {…}
    두 가지 일치 모드 로 나 뉜 다.
  • 일반 문자열 일치: 시작 안내 문자 가 없 거나 = 시작 으로 일반 문자열 의 일치
  • 정규 일치: ~ 또는 ~* 로 시작 하여 정규 일치 ~* 는 대소 문 자 를 구분 하지 않 음
  • 을 나타 낸다.
    여러 location 시 일치 하 는 규칙: 일반 후 정규, URI 부분 만 식별 합 니 다.예 를 들 어 요청 은 /test/1/abc.do?arg=xxx:
  • 먼저 있 는 지 없 는 지 를 찾 아 라 = 시작의 정확 한 일치, 즉 location = /test/1/abc.do {...}
  • 일반 매 칭 을 찾 고 최대 접 두 사 를 규칙 으로 합 니 다. 다음 두 location
       location /test/ {...}
       location /test/1 {...}
    
    이 있 으 면 다음 항목
  • 과 일치 합 니 다.
  • 일반 형식 에 일치 한 후 검색 이 끝나 지 않 고 현재 결 과 를 잠시 저장 하고 정규 모드
  • 를 계속 검색 합 니 다.
  • 모든 정규 모드 location 에서 첫 번 째 일치 항목 을 찾 은 후 이 일치 항목 을 최종 결과 로 합 니 다.모든 정규 일치 항목 일치 규칙 은 정의 전후 순서 에 영향 을 받 지만 일반 일치 하지 않 습 니 다
  • 정규 일치 항목 을 찾 지 못 하면 3 개의 캐 시 결 과 를 최종 결과 로 합 니 다
  • 일치 하 는 것 이 하나 도 없 으 면 404
  • 로 돌아 갑 니 다.location =/ {…}location / {...} 의 차이:
    이전 것 은 정확 한 일치 입 니 다. / 요청 에 만 응답 합 니 다. 모든 /xxx 클래스 요청 은 접두사 로 일치 하지 않 습 니 다.
    그 다음 에는 정반 대로 모든 요청 이 / 로 시작 되 기 때문에 다른 일치 하 는 결과 가 없 을 때 반드시 실 행 됩 니 다.location ^~ / {...} ^~ 는 비정규, 이 모드 와 일치 하면 정규 검색 을 계속 하지 않 겠 다 는 뜻 입 니 다.일반 매 칭 규칙 에서 다른 일반 매 칭 결 과 를 얻 지 못 했 을 때, 최종 적 으로 여기에 매 칭 되 기 때문에, 정규 가 허용 되 지 않 기 때문에, 매 칭 은 여기까지 입 니 다./test/abc.jsp deny all; 요청 을 거절 하고 403 으로 돌아 가기allow 192.168.10.0/24; 지정 한 IP 세그먼트 proxy_pass http://192.168.1.61:8080; 를 통 해 일치 하 는 요청 대 리 를 다른 주소 로 처리 할 수 있 습 니 다.
    @ 변수 정의 와 유사 합 니 다. 예 를 들 어:
    error_page 403 @page403;
    locaion @page403 {
      proxy_pass http://www.xxx.com
    }
    

    좋은 웹페이지 즐겨찾기