nginx生產環境配置

配置文件與說明

通用配置
  1. user  nginx; 
  2. worker_processes  16;  #根據cpu核數確定 
  3.   
  4. error_log  /web/log/nginx-error.log; 
  5. pid        logs/nginx.pid; 
  6.   
  7.   
  8. events { 
  9.         use epoll;     #使用epoll方式 
  10.         worker_connections  8192; 
  11.   
  12.   
  13. http { 
  14.         #通用配置選項 
  15.         include       mime.types; 
  16.         default_type  application/octet-stream; 
  17.   
  18.         server_names_hash_bucket_size 128; 
  19.         client_header_buffer_size 32k; 
  20.         large_client_header_buffers 4 32k; 
  21.         client_max_body_size 8m; 
  22.   
  23.         #性能優化選項 
  24.         sendfile on; 
  25.         tcp_nopush     on; 
  26.         keepalive_timeout 60; 
  27.         tcp_nodelay on; 
  28.   
  29.         #FastCGI通用配置 
  30.         fastcgi_connect_timeout 300; 
  31.         fastcgi_send_timeout 300; 
  32.         fastcgi_read_timeout 300; 
  33.         fastcgi_buffer_size 64k; 
  34.         fastcgi_buffers 4 64k; 
  35.         fastcgi_busy_buffers_size 128k; 
  36.         fastcgi_temp_file_write_size 128k; 
  37.   
  38.         #Gzip壓縮選項 
  39.         gzip on; 
  40.         gzip_min_length  1k; 
  41.         gzip_buffers     4 16k; 
  42.         gzip_comp_level 6; 
  43.         gzip_types       text/plain application/x-javascript text/css application/xml; 
  44.         gzip_vary on; 
  45.   
  46.         #日誌格式 
  47.         log_format main 
  48.                 '$remote_addr - $remote_user [$time_local] "$request" ' 
  49.                 '$status $body_bytes_sent "$http_referer" ' 
  50.                 '"$http_user_agent" "$http_x_forwarded_for"'; 
  51.   
  52.         #默認server 
  53.         server { 
  54.                 listen 80 default; 
  55.                 root /dev/null; 
  56.                 location / { 
  57.                         return 404; 
  58.                         access_log off; 
  59.                 } 
  60.         } 
  61.   
  62.         #包含其他配置文件的路徑,此處是相對主程序路徑 
  63.         include conf.d/*.conf; 
  64.   

詳細配置

  1. server { 
  2.         listen       80 ; 
  3.         server_name  .........; 
  4.         index index.html index.php; 
  5.         root  /web/wwwroot/snapB/app/webroot; 
  6.   
  7.         include block.conf;  #關鍵詞過濾配置文件 
  8.         #rewrite規則,前兩條是爲了訪問二級域名時跳轉到三級域名,後面幾條是因爲搜索引擎收錄了我們錯誤的url 
  9.         if ($host = '......') { 
  10.                 rewrite  ^/(.*)$  http://....../$1  permanent; 
  11.         } 
  12.   
  13.         if ($host = '.......') { 
  14.                 rewrite  ^/(.*)$  http://......./$1  permanent; 
  15.         } 
  16.   
  17.         #根據user-agent阻止惡意流量 
  18.         if ($http_user_agent ~* ".*(Huaweisymantecspider|huaweisymantecspider|Wget|wget|robot|spideri|MJ12bot|HTTrack|crawl|Python|python|Java|java|Perl|perl|PHP|php).*") { 
  19.                 set $var_bad_user_agent '1'; 
  20.         } 
  21.         if ($http_user_agent ~ "^$") { 
  22.                 set $var_bad_user_agnet '1'; 
  23.         } 
  24.         if ($http_user_agent ~* ".*(BaiDu|Sougou|Google).*") { 
  25.                 set $var_bad_user_agent '0'; 
  26.         } 
  27.         if ($var_bad_user_agent ~ '1') { 
  28.                 return 403; 
  29.         } 
  30.   
  31.         location / { 
  32.                 # For bbpress 
  33.                 if ($uri ~ ^/forum){ 
  34.                         break; 
  35.                 } 
  36.   
  37.                 #cakephp配置 
  38.                 if (-f $request_filename) { 
  39.                         break; 
  40.                 } 
  41.                 if (!-f $request_filename) { 
  42.                         rewrite ^/(.+)$ /index.php?url=$1 last; 
  43.                         break; 
  44.                 } 
  45.   
  46.         } 
  47.   
  48.         #forum虛擬目錄和rewrite規則 
  49.         location  /forum { 
  50.                 alias /web/wwwroot/snapB/app/forum; 
  51.                 index index.php; 
  52.                 if (!-e $request_filename) { 
  53.                         rewrite ^/forum/topic/(.*)$ /forum/topic.php?q=$1 last; 
  54.                         rewrite ^/forum/forum/(.*)$ /forum/forum.php?q=$1 last; 
  55.                         rewrite ^/forum/profile/(.*)$ /forum/profile.php?q=$1 last; 
  56.                         rewrite ^/forum/view/(.*)$ /forum/view.php?q=$1 last; 
  57.                         rewrite ^/forum/tags/(.*)$ /forum/tags.php?q=$1 last; 
  58.                         rewrite ^/forum/rss/(.*)$ /forum/rss.php?q=$1 last; 
  59.                         rewrite ^/forum/bb-admin/ /forum/bb-admin/index.php last; 
  60.                         rewrite ^/forum/ /forum/index.php last; 
  61.                         break; 
  62.                 } 
  63.         } 
  64.         #客戶端緩存javascript配置 
  65.         location /js { 
  66.                 expires max; 
  67.         } 
  68.         location /css { 
  69.                 expires max; 
  70.         } 
  71.         location /img { 
  72.                 expires max; 
  73.         } 
  74.         #php-fpm配置 
  75.         location ~ .*\.(php|php5)?$ { 
  76.                 # For bbpress 
  77.                 if ($uri ~ ^/forum){ 
  78.                         root /web/wwwroot/snapB/app/; 
  79.                 } 
  80.                 fastcgi_pass  unix:/dev/shm/php-fpm.sock; 
  81.                 fastcgi_index index.php; 
  82.                 include fcgi.conf; 
  83.         } 
  84.                 access_log  /web/log/........log main; 

ps:"........."請用域名代替

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章