博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Nginx-入门(源码编译安装http://nginx.org/en/download.html)
阅读量:5020 次
发布时间:2019-06-12

本文共 2697 字,大约阅读时间需要 8 分钟。

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

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

NginxApache 都是对静态网页进行展示一个平台

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

NginxApache 调用使用PHP时完全不同的

一、Nginx的简介

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

2)Nginx本身是一款静态(Htmlcssjsjgp等等)www软件

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

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

4Nginx使用在多平台: 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的实现原理架构

面试题: 请问apcheNginx运行使用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服务器:

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

动态业务:采用nginxApache均可。

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

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

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

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

最终建议:对外的业务nginx,对内的业务Apacheyum 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

 

转载于:https://www.cnblogs.com/lovedairan/p/9914165.html

你可能感兴趣的文章
Proxy
查看>>
总结eclipse中安装maven插件
查看>>
Win7安装Oracle Instantclient ODBC驱动 后配置DSN时出错的解决办法 SQORAS32
查看>>
文献如何导入到EndNote
查看>>
手机页面的转换
查看>>
soe结果为栅格的处理方式
查看>>
Limit参数优化MySQL查询的方法
查看>>
5月21日 会话控制
查看>>
BZOJ 4116[WorldFinal2015]Tours
查看>>
BZOJ 3162 独钓寒江雪
查看>>
Summary: Merge Sort of Array && 求逆序对
查看>>
springcloud9----feign-client-without-hystrix
查看>>
angularjs 工具方法
查看>>
python 从2个文件中提取不相同的内容并输出到第三个文件中
查看>>
jQuery学习笔记之基础
查看>>
ASP.NET MVC 实现页落网资源分享网站+充值管理+后台管理(开篇)
查看>>
洛谷 P3199 [HNOI2009]最小圈
查看>>
Error: failed to execute 'C:\Keil\ARM\ARMCC'的解决办法
查看>>
AngularJS开发下一代Web应用_AngularJS简介(1)
查看>>
MikroTik-ROS-无线设备传输距离
查看>>