比较早的时候  web主要经典组合--->LAMP

近几年---->nginx后来居上--->LNMP=LEMP   Nginx = Engine x

Nginx和Apache 都是对静态网页进行展示一个平台

如果想要解析动态的网页--->php--->php引擎

Nginx和Apache 调用使用PHP时完全不同的

一、Nginx的简介

1)Nginx  = Engine X ,俄罗斯人发明,开源的www服务软件, 780K+

2)Nginx本身是一款静态(Html,css,js,jgp等等)www软件

3)特点: 和Apache在静态网页处理上  处理静态小文件(1M)高并发更占优势

同时占用的资源少    3W并发(PV IP UV)10个线程 只消耗150M内存

4)Nginx使用在多平台: Unix  Linux Windows等都可以

类Unix--->IOS系统(Cisco)

Linux系统---->Android

         BSD

二、Nginx的功能

a) 可以用于web服务 支持www  --->LNMP环境

b)负载均衡(反向代理)

c)web cache (web缓存)--->varnish

三、Nginx的优点:

1.配置简单,灵活

2.高并发(静态小文件),静态1-3W

3.占用的资源少,  3W并发--->10个线程--->消耗100+多内存

4.功能种类很多(web  负载/代理  cache)  但是每一个功能都不是最好的

5.支持epoll模型,---->使用nginx支持高并发的核心

6.Nginx配置动态服务和apache 有区别的

7.利用Nginx 对IP进行限速,可以限制连接数

web网站实际最大链接   同时允许多少用户链接

当Nginx收到web请求  分辨动静  如果是静态web--->自己处理

如果是动态---> 把请求发送给PHP服务器处理

四、LAMP 和LNMP的实现原理架构

面试题: 请问apche和Nginx运行使用php时有什么区别

Apache 是模块化---结合在一起的

Nginx是服务化 --- 独立的

五、Nginx的应用场景:

1.静态服务器(图片 视频等业务),html  js  css  .flv等  并发达到3W

Apche竞争

2.动态服务器 Nginx是利用FastCGI的方式运行PHP,JSP    并发数:500-1500

Apache+php竞争

3.反向代理 负载均衡

日PV(浏览量 刷新一次增加一次)2000W一下  都可以使用nginx做代理

Haproxy  F5 A10都可以做负载/反向代理

4.缓存服务

Squid  Varnish

六、Nginx和其他主流的web服务器 进行对比

1)Apache

1)2.2版本非常稳定 强大的版本

2.4性能更强--->官方网站(手册)--->apr部署

2)prefork模式取消了进程创建开销,性能更高

prefork使用进程  worker使用线程(更稳定)

3)处理动态业务数据时,因为关联到后端的引擎和数据库,瓶颈不在于apache本身, 在于PHP引擎和数据大小

4)高并发消耗资源相对多一些

5)基于传统的select模式

6)非常多的扩展库,通过Apxs插入

2)Nginx

基于异步IO模型(epoll模型),性能强,支持上完高并发

对小文件支持--静态

代码更优美  扩展库必须编译到主程序中

消耗资源少

3)Lighttpd(贴吧 豆瓣--python编写的)

基于异步IO模型,性能和Nginx相仿

扩展库比Nginx更灵活安装

安全性不高

通过插件可以实现URL加密

网站www.baidu.com

我把自己的ip网站---->嫁接到www.baidu.com上--->访问百度就是访问我

dan给处理动态数据   三者差距不到 apache 更具备优势

php一般支持的并发量---300-1000之间

Java                               500-1300之间

为什么Nginx总体性能比apache高?

1.Nginx使用最新的epoll模型和kqueue的网络IO模型

Apache 使用传统的select模型

2.目前Linux下能够承受高并发访问squid  memcache--->都使用epoll模型

处理连续的大量的读写

Select----> 每个请求  挨个尝试找到对应 的服务

Epoll   告诉每个请求 服务在哪 自己去寻找响应

如何选择WEB服务器:

静态业务:高并发、采用nginx,lighttpd,根据自己的掌握程度或公司的要求。

动态业务:采用nginx和Apache均可。

既有静态业务又有动态业务:nginx或Apache,不要多选要单选。

动态业务可以由前端代理(haproxy),根据页面元素的类型,向后转发相应的服务器进行处理。

思想:我们工作都不要追求一步到位,满足需求的前提下,先用,然后逐步完善。

提示:nginx做web(Apache,lighttpd)、反向代理(haproxy,lvs,nat)及缓存服务器(squid)也是不错的。

最终建议:对外的业务nginx,对内的业务Apache(yum httpd mysql-server php)。

Apache制作虚拟主机---->标签<VirtualHost> </VirtualHost>

Nginx制作虚拟主机 ----> 标签  server {}

七、Nginx实战部署---->源码编译

现在官网:http://nginx.org/en/download.html

1)下载  解压  部署

./configure --prefix=/applicaiton/nginx-1.12.2 --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module

会出现问题:

1.缺c语言的编译环境

2.缺少缺少openssl库和缺少pcre库

解决:

安装 gcc gcc-c++ openssl-devel prce-devel

make  && make install

2)启动与测试Nginx

需要创建nginx用户

useradd -s /sbin/nologin -M nginx

否则会出现[emerg] getpwnam("nginx") failed

Nginx-入门(源码编译安装http://nginx.org/en/download.html)的更多相关文章

  1. [nginx] 从源码编译安装NGINX

    nginx通过rpm包进行的安装和配置: [web][nginx] 初识nginx -- 使用nginx搭建https DPI解码测试环境 现在,要通过源码进行安装. 参考:https://nginx ...

  2. Centos7通过yum跟源码编译安装Nginx

    源码编译安装 http://nginx.org/en/download.html 到官网下载,然后用XFTP上传到root目录 把文件解压出来 tar -zxvf nginx-1.16.0.tar.g ...

  3. Linux系统 - 源码编译安装Nginx

    什么是Nginx? Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器,在高连接并发的情况下N ...

  4. Nginx 最新版源码编译安装 包含常用模块作用及所需依赖

    第一部分 Nginx最新版源码编译安装 1. 使用的模块 模块1:http_rewrite_module 基于正则匹配来实现重定向.依赖PCRE库,见依赖1 模块2:http_gzip_module ...

  5. CentOS7 源码编译安装Nginx

    源码编译安装nginx     1.下载nginx源码包(这里以nginx-1.18.0为例) wget http://nginx.org/download/nginx-1.18.0.tar.gz 2 ...

  6. 源码编译安装nginx及设置开机启动项

    1.上传nginx文档:解压到/data目录下,并安装依赖包tar xf nginx-1.20.1.tar.gz -C /data/cd /data/nginx-1.20.1/ && ...

  7. 小D课堂 - 零基础入门SpringBoot2.X到实战_第9节 SpringBoot2.x整合Redis实战_38、源码编译安装Redis4.x

    笔记 2.源码编译安装Redis4.x     简介:使用源码安装Redis4.x和配置外网访问 1.快速安装  https://redis.io/download#installation      ...

  8. Dubbo入门到精通学习笔记(十九):MySQL源码编译安装、MySQL主从复制的配置

    文章目录 MySQL 源码编译安装(CentOS-6.6+MySQL-5.6) 一.服务器配置: 二.源码安装 MySQL5.6.26: MySQL主从复制的配置 环境 依赖课程 MySQL 主从复制 ...

  9. Centos7源码编译安装PHP7.2(生产环境)

    安装PHP依赖包,否则在编译的过程中可能会出现各种报错 # Centos 安装epel-release源并将系统包更新到最新版本 $ yum install epel-release-y $ yum ...

随机推荐

  1. [梁山好汉说IT] 区块链在梁山的应用

    [梁山好汉说IT] 区块链在梁山的应用 0x00 摘要 区块链属于一种去中心分布式数据存储系统,有其擅长的应用场景,也有其缺点. 下面用梁山为例来阐释下区块链部分概念&应用. 0x01 梁山好 ...

  2. 洛谷p2149----两个终点和两个起点,最短路最大交汇长度!!!

    说实话,这题真第一次见,学到了不少有趣的东西,因吹丝汀!! 思路:因为不可能同时并行和相遇(我也不知道为啥,等我会证明了就来说说) 所以正向建边再反向建边,拓扑排序+dp求最下长路,记录下最大的就是解 ...

  3. ArrayList中删除null元素效率比较

    package test; import java.util.ArrayList; import java.util.Collections; import java.util.Iterator; i ...

  4. Autofac总结

    Autofac 介绍|术语 控制反转:IOC和DI IOC 调用者不再创建(不自己new)被调用者的实例,而是交给容器去创建(AutoFac就充当这里的容器),这就是控制反转 控制反转中引入的第三方对 ...

  5. 20行Python代码爬取王者荣耀全英雄皮肤

    引言王者荣耀大家都玩过吧,没玩过的也应该听说过,作为时下最火的手机MOBA游戏,咳咳,好像跑题了.我们今天的重点是爬取王者荣耀所有英雄的所有皮肤,而且仅仅使用20行Python代码即可完成. 准备工作 ...

  6. linux dubbo-admin-2.6.0 环境搭建

    1.去maven官网下载apache-maven-3.6.2-bin.tar.gz安装包 2.上传至linux服务器中 3.解压maven安装包 tar -zxvf apache-maven-3.6. ...

  7. awsl

    from enum import Enum, uniquefrom math import sqrtfrom random import randint import pygame @uniquecl ...

  8. 「洛谷P1343」地震逃生 解题报告

    P1343 地震逃生 题目描述 汶川地震发生时,四川XX中学正在上课,一看地震发生,老师们立刻带领x名学生逃跑,整个学校可以抽象地看成一个有向图,图中有n个点,m条边.1号点为教室,n号点为安全地带, ...

  9. 「算法竞赛进阶指南」0x01 最短Hamilton路径 解题报告

    题目在这里啊题目在这里~ Hamilton路径:将所有点都遍历刚好一次的路径 思路: 数据范围比较小(1~20),所以我们可以考虑暴力中的枚举 数组f[i][j]​ i的二进制表示选取了哪些点 j表示 ...

  10. Codeforces Round #519 by Botan Investments(前五题题解)

    开个新号打打codeforces(以前那号玩废了),结果就遇到了这么难一套.touristD题用了map,被卡掉了(其实是对cf的评测机过分自信),G题没过, 700多行代码,码力惊人.关键是这次to ...