nginx 단순 입문 총화

14887 단어 java-web 개발nginx
설치 nginx 다운로드
nginx 홈 페이지 에 들 어가 안정 버 전 zip 를 다운로드 하고 압축 을 풀 면 nginx 를 사용 할 수 있 습 니 다.
nginx 시작 방식 (세 가지)
1. nginx 가 있 는 디 렉 터 리 의 명령 줄 에 들 어가 서 nginx 를 입력 하면 nginx 를 시작 할 수 있 습 니 다. 현재 명령 줄 만 잠 겨 있 습 니 다.
2. nginx 가 있 는 디 렉 터 리 에 들 어 가 는 명령 입 니 다. start nginx 를 입력 하면 nginx 를 시작 할 수 있 습 니 다. 첫 번 째 에 비해 현재 명령 행 을 잠 그 지 않 습 니 다.
3. nginx 가 있 는 디 렉 터 리 의 exe 프로그램 을 두 번 클릭 하면 nginx 를 시작 할 수 있 습 니 다.
시작 하면 작업 관리자 에서 두 개의 nginx. exe 프로 세 스 를 볼 수 있 습 니 다. 각각 master process 와 worker process 를 대표 합 니 다. 그 중에서 work프로 세 스 는 자신 이 설정 파일 에서 지정 한 수량 입 니 다.
nginx 의 상용 명령
1. nginx -v nginx 버 전 보기
2. nginx -t 설정 파일 이 잘못 되 었 는 지 확인 합 니 다. 설정 파일 을 수정 한 후에 nginx 를 다시 시작 하기 전에 검사 하 는 데 사 용 됩 니 다.
3. nginx.exe -s quit nginx 서 비 스 를 신속하게 중단 하고 관련 정 보 를 저장 하지 않 을 수 있 습 니 다.
4. nginx.exe -s stop 관련 데이터 정 보 를 저장 한 후에 nginx 서 비 스 를 완전 하고 질서 있 게 중단 합 니 다.
5. nginx.exe -s reload nginx 서비스 재 개
6. nginx.exe -s reopen 로그 파일 다시 열기
nginx 프로필 상세 설명
블 로그 Nginx 프로필 nginx. conf 중국어 설명 참조
블 로 거들 의 삭 제 를 방지 하기 위해 원문 을 코드 로 복사 합 니 다.
#  Nginx         
user www www;

#nginx   ,       CPU    。
worker_processes 8;

#          ,[ debug | info | notice | warn | error | crit ]
error_log /var/log/nginx/error.log info;

#    
pid /var/run/nginx.pid;

#  nginx              ,             (    ulimit -n) nginx     ,  nginx        ,     ulimit -n      。
worker_rlimit_nofile 65535;

#          
events
{
#       ,use [ kqueue | rtsig | epoll | /dev/poll | select | poll ]; epoll   Linux 2.6             I/O  ,    FreeBSD  ,  kqueue  。
use epoll;
#         (     =   *   )
worker_connections 65535;
}

#  http   
http
{
include mime.types; #             
default_type application/octet-stream; #      
#charset utf-8; #    
server_names_hash_bucket_size 128; #      hash   
client_header_buffer_size 32k; #        
large_client_header_buffers 4 64k; #     
client_max_body_size 8m; #     
sendfile on; #          ,sendfile    nginx    sendfile       ,         on,             IO     ,    off,        I/O    ,       。  :               off。
autoindex on; #        ,       ,    。
tcp_nopush on; #      
tcp_nodelay on; #      
keepalive_timeout 120; #       ,    

#FastCGI              :      ,      。             。
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;

#gzip    
gzip on; #  gzip    
gzip_min_length 1k; #        
gzip_buffers 4 16k; #     
gzip_http_version 1.0; #    (  1.1,     squid2.5   1.0)
gzip_comp_level 2; #    
gzip_types text/plain application/x-javascript text/css application/xml;
#    ,       text/html,          ,         ,      warn。
gzip_vary on;
#limit_zone crawler $binary_remote_addr 10m; #    IP          

upstream blog.ha97.com {
#upstream     ,weight   ,            。weigth      ,             。
server 192.168.80.121:80 weight=3;
server 192.168.80.122:80 weight=2;
server 192.168.80.123:80 weight=3;
}

#       
server
{
#    
listen 80;
#       ,     
server_name www.ha97.com ha97.com;
index index.html index.htm index.php;
root /data/www/ha97;
location ~ .*.(php|php5)?$
{
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
#        
location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 10d;
}
#JS CSS      
location ~ .*.(js|css)?$
{
expires 1h;
}
#      
log_format access ‘$remote_addr$remote_user [$time_local] “$request” ‘
‘$status $body_bytes_sent$http_referer” ‘
‘”$http_user_agent$http_x_forwarded_for’;
#            
access_log /var/log/nginx/ha97access.log access;

#  “/”       
location / {
proxy_pass http://127.0.0.1:88;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
#   Web       X-Forwarded-For      IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#            ,  。
proxy_set_header Host $host;
client_max_body_size 10m; #                
client_body_buffer_size 128k; #                  ,
proxy_connect_timeout 90; #nginx            (      )
proxy_send_timeout 90; #           (      )
proxy_read_timeout 90; #     ,         (      )
proxy_buffer_size 4k; #       (nginx)             
proxy_buffers 4 32k; #proxy_buffers   ,     32k     
proxy_busy_buffers_size 64k; #        (proxy_buffers*2)
proxy_temp_file_write_size 64k;
#         ,     ,  upstream    
}

#    Nginx     
location /NginxStatus {
stub_status on;
access_log on;
auth_basic “NginxStatus”;
auth_basic_user_file conf/htpasswd;
#htpasswd        apache   htpasswd     。
}

#            
#  jsp      tomcat resin  
location ~ .(jsp|jspx|do)?$ {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8080;
}
#       nginx       tomcat resin
location ~ .*.(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)$
{ expires 15d; }
location ~ .*.(js|css)?$
{ expires 1h; }
}
}

보충:
위치 문법:
location ~ .jsp${

}

1.~:              
2.~*:               
3.!~:               
4.!~*:                
5./:        ,          /   
6.=/:    /

잘못된 총화
\ # nginx 재 부팅 이상 발생: 시스템 에서 지 정 된 해결 방법 을 찾 을 수 없습니다.
    :  nginx        nginx,nginx              nginx.pid      nginx pid   

    :        nginx.pid    pid nginx   pid   ,          

    :        nginx.exe      ,      start nginx     nginx    

nginx 와 tomcat 를 결합 하여 동정 자원 파일 분리 예시 사용
1. nginx 프로필 을 수정 하고 모든 jsp 자원 파일 을 tomcat 에 직접 처리 하 며 html 파일 은 nginx 를 통 해 캐 시 합 니 다.주요 설정 내용 은 다음 과 같 습 니 다.
http {
    ...
    server {
        # nginx    80  
        listen  80;
        #       
        server_name localhost;
        #     jsp         tomcat  
        location ~ .jsp$ {
            #       ,     tomcat   ,      http
            proxy_pass http://localhost:8081;
        }
        #     html         nginx    
        location ~ .html$ {
            #         nginx_home/html     
            root html;  
        }
        ...
    }
}

이어서 nginx 와 tomcat 를 시작 하면 됩 니 다.
nginx 역방향 프 록 시 여러 대의 tomcat 서버 실력 (tomcat 클 러 스 터 의 상황 시 뮬 레이 션)
1. nginx 프로필 을 수정 하고 upstream 을 통 해 프 록 시 경 로 를 지정 합 니 다.
http {
    ...
    #     ,upstream         http     server   
    upstream location_tomcat {
        #     tomcat      ,     http  
        server localhost:8081;
        server localhost:8082;  
    }
    server {
        listen 80;
        location ~ .jsp$ {
            #           upstream   
            proxy_pass http://location_tomcat;   
        }
        ...
    }
}

좋은 웹페이지 즐겨찾기