Skip to content
On this page

그누보드전용 nginx 일반설정

그누보드 전용 일반 설정

bash
server {
    listen       80;
    server_name pension.beavertech.or.kr;
    root /home/pension;
    index  index.html index.htm index.php;

    access_log /var/log/nginx/pension.access.log;
    error_log   /var/log/nginx/pension.error.log;

    error_page  404              /404.html;
    error_page   500 502 503 504 /50x.php;
    location = /50x.php {
        root   /etc/nginx/block;
    }

    #### 그누보드5 nginx rules BEGIN #####
    if (!-e $request_filename){
#        rewrite ^/content/([0-9a-zA-Z_]+)$ /bbs/content.php?co_id=$1&rewrite=1 break;
#        rewrite ^/content/([^/]+)/$ /bbs/content.php?co_seo_title=$1&rewrite=1 break;
#        rewrite ^/rss/([0-9a-zA-Z_]+)$ /bbs/rss.php?bo_table=$1 break;
#        rewrite ^/orderform$ /theme/factory/orderform.php?item_code=$1&rewrite=1 break;
#        rewrite ^/mypage$ /theme/factory/mypage.php?mode=$1&rewrite=1 break;
         rewrite ^/reservation/([^/]+)$ /theme/bv_pension/reservation/index.php?mode=$1&rewrite=1 break;
         rewrite ^/room/([^/]+)$ /theme/bv_pension/room/index.php?code=$1&rewrite=1 break;
         rewrite ^/room_content/([^/]+)$ /theme/bv_pension/room_content/index.php?code=$1&rewrite=1 break;
#        rewrite ^/([0-9a-zA-Z_]+)$ /bbs/board.php?bo_table=$1&rewrite=1 break;
#        rewrite ^/([0-9a-zA-Z_]+)/write$ /bbs/write.php?bo_table=$1&rewrite=1 break;
#        rewrite ^/([0-9a-zA-Z_]+)/([^/]+)/$ /bbs/board.php?bo_table=$1&wr_seo_title=$2&rewrite=1 break;
#        rewrite ^/([0-9a-zA-Z_]+)/([0-9]+)$ /bbs/board.php?bo_table=$1&wr_id=$2&rewrite=1 break;
    }
    #### 그누보드5 nginx rules END #####

    location = /favicon.ico { log_not_found off; access_log off; }
    location = /robots.txt { log_not_found off; access_log off; allow all; }
    location ~ \.(gif|jpg|png)$ {
        add_header Vary "Accept-Encoding";
        add_header Cache-Control "public, no-transform, max-age=31536000";
    }

    # 업로드시 파일+내용 최대 크기.  php.ini 의 post_max_size 값과 동일하게 설정.
    client_max_body_size 30m;

    # 브라우저에 캐싱을 위해, 리소스 만료일 지정
    location ~*.(mp4|ogg|ogv|svg|svgz|eot|otf|woff|woff2|ttf|rss|atom|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf|cur)$ {
           add_header Cache-Control "max-age=31536000";
           access_log off;
    }

    ### 주의) 접근 제한 설정은 PHP FastCGI 설정보다 먼저 선언되어야 합니다. ###
    # 접근 제한 - .htaccess 와 버전관리 시스템들
    location ~ /(\.ht|\.git|\.svn) {
        access_log off;
        log_not_found off;
        deny  all;
    }

    # 접근 제한 - 그누보드 업로드 디렉토리에서 PHP 실행 제한
    location /data/ {
        location ~ \.(php|html|htm|inc)$ {
          deny all;
        }
    }

    # 접근 제한 - 그누보드 파일 세션
    location /data/session/ {
       deny all;
    }

    # 접근 제한 - 캡챠
    location /bbs/fonts/ {
       deny all;
    }

   location / {
        try_files $uri $uri/ =404;
   }

   location ~ \.(php|html)$ {
      fastcgi_split_path_info ^(.+\.php)(/.+)$;
#     fastcgi_pass php_worker56;
     fastcgi_pass php_worker74;
#      fastcgi_pass php_worker81;
     fastcgi_index index.php;
     include fastcgi_params;
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
   }
}