Nginx教程[归档]

摘要:
首先,Nginx不能用博客文章轻易解释。严格来说,作者甚至不是初学者;其次,几天前Nginx learning的笔记归档博客中的这篇文章有很多不完善之处,仅供参考。

前言

其一,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工作原理

	+ 默认情况下,运行中的nginx会包含:1X主进程(master process)和NX工作进程(worker process)
	+ 主进程
		充当监控进程,而主进程生成的子进程则充当工作进程。
		主进程充当整个进程组与管理用户的交互接口,同时对进程进行监护。
		它不需要处理网络事件,不负责业务执行,只会通过管理worker进程来实现重启服务,关闭服务,配置文件生效等功能
	+ 工作进程
		Nginx子进程充当工作进程,负责完成具体的任务。
		子进程主要负责完成用户请求与返回用户数据,以及与后端应用服务器的数据交互等工作。
	+ Nginx如何处理一道HTTP请求
		Nginx接收到请求
		首先,根据http请求的“host”头决定由哪个虚拟机处理请求
		然后,匹配请求的URI,并根据URI定义规则返回数据。

Nginx目录解析

"/etc/nginx/"

  • conf.d/
  • fastcgi_params
  • koi-win
  • nginx.conf
  • scgi_params
  • sites-enabled/
  • uwsgi_params
  • fastcgi.conf
  • koi-utf
  • mime.types #媒体类型
  • proxy_params
  • sites-available/
  • snippets/
  • win-utf

分类对目录说明

Nginx主配置文件/目录 | 配置文件

/etc/nginx
/etc/nginx/nginx.conf
/etc/nginx/conf.d
/etc/nginx/conf.d/default.conf

CGI配置相关 fastcgi | 配置文件

/etc/nginx/fastcgi_params
/etc/nginx/scgi_params
/etc/nginx/uwsgi_params

编码转换映射转化文件 | 配置文件

/etc/nginx/koi-utf
/etc/nginx/koi-win
/etc/nginx/win-utf

设置HTTP协议的Content-Type与扩展名对应关系:返回数据的类型 | 配置文件

/etc/nginx/mime.types

Nginx功能模块说明

Core

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基本访问状态信息等的模块

配置Nginx代理HTTP请求到Apache Tomcat


安装Nginx

	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 							#关闭,从容关闭

查看Nginx开启的进程

	ps -ef | grep nginx

重定向

免责声明:文章转载自《Nginx教程[归档]》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇linux查看某个进程的线程id(spid)Linux 根目录所在分区被脏数据占满下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

com.aliyun.openservices.shade.com.alibaba.fastjson.JSONException: exepct '[', but {, pos 1, line 1, column 2

错误报告的原因:您放置了一个非List对象,但希望从packagetest中取出List对象;导入java.text。SimpleDateFormat;导入java.util。阵列列表;导入java.util。日期导入java.util。列表importcom.alibaba.fastjson。JSON;导入com.alibaba.fastj...

用python调用caffe时出错:AttributeError: 'module' object has no attribute 'bool_'

下面给出了一个解决方案,即重命名冲突的io文件:numpyと PyCaffe公司が io。年が 竞争す る よ で す$ pythonclassify。py--raw_scale255~/caffe/101_ObjectCategories/airaires/image_0001.jpg../result.npyTraceback:文件“classif.py...

jquery跨域请求数据

Jquery跨域请求数据Jquery跨请求数据。事实上,这很容易。请遵循以下步骤:首先,编写js,通过get获取远程数据。请注意,回调参数应添加在链接之后,这意味着将回调函数地址传输到远程页面。',{params},函数cb{alert;alert;},'json');第二:编写处理程序。publicvoidProcessRequest{context.Re...

pycharm最新版本激活码(永久有效) python安装教程

输入python以查看当前版本的python。您可以输入“print'helloworld”并单击下载以启动PyCharm://pan.baidu.com//1eVdm4dUPKn3ZY_Xj kqNXw提取代码:l83f2,下载破解补丁(版本2018.3.5)下载链接至地址:...

vue 获取元素高度

1、html2、JavaScript//获取高度值(内容高+padding+边框)letheight=this.$refs.getheight.offsetHeight;//获取元素样式值(存在单位)letheight=window.getComputedStyle(this.$refs.getheight).height;//获...

为什么运行CMD后,一闪就不见了 解决方案

方法1:如果您中毒,系统中的一个进程正在监视您的命令。如果您看到CMD,可以关闭它。您可以检查任务管理中是否有流程。如果你关闭它,你应该可以打开它。如果没有,则说明已注入系统进程。很难杀死病毒。方法2:注册表:HKEY_LOCAL__清除MACHINE Software Microsoft CommandProcessor AutoRun中的值,即删除带有d...