zoukankan      html  css  js  c++  java
  • nginx学习笔记1

    Nginx是使用c语言编写的,查看nginx编译时参数的设定  使用nginx -V命令查看

     

    可以使用nginx -h命令查看命令帮助

     

    配置文件中将worker process绑定到cpu的特定内核上, vim /etc/nginx/nginx.conf

    注意worker_cpu_affinity这个参数是对cpu多核的支持,上面表示4个process分别绑定到cpu内核的第1个 第2个 第1个 第2个(这

    个cpu只有两个内核)

     

    如果有4个内核就这样设定

    以此内推 8,16...  这样做可以更好的利用系统资源(不过要注意了,其中一个内核坏掉,很可能是影响nginx性能的元凶)

     

    配置文件中worker_rlimit_nofile这个参数是设定单个worker进程能最多打开多少个文件描述符(应该和ulimit -n的值保持一致,因

    为nginx对用户请求的回答分配到各个worker进程有时是不均衡的),不过像nginx和haproxy这类服务已经会根据自身的需要自动调

    整了worker_rlimit_nofile了

     

    worker_priority这个参数是设置worker process的进程优先级的  范围为[-20 19]数值越小,优先级越高,  可以使用ps axo

    comm,pid,nice命令查看nginx进程优先级(nice值)

    补充:当各个进程运行时,每个进程会在cpu上来回切换运行直到各个进程完成任务,当一个进程在cpu上运行一定时间后(单位是

    ms),cpu会在等待的各个进程队列中调度一遍,使各个进程在cpu上来回切换,优先级越高的队列就会被cpu优先调度,如此这些优

    先级高的进程对cpu的使用越大

    use epoll这个参数不必定义,nginx会自动选择。

     

    定义一台虚拟主机最简单的方式

    root指定根文件路径,server_name指定服务器主机名,listen参数后面的格式为 IP:PORT,此处指定为监听所有网卡地址的80端口,

    server_name后面可跟多个主机名(名称可以使用通配符和正则表达式)

     

    当在 listen 80 后面添加default_server时,在浏览器中输入ip地址,默认就会访问到该虚拟主机,当其它虚拟主机不能被请求到内容时

    使用默认的虚拟主机返回内容

     

    location只能放置于server上下文中,location的配置说明

    上面的定义,访问www.c.com/images/1.jpg-->/data/imgs/images这个目录下寻找1.jpg文件

     

    上面的定义,访问www.c.com/images/1.jpg-->/data/imgs这个目录下找1.jpg文件,不过由于该虚拟主机没有定义root,当访问

    www.c.com会被重定向到default server上,所以root别忘记定义

     

    index可以用在location,server,http中,设定默认搜索主页

     

    在虚拟主机中定义404页,root选项必须有

     

    为指定的uri配置访问控制

     

    为指定的uri提供认证功能

    auth_basic 是取名字,auth_basic_user_file是指定保存用户文件的路径,此文件要借助httpd的htpasswd命令创建,因此还得下

    载httpd

    yum -y install httpd   

    创建/etc/nginx/.passwd

    -c 在头次创建该文件时需添加, -m 指定使用md5加密  tom是创建的用户

     

    stub_status这个参数是nginx的web监控页,在nginx -V 中看到了--with-http_stub_status_module这个选项才能使用此功能

    如果nginx -t 报错,在stub_status后面添加on

    注意上面的location后面的status后面如果加了/则在浏览器中也必须加/,否则会找不到资源

     

    active connections 当前活动连接数,包含了等待服务器发送response的连接

    accepts 服务器总共已经接受的连接数量

    handled 服务器总共已经处理的连接数,通常accepts和handled是相等的,如果不相等则可能是worker_connections受到了限制

    应调大该值,worker_connection定义的是单个worker进程所能处理的最大客户端连接数

    requests 客户端已经发起过的总请求数,requests应该大于accepts,因为一次连接上客户端可以请求多个资源,但关闭了

    keepalive_timeout功能就会使两者相等了

    reading 有多少连接数中nginx正在读取request header

    writing  有多少连接数中nginx正在构建response给请求的客户端

    waiting  开启 keep-alive 的情况下,这个值等于 active – (reading+writing), 意思就是 Nginx 已经处理完正在等候下一次请求指令

    的驻留连接

     

  • 相关阅读:
    call 与 apply
    react-router
    阻止IOS上的弹性滚动
    React规范
    sessionStorage 、localStorage 和 cookie 对比区分
    显式Intent 和隐式 Intent 的区别
    Activity之间传递数据的方式及常见问题总结
    Android横竖屏切换生命周期变化
    String、StringBuilder、StringBuffer 区别
    内存泄漏
  • 原文地址:https://www.cnblogs.com/linuxboke/p/5413410.html
Copyright © 2011-2022 走看看