其一,Nginx不是随随便便一篇博文就能讲清楚的,严谨地说,笔者连入门者都算不上;其二,此文系前段日子里,学习Nginx时的笔记归档类博文,还有诸多不完整处,仅供参考。 写这篇博文的时间点:2019-06-17 22:58,寝室在六楼,刚刚感觉到了地震的余波。
定义:Nginx是一个最初由俄国程序设计师lgor Sysoev开发的高性能的Web服务器和反向代理服务器,用于HTTP/HTTPS/SMTP/POP3和IMAP协议。 特性: 反向代理/负载均衡器 与Apache的区别 Nginx Apache Nginx是一个基于事件的Web服务器 Apache是一个基于流程的服务器 全部请求都由一个线程处理 多线程性。一个线程处理一道请求。 Nginx避免子进程的概念 Apache是基于子进程的 Nginx相似于速度 Apache相似于功率 Nginx在负载均衡方面表现较好(用C编写) Apache在内存消耗和链接上没有提升 Nginx支持PHP,对于PHP来讲,Nginx更可取 当流量达到进程的极限时,Apache将拒绝新的链接 Nginx只具备核心功能 Apache支持的PHP/Python/Perl和其余语言使用插件时,当程序基于Python或Ruby时,很是有用 Nginx的性能和可伸缩性不依赖于硬件 Apache支持更多的OS Apache提供了比Nginx更多的功能 Nginx占用内存小,但并发能力强 Apache依赖于CPU和内存等硬件组件
+ 默认状况下,运行中的nginx会包含:1X主进程(master process)和NX工做进程(worker process) + 主进程 充当监控进程,而主进程生成的子进程则充当工做进程。 主进程充当整个进程组与管理用户的交互接口,同时对进程进行监护。 它不须要处理网络事件,不负责业务执行,只会经过管理worker进程来实现重启服务,关闭服务,配置文件生效等功能 + 工做进程 Nginx子进程充当工做进程,负责完成具体的任务。 子进程主要负责完成用户请求与返回用户数据,以及与后端应用服务器的数据交互等工做。 + Nginx如何处理一道HTTP请求 Nginx接收到请求 首先,根据http请求的“host”头决定由哪一个虚拟机处理请求 而后,匹配请求的URI,并根据URI定义规则返回数据。
"/etc/nginx/"php
/etc/nginx
/etc/nginx/nginx.conf
/etc/nginx/conf.d
/etc/nginx/conf.d/default.confhtml
/etc/nginx/fastcgi_params
/etc/nginx/scgi_params
/etc/nginx/uwsgi_paramsnginx
/etc/nginx/koi-utf
/etc/nginx/koi-win
/etc/nginx/win-utfapache
/etc/nginx/mime.types后端
ngx_http_core_module 主要负责Nginx全局应用,针对主配置文件Main区块和Events区块
ngx_http_access_module 访问控制模块,用来控制网站用户对Nginx的访问
ngx_http_gzip_module 压缩模块,对Nginx返回的数据压缩,属于性能优化模块
ngx_http_fastcgi_module FastCGI模块,和动态应用相关的模块,例如php
ngx_http_proxy_module proxy代理模块
ngx_http_upstream_module 负载均衡模块,可实现网站的负载均衡功能及节点的健康检查
ngx_http_rewrite_module URL地址重写模块
ngx_http_limit_conn_module 限制用户并发链接数及请求模块
ngx_http_limit_req_module 根据定义的key限制Nginx请求过程的速率
ngx_http_log_module 访问日志模块,以指定的格式记录Nginx客户访问日志等信息
ngx_http_auth_basic_module Web认证模块,设置Web用户,经过帐户,密码访问Nginx
ngx_http_ssl_module SSL模块,用于加密的HTTP链接,如:HTTPS
ngx_http_stub_status_module 记录Nginx基本访问状态信息等的模块tomcat
sudo apt-get install nginx whereis nginx # 查看Nginx相关文件目录
sudo nano /etc/nginx/sites-available/default # root /var/www/html; root /home/jame/www;
sudo service nginx start #启动 sudo /usr/local/nginx/nginx #启动 sudo service nginx restart #重启 sudo nginx quit #关闭,从容关闭
ps -ef | grep nginx