nginx 基本配置
来源:互联网 发布:保障网络和信息安全 编辑:程序博客网 时间:2024/06/06 05:37
一、nginx基本配置
user nobody;worker_processes 4; # 设置工作进程数,通常是cpu核数或者cpu核数的2倍events{ worker_connections 1024; # 设置并发最大连接数}http{ server{ listen 80; #监听的端口,监听到后访问 html/server1这个地址 server_name 192.168.1.2; # 识别的域名 charset utf-8; # 设置url编码 access_log logs/server1.access.log combined; # off (关闭) loction / # 虚拟主机本地根目录(两种匹配模式,普通字符串匹配和正则匹配) { index index.html index.htm # 默认的首页 root html/server1; # 代表nginx虚拟主机的安装目录/usr/local/nginx/html/server1 } location ^~ /test/ { deny all; # 拒绝请求,返回403 (allow all;) # 允许请求 } #syntax:location [=|~|~*|^~|@]/url/{...} #无开头引导字符或以=开头表示普通字符串匹配 #以~或~*开头表示正则匹配,~*表示不区分大小写 #^~开头表示关闭正则匹配的功能,普通模式下匹配到后就不继续寻在正则 #@ } error_page 404 /404.html; #定义各类错误类型 error_page 403 @page403; # 发生403错误时指向http://www.xxx.xxx.com页面 location @page403{ proxy_pass http://www.xxx.xxx.com } server{ listen 192.168.1.3:80 # 监听的IP地址 server_name 192.168.1.3 # 设置虚拟主机的名称 access_log logs/server1.access.log combined; # 设置日志文件存放路径,格式为combined loction / { index index.html index.htm root html/server2; # IP地址与server2文件夹进行绑定 } }}
二、nginx日志文件配置
在nginx中conf中的nginx.conf有一段关于日志文件的配置
log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';参数解析: $remote_addr:客户端IP地址$remote_user:客户端的用户名$request:请求的url$status:请求状态$body_bytes_sent:记录nginx服务器返回给用户的字节数$http_referer:客户访问的原网页(用户从哪里来)$http_user_agent:客户浏览器访问信息,比如用户通过火狐浏览器浏览则记录火狐浏览器的类型信息$http_x_forwarded_for:客户端IP地址
三、制作按时间切割日志文件的脚本
1.制作切割日志脚本cutlog.sh
D = $(data + %Y%m%d)mv /usr/local/nginx/logs/access.log ${D}.logkill -USR1 $(cat /usr/loacl/nginx/nginx.pid)
2.使用定时执行命令
(1)crontab -e 进入编辑
(2)输入 23 59 *** /bin/bash /usr/local/nginx/logs/cutlog.sh
# 每天23:59定时执行cutlog.sh这个脚本
(3)保存
四、nginx的缓存配置
浏览网页时,浏览器会把网页上的一些信息(图片)存储到本地,第二次浏览的时速度加快。若本地这些信息过多,缓存文件就会非常大,需要定期清理。
vim nginx.conf打开nginx的默认配置
user nobody;worker_processes 4; # 设置工作进程数,通常是cpu核数或者cpu核数的2倍events{ worker_connections 1024; # 设置并发最大连接数}http{ server{ listen 192.168.1.2:80 #监听这个IP地址,监听到后访问 html/server1这个地址 server_name 192.168.1.2 access_log logs/server1.access.log combined; # off (关闭) loction / # 虚拟主机本地根目录 { index index.html index.htm # 默认的首页 root html/server1; # 代表nginx虚拟主机的安装目录/usr/local/nginx/html/server1 } location ~.*\.(jpg|png|swf)${ # 所有以.jpg|.png|.swf结尾的文件 expires 30d; # 设置每30天自动清除 } localtion ~.*\.(css|js)?${ expires 1h; # 设置每1h自动清除 } } server{ listen 192.168.1.3:80 # 监听的IP地址 server_name 192.168.1.3 # 设置虚拟主机的名称 access_log logs/server1.access.log combined; # 设置日志文件存放路径,格式为combined loction / { index index.html index.htm root html/server2; # IP地址与server2文件夹进行绑定 } }}
五、nginx的压缩功能配置
nginx支持gzip压缩技术,通过这个技术,可以把网页的内容大小压缩成原来的30%。
vim nginx.conf
user nobody;worker_processes 4; # 设置工作进程数,通常是cpu核数或者cpu核数的2倍events{ worker_connections 1024; # 设置并发最大连接数}http{ server{ listen 192.168.1.2:80 #监听这个IP地址,监听到后访问 html/server1这个地址 server_name 192.168.1.2 access_log logs/server1.access.log combined; # off (关闭) gzip on; # 开启gzip压缩功能 gzip_min_length 1k; # 文件大小大于1k才压缩 gzip_buffers 4 16k; # 申请用于缓存的内存大小为4个16k的数据流 gzip_http_version 1.1 # 声明只有http版本为1.1的网页开启gzip压缩功能 gzip_vary on; # 开启判断客户端浏览器是否支持gzip压缩功能 loction / # 虚拟主机本地根目录 { index index.html index.htm # 默认的首页 root html/server1; # 代表nginx虚拟主机的安装目录/usr/local/nginx/html/server1 } location ~.*\.(jpg|png|swf)${ # 所有已.jpg|.png|.swf结尾的文件 expires 30d; # 设置每30天自动清除 } localtion ~.*\.(css|js)?${ expires 1h; # 设置每1h自动清除 } } server{ listen 192.168.1.3:80 # 监听的IP地址 server_name 192.168.1.3 # 设置虚拟主机的名称 access_log logs/server1.access.log combined; # 设置日志文件存放路径,格式为combined loction / { index index.html index.htm root html/server2; # IP地址与server2文件夹进行绑定 } }}
六、nginx的自动列目录配置
当客户端通过浏览器访问服务器上的某一文件夹的时候,如果该文件夹有默认的首页文件index.html,那么用户就会自动访问到index.html这个网页.实现自动列目录需要的条件:1.访问文件夹下不存在index之类的默认首页文件 2.服务器配置了自动列表功能。
user nobody;worker_processes 4; # 设置工作进程数,通常是cpu核数或者cpu核数的2倍events{ worker_connections 1024; # 设置并发最大连接数}http{ server{ listen 192.168.1.2:80 #监听这个IP地址,监听到后访问 html/server1这个地址 server_name 192.168.1.2 access_log logs/server1.access.log combined; # off (关闭) loction / # 虚拟主机本地根目录 { index index.html index.htm # 默认的首页 root html/server1; # 代表nginx虚拟主机的安装目录/usr/local/nginx/html/server1 autoindex 0n; # 开启自动列目录 } } server{ listen 192.168.1.3:80 # 监听的IP地址 server_name 192.168.1.3 # 设置虚拟主机的名称 access_log logs/server1.access.log combined; # 设置日志文件存放路径,格式为combined loction / { index index.html index.htm root html/server2; # IP地址与server2文件夹进行绑定 } }}
配置后即使nginx虚拟主机的安装目录/usr/local/nginx/html/server1下没有index.html或index.htm也可以返回整个目录结构,而不是403
六、nginx的优化
阻塞和非阻塞网络模型
同步阻塞模型,一请求一进程,当进程(线程)增加到一定程度后,更多CPU时间浪费到切换,性能下降,负载率不高,nginx是基于事件爱你的非阻塞多路复用模型,一个进程可以在短时间响应大量的请求。
user nobody;worker_processes 4; # 设置工作进程数,通常是cpu核数或者cpu核数的2倍worker_rlimit_nofile 655350; # 每进程最大可打开文件描述符数量(网络端口,设备,磁盘文件),用完后新的连接会产生502类错误 worker_connections 200000; # 每个工作进程的最大连接数(一般一个浏览器会同时打开两条连接,如果反向代理,nginx到后端服务器的连接也会占用连接数,静态服务器最大连接maxClient = worker_connections * worker_processes / 2,反向代理maxClient = worker_connections * worker_processes / 4)use epoll; # 指明使用哪种网络模型epoll或kqueneworker_cpu_affinity 0001 0010 0100 1000 # 四核四进程,避免进程在cpu间切换的开销events{ worker_connections 1024; # 设置并发最大连接数}http{ server{ listen 192.168.1.2:80 #监听这个IP地址,监听到后访问 html/server1这个地址 server_name 192.168.1.2 # access_log logs/server1.access.log combined; # off (关闭) access_log off # 关闭可减少IO开销,但一般不建议 error_log logs/error.log crit # 只记录严重错误日志 sendfile on; # 启用内核复制模式,减少复制次数 keepalive_timeout 30s; # 降低每个连接的alive时间,可在一定程度上提高可响应连接数,一般可适当降低 gzip on; # 启动内容压缩,有效降低网络流量 gzip_min_length 1000; # 过短的内容压缩效果不佳,压缩过程会浪费系统资源 gzip_comp_level 4; # 可选0~9,压缩级别越高,压缩率越高,对系统性能要求越高 gzip_type text/plain text/css application/json # 压缩内容类别 open_file_cache max=655350 inactive=20s; # 静态文件缓存(最大缓存数量,文件为使用存活期),存放于内存 open_file_cache_valid 30s;# 验证缓存有效期时间间隔 open_file_cache_min_uses 2; # 有效期内文件最少使用次数 loction / # 虚拟主机本地根目录 { index index.html index.htm # 默认的首页 root html/server1; # 代表nginx虚拟主机的安装目录/usr/local/nginx/html/server1 } } server{ listen 192.168.1.3:80 # 监听的IP地址 server_name 192.168.1.3 # 设置虚拟主机的名称 access_log logs/server1.access.log combined; # 设置日志文件存放路径,格式为combined loction / { index index.html index.htm root html/server2; # IP地址与server2文件夹进行绑定 } }}
- Nginx的基本配置
- Nginx基本安装配置
- 【Nginx】基本配置入门
- Nginx 基本配置知识
- nginx 基本配置分析
- nginx 基本配置说明
- Nginx服务器基本配置
- nginx 基本配置
- nginx的基本配置
- nginx基本配置
- nginx 基本配置
- nginx 的基本配置
- Nginx基本配置
- nginx基本配置
- Nginx基本配置讲解
- nginx基本配置整理
- Nginx--基本配置-简介
- nginx基本配置学习
- Qt显示动态gif图片
- 【二分+2-SAT验证】POJ2749[Building roads]题解
- Spring框架注解详解
- 14. 图--最小生成树
- 贪心,Dijkstra(The path,HDU 5385)
- nginx 基本配置
- Nginx安装及nginx+php环境的搭建
- Generic Access Profile (GAP)
- shell 使用用户名,秘钥登录到linux
- 作品集整理参考文档
- Qt之拖放程序
- 15. 图--拓扑排序
- 23种设计模式之——模板方法模式
- 《Java多线程编程核心技术》笔记