《實戰Nginx》Nginx的基本配置和優化

1 配置基於域名的虛擬主機

示例:
在這裏插入圖片描述
示例:

	server {
		listen 80;
		listen 443 ssl;
		server_name  ***.com;
		ssl_certificate "/usr/local/nginx/key/2632824__***.com.pem";
		ssl_certificate_key "/usr/local/nginx/key/2632824__***.com.key";
		ssl_session_cache shared:SSL:1m;
		ssl_session_timeout 5m;
			ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
			ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
			# ssl_ciphers  HIGH:!aNULL:!MD5;
		ssl_prefer_server_ciphers on;

		location / {
			proxy_pass http://127.0.0.1:8090/;
			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_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
			proxy_max_temp_file_size 0;
			proxy_connect_timeout      90;
			proxy_send_timeout         90;
			proxy_read_timeout         90;
			proxy_buffer_size          4k;
			proxy_buffers              4 32k;
			proxy_busy_buffers_size    64k;
			proxy_temp_file_write_size 64k;

		}
	
    }  
	
	server {
		listen 80;
		server_name  ***.com;

		location / {
			proxy_pass http://127.0.0.1:9696/;
			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_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
			proxy_max_temp_file_size 0;
			proxy_connect_timeout      90;
			proxy_send_timeout         90;
			proxy_read_timeout         90;
			proxy_buffer_size          4k;
			proxy_buffers              4 32k;
			proxy_busy_buffers_size    64k;
			proxy_temp_file_write_size 64k;

		}
	
    }

2 Nginx日誌文件的配置與切割

2.1 用log_format指令用來設置日誌的記錄格式

語法格式如下:

log_format  main(格式名稱)  '$remote_addr - $remote_user [$time_local] "$request" '
												'$status $body_bytes_sent "$http_referer" '
												'"$http_user_agent" "$http_x_forwarded_for"'

案例如下:
在這裏插入圖片描述

2.2 用access_log指令指定日誌文件存放路徑

access_log  logs/access.log  main;

main指的是使用的日誌的格式名稱。

2.3 Nginx日誌的切割

Nginx本身不支持日誌的切割,不過可以藉助linux的定時功能來完成。
方法如下:
在這裏插入圖片描述
腳本內容如下:
在這裏插入圖片描述
然後打開定時:

crontab -e

輸入如下:

00 00  *  *  *  /bin/bash  腳本路徑

3 Nginx的壓縮輸出配置

在這裏插入圖片描述

   	gzip on;
   	# 啓用gzip壓縮的最小文件,小於設置值的文件將不會壓縮
    gzip_min_length 1k;
    # 設置壓縮所需要的緩衝區大小     
    gzip_buffers 4 16k;
     # 設置gzip壓縮針對的HTTP協議版本
    gzip_http_version 1.0;
     # gzip 壓縮級別,1-9,數字越大壓縮的越好,也越佔用CPU時間
    gzip_comp_level 8;
    # 進行壓縮的文件類型。javascript有多種形式。其中的值可以在 mime.types 文件中找到。
    gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
      # 是否在http header中添加Vary: Accept-Encoding,建議開啓
    gzip_vary off;
     # 禁用IE 6 gzip
    gzip_disable "MSIE [1-6]\.";

3.5 Nginx的自動列目錄配置

 server {
                listen 80;
                server_name aaa.hbk.com;
                access_log logs/aaa.access.log combined;
                root /root/hbk/aaa/;
                location /css/ {
                        autoindex on;
                        autoindex_exact_size off;
                        autoindex_localtime on;
                }

        }


[root@localhost commoncss]# tree /root/hbk/aaa/
/root/hbk/aaa/
├── css
│   ├── commoncss
│   │   └── bootstrap.css
│   └── my.css
├── html
├── index.html
└── js


在這裏插入圖片描述
另外Nginx的目錄流量有兩個比較有用的參數,可以根據自己的需求添加:

autoindex_exact_size off;
默認爲on,顯示出文件的確切大小,單位是bytes。
改爲off後,顯示出文件的大概大小,單位是kB或者MB或者GB

autoindex_localtime on;
默認爲off,顯示的文件時間爲GMT時間。
改爲on後,顯示的文件時間爲文件的服務器時間

虛擬目錄也同樣支持,如下:

虛擬目錄開啓目錄流量
location /down/ {
	alias /home/wwwroot/lnmp/test/;
	autoindex on;
}

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