《实战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后,显示的文件时间为文件的服务器时间

扫描二维码关注公众号,回复: 8794285 查看本文章

虚拟目录也同样支持,如下:

虚拟目录开启目录流量
location /down/ {
	alias /home/wwwroot/lnmp/test/;
	autoindex on;
}

发布了157 篇原创文章 · 获赞 77 · 访问量 15万+

猜你喜欢

转载自blog.csdn.net/wu2374633583/article/details/100651720