• 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层结束
    希望你眼眸有星辰,心中有山海,从此以梦为马,不负韶华
  • 相关阅读:
    PHP面向对象——三大基本特性与五大基本原则
    PHP面向对象——GD库实现图片水印和缩略图
    php系统函数-----数组函数
    PHP面向对象(OOP)----分页类
    郑军学长-解决SVN访问慢[密]
    如何减少换页错误?
    什么是正则表达式?
    MFC通过ADO操作Access数据库(详细)
    xml 转义特殊字符 如&'"
    MFC操作串口,详细
  • 原文地址:https://www.cnblogs.com/daviddd/p/12069773.html
Copyright © 2020-2023  润新知