Nginx基础知识入门

nginx目录文件讲解

conf #所有配置文件目录
    nginx.conf #默认的主要的配置文件
    nginx.conf.default #默认模板
    
html # 这是编译安装时Nginx的默认站点目录
    50x.html #错误页面
    index.html #默认首页
    
常见命令
logs # nginx默认的日志路径,包括错误日志及访问日志
    error.log #错误日志
    nginx.pid #nginx启动后的进程id
    access.log #nginx访问日志

sbin #nginx命令的目录
    nginx #启动命令

 常⻅命令

./nginx  #默认配置文件启动
​
./nginx -s reload #重启,加载默认配置文件
​
./nginx -c /usr/local/nginx/conf/nginx.conf #启动指定某个配置文件
​
./nginx -s stop #停止
​
#关闭进程,nginx有master process 和worker process,关闭master即可
ps -ef | grep "nginx" 
kill -9 PID 

简单讲解配置文件

worker_process      # 表示工作进程的数量,一般设置为cpu的核数

worker_connections  # 表示每个工作进程的最大连接数

server{}            # 块定义了虚拟主机

    listen          # 监听端口

    server_name     # 监听域名

    location {}     # 是用来为匹配的 URI 进行配置,URI 即语法中的“/uri/”

    location /{}    # 匹配任何查询,因为所有请求都以 / 开头

        root        # 指定对应uri的资源查找路径,这里html为相对路径,完整路径为
                    # /opt/nginx-1.7.7/html/

        index       # 指定首页index文件的名称,可以配置多个,以空格分开。如有多
                    # 个,按配置顺序查找。

 默认配置文件讲解

# 每个配置项由配置指令和指令参数 2 个部分构成
#user  nobody;  # 指定Nginx Worker进程运行以及用户组
worker_processes  1;   # 表示工作进程的数量,一般设置为cpu的核数
​
#error_log  logs/error.log;  # 错误日志的存放路径  和错误日志 日志级别
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
​
#pid        logs/nginx.pid;   # 进程PID存放路径
​
​
# 事件模块指令,用来指定Nginx的IO模型,Nginx支持的有select、poll、kqueue、epoll 等。不同的是epoll用在Linux平台上,而kqueue用在BSD系统中,对于Linux系统,epoll工作模式是首选
events { 
    use epoll;
  # 定义Nginx每个进程的最大连接数, 作为服务器来说: worker_connections * worker_processes,
  # 作为反向代理来说,最大并发数量应该是worker_connections * worker_processes/2。因为反向代理服务器,每个  并发会建立与客户端的连接和与后端服务的连接,会占用两个连接
    worker_connections  1024; 
}
​
​
​
​# 编译安装时的nginx默认站点目录,支持反向代理和负载均衡
http {
    include       mime.types;
    default_type  application/octet-stream;
    # 自定义服务日志
    #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;
​
    # 是否开启高效传输模式 on开启 off关闭
    sendfile        on;
    
    # 减少网络报文段的数量
    #tcp_nopush     on;
​
    #keepalive_timeout  0;
    # 客户端连接保持活动的超时时间,超过这个时间之后,服务器会关闭该连接
    keepalive_timeout  65;
​
	# gzip压缩开关
    #gzip  on;
    
    # 虚拟主机的配置
    server {
        listen       80; # 虚拟主机的服务端口
        server_name  localhost; # 用来指定IP地址或域名,多个域名之间用空格分开
​
		#编码格式
        #charset koi8-r;
​
        #access_log  logs/host.access.log  main;
​
        # URL地址匹配
        location / {
            root   html;  # 服务默认启动目录
            index  index.html index.htm; # 默认访问文件,按照顺序找
        }
​
        #error_page  404              /404.html;   # 错误状态码的显示页面
​
        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
			# 指向webapp的目录
            root   html;
        }
​
        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        # 反向代理的路径
        #location ~ \.php$ {
			 # 应用服务器HTTP地址
        #    proxy_pass   http://127.0.0.1;
        #}
​
        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}
​
        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        # 禁止访问 .htxxx 文件
        #location ~ /\.ht {
        #    deny  all;
        #}
    }
​
​
    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;
​
    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}
​
​
    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;
​
    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;
​
    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;
​
    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;
​
    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}
}

图片配置

server {
        listen       80;
        server_name  localhost;
        location /app/img {
          # 图片目录地址
          alias /usr/local/software/img/;
        }
  }

accessLog日志

access.log日志用处

  • 统计站点访问ip来源、某个时间段的访问频率
  • 查看访问最频的页面、Http响应状态码、接口性能
  • 接口秒级访问量、分钟访问量、小时和天访问量
log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "$http_x_forwarded_for"';
# log名称  log目录 使用的模板
access_log  logs/access.log  main;

参数解释

$remote_addr 客户端的IP。
$remote_user 远程用户
[$time_local]访问时间,格式:[04/Aug/2020:14:46:48 +0800]。
“$request”  请求头。
$status 返回状态码,200为正常。
$body_bytes_sent 对应的是48字节,即响应body的大小。
“$http_referer” 访问域名,没有则返回"-"。
“$http_user_agent” 访问浏览器,"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:56.0) Gecko/20100101 Firefox/56.0"。
“$http_x_forwarded_for” 对应的是”-“或者空。

 查看日志 awk命令

linux命令 查看前十条访问量和访问ip

awk '{print $1}' access_temp.log | sort -n |uniq -c | sort -rn | head -n 100

统计访问量最多的url

cat access_temp.log |awk '{print $7}'| sort|uniq -c| sort -rn| head -20 | more
sort命令用于将文本文件内容加以排序,-n 按照数值排,-r 按照倒序来排
  案例的sort -n 是按照第一列的数值大小进行排序,从小到大,倒序就是 sort -rn
uniq 去除重复出现的行列, -c 在每列旁边显示该行重复出现的次数。

 自定义日志统计接口性能

$request_time:接口响应耗时

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                     '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for" $request_time';
​
​
server {
        listen       80;
        server_name  localhost;
​
        location / {
            root   /usr/local/nginx/html;
            index  index.html;
        }
        #charset koi8-r;
        #
        access_log  logs/host.access.log  main;
}

统计耗时接口, 列出传输时间超过 2 秒的接口,显示前5条

cat time_temp.log|awk '($NF > 2){print $7}'|sort -n|uniq -c|sort -nr|head -5

$NF 表示最后一列, awk '{print $NF}'

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hikktn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值