nginx所有的功能都是通过nginx.conf配置文件定义的
修改配置参数,就实现了不同的功能
1.使用nginx配置一个站点,进行访问,例如index.html
2.学习nginx.conf中的配置
nginx的路径匹配功能
server块下location 定义匹配的路径
#匹配 网络地址/ 的路径
location / {
#网页根目录是nginx文件夹下的html文件夹
root html;
index index.html ;
}
#匹配路径为 网络路径/pic/...
location /pic {
#通过alias别名参数,定义访问文件路径
alias /opt/tngx231/pic;
#路径为32.106.3.244:80/pic/ 时访问的默认文件
index 1.jpg;
}
nginx的禁止访问功能
每个location块中 deny设置拒绝访问的ip
location / {
#决绝访问,192.168.16.0网段的同学都无法访问 /24是子网掩码的意思
deny 192.168.16.0/24;
root html;
index index.html index.htm;
}
错误码返回页面功能
在每个server中
#指定错误代码,重定向到新的locaiton
error_page 404 500 502 503 504 /50x.html;
location /50x.html {
root html;
}
多虚拟主机功能,一个nginx下运行多个网址
通过编写多个server标签实现多虚拟主机
#虚拟主机1:
server {
# 监听的端口
listen 80;
#匹配域名1
server_name www.zhuji1.com;
#这里进行路径匹配
location / {
#root定义网页根目录
root /opt/zhuji1/html;
#index 定义网站首页文件名
index index.html;
}
}
#虚拟主机2
server {
#监听81端口
listen 81;
#匹配域名2
server_name www.s20lol.tv;
#这里进行路径匹配
location / {
#定义网站首页根目录
root /opt/zhuji2/html;
index index.html;
}
}
就可以做到,不同的域名访问同一个ip的不同端口
nginx的错误日志功能
设置错误日志存储路径
#error_log logs/error.log;
全局错误日志记录级别,级别越高记录的信息越少。debug>info>notice>warn>error>crit
#error_log logs/error.log notice;
日志pipe功能使用独立进程打印日志,不会阻塞worker进程,worker进程与独立日志进程间通过pipe进行通讯,rollback功能依赖日志pipe功能,提供基于tengine自身的日志回滚功能,支持,按照时间间隔、文件大小进行回滚,并支持配置,backup文件的个数。日志回滚模块会按照配置的条件将log文件rename成backup文件,然后重新写新日志文件
interval:日志回滚间隔
baknum backup文件保留个数
log文件的最大size
#error_log "pipe:rollback logs/error_log interval=1d baknum=7 maxsize=2G";
nginx的访问日志功能
找到http{}代码块
$remote_addr与$http_x_forwarded_for用以记录客户端的ip地址;
$remote_user:用来记录客户端用户名称;
$time_local: 用来记录访问时间与时区;
$request: 用来记录请求的url与http协议;
$status: 用来记录请求状态;成功是200,
$body_bytes_sent :记录发送给客户端文件主体内容大小;
$http_referer:用来记录从那个页面链接访问过来的;
$http_user_agent:记录客户浏览器的相关信息;
通常web服务器放在反向代理的后面,这样就不能获取到客户的IP地址了,通过$remote_add拿到的IP地址是反向代理服务器的iP地址。反向代>理服务器在转发请求的http头信息中,可以增加x_forwarded_for信息,用以记录原有客户端的IP地址和原来客户端的请求的服务器地址。
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
#定义本虚拟主机的访问日志存储路径
access_log logs/access.log main;
# interval:日志回滚间隔 baknum:backup文件保留个数 maxsize:日志文件最大占用内存
#access_log "pipe:rollback logs/access_log interval=1d baknum=7 maxsize=2G" main;
3.nginx的启停命令
启动
nginx
停止
nginx -s stop
平滑加载,不重启nginx,重新读取配置文件
nginx -s reload
4.linux的压测命令
1.安装ab命令
yum -y install httpd-tools
2.使用ab压测命令
-n :requests执行的请求数
-c :concurrency 请求并发数。
-k :启用HTTP KeepAlive功能,即在一个HTTP会话中执行多个请求。
ab -kc 1000 -n 100000 http://目标地址/
5.nginx的状态模块功能,检查请求连接数
找到nginx.conf然后再找到一个虚拟主机server标签,添加如下配置即可
location /status {
#开启nginx状态功能
stub_status on;
}
然后执行压测命令,统计网站的请求数
ab -kc 1000 -n 100000 http://目标地址/