Nginx初识

Nginx

nginx是一个开源的,支持高性能,高并发的www服务和代理服务软件。它是一个俄罗斯人lgor sysoev开发的,作者将源代码开源出来供全球使用。
nginx比它大哥apache性能改进许多,nginx占用的系统资源更少,支持更高的并发连接,有更高的访问效率。
nginx不但是一个优秀的web服务软件,还可以作为反向代理,负载均衡,以及缓存服务使用。
安装更为简单,方便,灵活。
nginx可以说是非常nb了

Nginx优点

支持高并发,能支持几万并发连接
资源消耗少,在3万并发连接下开启10个nginx线程消耗的内存不到200M
可以做http反向代理和负载均衡
支持异步网络i/o事件模型epoll

web服务器和web框架的关系

web服务器(nginx):接收HTTP请求(例如www.baidu.com)并返回数据

web框架(django,flask):开发web应用程序,处理接收到的数据

安装环境准备

一. gcc 安装

	
	安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装:
	
	yum install gcc-c++



二. PCRE pcre-devel 安装

	PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。nginx也需要此库。命令:

	yum install -y pcre pcre-devel
	
	
三. zlib 安装

	zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库。

	yum install -y zlib zlib-devel
	
	
四. OpenSSL 安装

	OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。
	nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http),所以需要在 Centos 安装 OpenSSL 库。
	
	yum install gcc patch libffi-devel python-devel  zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel openssl openssl-devel -y

安装,启动nginx

# [root@david /]# cd opt/
1. 下载源码包
	wget -c https://nginx.org/download/nginx-1.12.0.tar.gz

2. 解压缩源码	
	tar -zxvf nginx-1.12.0.tar.gz

3. 编译三部曲

	第一曲:指定安装路径 
		./configure --prefix=/opt/tbnginx/
	第二曲:开始编译,生成makefile
		make 
	第三曲:开始安装 
		make install  

4. 启动nginx,配置nginx的环境变量

	需要把PATH写入:vim /etc/profile #每次开机都加载 
	PATH="/opt/python367/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/tbnginx/sbin"
	
	手动读取,让PATH生效
		source /etc/profile 

5. 启动nginx,检查进程,端口

	直接输入nginx命令,第一次是启动nginx
	nginx -s stop  #停止
	nginx -s reload  #平滑重启,不停止进程,重新读取配置文件 
	nginx  -t  #检测nginx.conf语法是否正确,更安全

Nginx的目录结构

[root@david tbnginx]# ls
client_body_temp  fastcgi_temp  logs        sbin       uwsgi_temp
conf              html          proxy_temp  scgi_temp


conf 存放nginx所有配置文件的目录,主要nginx.conf
html 存放nginx默认站点的目录,如index.html、error.html等
logs 存放nginx默认日志的目录,如error.log access.log
sbin 存放nginx主命令的目录,sbin/nginx

conf配置文件下的主配置文件Nginx.conf

Nginx主配置文件/etc/nginx/nginx.conf是一个纯文本类型的文件,整个配置文件是以区块的形式组织的。一般,每个区块以一对大括号{}来表示开始与结束。

CoreModule核心模块

user www;                       #Nginx进程所使用的用户
worker_processes 1;             #Nginx运行的work进程数量
								(建议与CPU数量一致或auto)
error_log /log/nginx/error.log  #Nginx错误日志存放路径
pid /var/run/nginx.pid          #Nginx服务运行后产生的pid进程号

events事件模块

events {            
	worker_connections  //每个worker进程支持的最大连接数
	use epool;          //事件驱动模型, epoll默认
}

http内核模块

//公共的配置定义在http{}
http {  //http层开始
...    
	//使用Server配置网站, 每个Server{}代表一个网站(简称虚拟主机)
	'server' {
		listen       80;        //监听端口, 默认80
		server_name  localhost; //提供服务的域名或主机名
		access_log host.access.log  //访问日志
		//控制网站访问路径
		'location' / {
			root   /usr/share/nginx/html;   //存放网站代码路径
			index  index.html index.htm;    //服务器返回的默认页面文件
		}
		//指定错误代码, 统一定义错误页面, 错误代码重定向到新的Locaiton
		error_page   500 502 503 504  /50x.html;
	}
	...
	//第二个虚拟主机配置
	'server' {
	...
	}
	
	include /etc/nginx/conf.d/*.conf;  //包含/etc/nginx/conf.d/目录下所有以.conf结尾的文件

}   //http层结束
希望你眼眸有星辰,心中有山海,从此以梦为马,不负韶华
原文地址:https://www.cnblogs.com/daviddd/p/12069773.html