关于nginx:Nginx-进程模型概述
倒退Nginx 的开发始于 2002 年,由 Igor Sysoev 发动,最后是为了解决 C10K 问题,即如何让一个服务器同时解决超过一万个客户端连贯。 第一个公开版本公布于 2004 年 10 月。自此,Nginx 此开始了它的疾速倒退。Nginx 目前是世界上应用最多的 Web 服务器之一,依据 Netcraft 的统计,截至 2024 年 2 月,Nginx 占据了寰球 Web 服务器市场的 32.8% 的份额,仅次于 Apache。 装置与治理支流 Linux 发行版的包管理工具都反对下载 nginx,这里以 Manjaro 为例: sudo pacman -S nginxNginx 可通过-s参数响应一些自带的信号,比方: stop:立刻敞开quit:失常敞开reload:从新加载配置文件reopen:从新关上日志文件例如,当咱们在etc/nginx/conf.d中批改配置文件增加 Web 服务时,改变内容并不会间接失效,须要咱们重启 nginx 服务或者应用-s reload指令传递从新加载配置文件的信号。 此外,咱们能够通过systemctl等指令治理本地的 Nginx 服务,比方最常见的查看 Nginx 状态的指令: systemctl status nginxNginx配置文件构造在正式介绍之前,我想要先从 nginx 配置文件动手,这可能会更加便于了解,毕竟配置文件是咱们接触 nginx 最间接的中央。 Linux 下 nginx 配置文件的默认地位是在/etc/nginx/nginx.conf,这里先举一个简略的例子: # 全局块user nobody; # 指定运行nginx服务的用户和用户组worker_processes 1; # 指定工作线程数error_log logs/error.log; # 指定谬误日志的门路和级别pid logs/nginx.pid; # 指定pid文件的门路# events块events { worker_connections 1024; # 指定每个工作过程能够同时开启的最大连接数}# http块http { # http全局块 include mime.types; # 引入MIME-Type定义文件 default_type application/octet-stream; # 设置默认的MIME-Type sendfile on; # 开启sendfile传输文件的优化 keepalive_timeout 65; # 设置连贯超时工夫 # server块 server { # server全局块 listen 8000; # 监听8000端口 server_name localhost; # 设置虚拟主机的名称 # location块 location / { root html; # 设置根目录的门路 index index.html index.htm; # 设置默认的首页文件 } # location块 location /images { root /data; # 设置图片资源的门路 autoindex on; # 开启目录浏览性能 } # location块 location ~ \.php$ { root html; # 设置PHP文件的门路 fastcgi_pass 127.0.0.1:9000; # 设置PHP-FPM的地址和端口 fastcgi_index index.php; # 设置默认的PHP文件 fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; # 设置PHP脚本的残缺门路 include fastcgi_params; # 引入fastcgi的配置文件 } }}全局块:从开始到events块之间的局部,次要设置一些影响 nginx 服务器整体运行的配置指令,例如user,worker_processes,error_log,pid等。events块:波及的指令次要影响 nginx 服务器与用户的网络连接,例如worker_connections,accept_mutex,multi_accept,use等。http块:蕴含http全局块和多个server块,代理、缓存和日志定义等绝大多数的性能和第三方模块的配置都能够放在这个块中。http全局块是不蕴含在server块中的局部,次要设置一些影响http协定的配置指令,例如include,default_type等。server块是虚拟主机的配置,每个server块能够蕴含server全局块和多个location块。server全局块是不蕴含在location块中的局部,次要设置一些影响虚拟主机的配置指令,例如listen,server_name等。location块是 URL 匹配的配置,每个location块能够蕴含一些针对特定申请的解决规定,例如root,index,proxy_pass等。从不便了解的角度,每个server块就对应一个利用,而location能够了解为利用对应的路由。个别状况下,咱们想要在本人的服务器中新增某个 Web 利用配置,就在http块中增加server块即可。 ...