Nginx 정적 파일 설정 및 보안 인정

6345 단어
본 고 는 주로 Nginx 정적 파일, Nginx 정적 파일 프로젝트 를 어떻게 만 드 는 지 설명 한다.이런 내용 은 모두 일부 포 털 사이트 와 기술 포럼 에서 찾 은 것 입 니 다. 중간 에 제 가 고 르 지 못 한 잘못 이 많 을 수 있 습 니 다. 여러분 의 지적 을 환영 합 니 다.
Google 의 목 표 는 서비스 가 가장 빠 르 고 cpu / io 가 가장 효과 적 인 서버 를 사용 하도록 설정 하 는 것 입 니 다. 더 중요 한 것 은 안전 한 웹 서버 입 니 다. 아래 설정 파일 은 최신 버 전의 Nginx 에 적 용 됩 니 다.
  • #######################################################  
  • ### Calomel.org /etc/Nginx.conf BEGIN  
  • #######################################################  
  • #  
  • pid /var/run/Nginx.pid;  
  • user Nginx Nginx;  
  • worker_processes 2;  
  • events {  
  • worker_connections 1024;  
  • }  
  • http {  
  • ## MIME types  
  • include mime.types;  
  • # types {  
  • # image/gif gif;  
  • # image/jpeg jpg;  
  • # image/png png;  
  • # image/bmp bmp;  
  • # image/x-icon ico;  
  • # text/css css;  
  • # text/html html;  
  • # text/plain bob;  
  • # text/plain txt;  
  • }  
  • default_type application/octet-stream;  
  • ## Size Limits  
  • client_body_buffer_size 8k;  
  • client_header_buffer_size 1k;  
  • client_max_body_size 1k;  
  • large_client_header_buffers 1 1k;  
  • ## Timeouts   
  • client_body_timeout 5;  
  • client_header_timeout 5;  
  • keepalive_timeout 5 5;  
  • send_timeout 5;  
  • ## General Options  
  • ignore_invalid_headers on;  
  • limit_zone gulag $binary_remote_addr 1m;  
  • recursive_error_pages on;  
  • sendfile on;  
  • server_name_in_redirect off;  
  • server_tokens off;  
  • ## TCP options   
  • tcp_nodelay on;  
  • tcp_nopush on;  
  • ## Compression  
  • gzip on;  
  • gzip_static on;  
  • gzip_buffers 16 8k;  
  • gzip_comp_level 9;  
  • gzip_http_version 1.0;  
  • gzip_min_length 0;  
  • gzip_types text/plain text/html text/css image/x-icon image/bmp;  
  • gzip_vary on;  
  • ## Log Format  
  • log_format main '$remote_addr $host $remote_user [$time_local] "$request" '  
  • '$status $body_bytes_sent "$http_referer" "$http_user_agent" "$gzip_ratio"';  
  • ## Deny access to any host other than (www.)mydomain.com  
  • server {  
  • server_name _; #default  
  • return 444;  
  • }  
  • ## Server (www.)mydomain.com  
  • server {  
  • access_log /var/log/Nginx/access.log main buffer=32k;  
  • error_log /var/log/Nginx/error.log info;  
  • expires 31d;  
  • limit_conn gulag 5;  
  • listen 127.0.0.1:8080 rcvbuf=64k backlog=128;  
  • root /disk01/htdocs;  
  • server_name mydomain.com www.mydomain;  
  • ## SSL Options (only enable if you use a SSL certificate)  
  • # ssl on;  
  • # ssl_certificate /ssl_keys/mydomain.com_ssl.crt;  
  • # ssl_certificate_key /ssl_keys/mydomain_ssl.key;  
  • # ssl_ciphers HIGH:!ADH:!MD5;  
  • # ssl_prefer_server_ciphers on;  
  • # ssl_protocols SSLv3;  
  • # ssl_session_cache shared:SSL:1m;  
  • # ssl_session_timeout 5m;  
  • ## Only allow GET and HEAD request methods  
  • if ($request_method !~ ^(GET|HEAD)$ ) {  
  • return 444;  
  • }  
  • ## Deny illegal Host headers  
  • if ($host !~* ^(mydomain.com|www.mydomain.com)$ ) {  
  • return 444;  
  • }  
  • ## Deny certain User-Agents (case insensitive)  
  • ## The ~* makes it case insensitive as opposed to just a ~  
  • if ($http_user_agent ~* (Baiduspider|Jullo) ) {  
  • return 444;  
  • }  
  • ## Deny certain Referers (case insensitive)  
  • ## The ~* makes it case insensitive as opposed to just a ~  
  • if ($http_referer ~* (babes|click|diamond|forsale|girl|jewelry|love|nudit|organic|poker|porn|poweroversoftware|sex|teen|video|webcam|zippo) ) {  
  • return 444;  
  • }  
  • ## Redirect from www to non-www  
  • if ($host = 'www.mydomain.com' ) {  
  • rewrite ^/(.*)$ http://mydomain.com/$1 permanent;  
  • }  
  • ## Stop Image and Document Hijacking  
  • location ~* (\.jpg|\.png|\.css)$ {  
  • if ($http_referer !~ ^(http://mydomain.com) ) {  
  • return 444;  
  • }  
  • }  
  • ## Restricted Access directory  
  • location ^~ /secure/ {  
  • allow 127.0.0.1/32;  
  • allow 10.10.10.0/24;  
  • deny all;  
  • auth_basic "RESTRICTED ACCESS";  
  • auth_basic_user_file /var/www/htdocs/secure/access_list;  
  • }  
  • ## Only allow these file types to document root  
  • location / {  
  • if ($request_uri ~* (^\/|\.html|\.jpg|\.org|\.png|\.css|favicon\.ico|robots\.txt)$ ) {  
  • break;  
  • }  
  • return 444;  
  • }  
  • ## Serve an empty 1x1 gif _OR_ an error 204 (No Content) for favicon.ico  
  • location = /favicon.ico {  
  • #empty_gif;  
  • return 204;  
  • }  
  • ## System Maintenance (Service Unavailable)   
  • if (-f $document_root/system_maintenance.html ) {  
  • error_page 503 /system_maintenance.html;  
  • return 503;  
  • }  
  • ## All other errors get the generic error page  
  • error_page 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417  
  • 500 501 502 503 504 505 /error_page.html;  
  • location /error_page.html {  
  • internal;  
  • }  
  • }  
  • }  
  • #  
  • #######################################################  
  • ### Calomel.org /etc/Nginx.conf END  
  • #######################################################  

  • 다음은 Nginx 정적 파일 명령 에 대한 상세 한 설명 입 니 다.

    좋은 웹페이지 즐겨찾기