Nginx-入门(源码编译安装http://nginx.org/en/download.html)
比较早的时候 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)的更多相关文章
- [nginx] 从源码编译安装NGINX
nginx通过rpm包进行的安装和配置: [web][nginx] 初识nginx -- 使用nginx搭建https DPI解码测试环境 现在,要通过源码进行安装. 参考:https://nginx ...
- Centos7通过yum跟源码编译安装Nginx
源码编译安装 http://nginx.org/en/download.html 到官网下载,然后用XFTP上传到root目录 把文件解压出来 tar -zxvf nginx-1.16.0.tar.g ...
- Linux系统 - 源码编译安装Nginx
什么是Nginx? Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器,在高连接并发的情况下N ...
- Nginx 最新版源码编译安装 包含常用模块作用及所需依赖
第一部分 Nginx最新版源码编译安装 1. 使用的模块 模块1:http_rewrite_module 基于正则匹配来实现重定向.依赖PCRE库,见依赖1 模块2:http_gzip_module ...
- CentOS7 源码编译安装Nginx
源码编译安装nginx 1.下载nginx源码包(这里以nginx-1.18.0为例) wget http://nginx.org/download/nginx-1.18.0.tar.gz 2 ...
- 源码编译安装nginx及设置开机启动项
1.上传nginx文档:解压到/data目录下,并安装依赖包tar xf nginx-1.20.1.tar.gz -C /data/cd /data/nginx-1.20.1/ && ...
- 小D课堂 - 零基础入门SpringBoot2.X到实战_第9节 SpringBoot2.x整合Redis实战_38、源码编译安装Redis4.x
笔记 2.源码编译安装Redis4.x 简介:使用源码安装Redis4.x和配置外网访问 1.快速安装 https://redis.io/download#installation ...
- Dubbo入门到精通学习笔记(十九):MySQL源码编译安装、MySQL主从复制的配置
文章目录 MySQL 源码编译安装(CentOS-6.6+MySQL-5.6) 一.服务器配置: 二.源码安装 MySQL5.6.26: MySQL主从复制的配置 环境 依赖课程 MySQL 主从复制 ...
- Centos7源码编译安装PHP7.2(生产环境)
安装PHP依赖包,否则在编译的过程中可能会出现各种报错 # Centos 安装epel-release源并将系统包更新到最新版本 $ yum install epel-release-y $ yum ...
随机推荐
- java基础 -- 关键字static的用法
static关键字的基本作用就是方便在没有创建对象的情况下调用类的方法/变量, static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载了,就可以通过类名去进行访问. static ...
- 用c++ 给易语言写支持库学习记录
废话我就不对说 直接开始 易语言官方下载的易语言安装路径下 有一个SDK文件夹 我们点进入cpp文件夹里面提供是c++的SDK elib文件夹里就是sdk 我们新建一个win32项目 这里我用的是VS ...
- 【题解】HDU Homework(倍增)
[题解]HDU Homework(倍增) 矩阵题一定要多多检查一下是否行列反了... 一百个递推项一定要存101个 说多了都是泪啊 一下午就做了这一道题因为实在是太菜了太久没写这种矩阵的题目... 设 ...
- $vjudge-$搜索专题题解
退役了,刷点儿无脑水题$bushi$放松下$QwQ$ 然后先放个链接,,,$QwQ$ $A$ 虽然是英文但并不难$get$题目大意?就说给定一个数独要求解出来,$over$ 昂显然直接$dfs$加剪枝 ...
- 钱包开发经验分享:ETH篇
# 钱包开发经验分享:ETH篇 [TOC] ## 开发前的准备 > 工欲善其事,必先利其器 一路开发过来,积累了一些钱包的开发利器和网站,与大家分享一下.这些东西在这行开发过的人都知道,只是给行 ...
- MySQL之非空约束(NOT NULL)
定义: MySQL非空约束(NOT NULL)可以通过 CREATE TABLE 或 ALTER TABLE 语句实现.在表中某个列的定义后加上关键字 NOT NULL 作为限定词,来约束该列的取值不 ...
- Linux下卸载oracle需要删除的文件
卸载oracle需要删除的文件 rm -rf /data1/oracle/app #oracle安装目录在/data1/oracle中 rm -rf /usr/local/bin/dbhome rm ...
- 负载均衡之ribbon
一.什么是负载均衡? 做web开发都会接触到负载均衡,这里我们就不细说了. (摘自百度百科)负载均衡,英文名称为Load Balance,其含义就是指将负载(工作任务)进行平衡.分摊到多个操作单元上进 ...
- iOS-UITableView HeaderView随Cell一起移动
我们在使用TableView的时候,有时会设置HeaderView,当我们滑动的时候,HeaderView不会随Cell滑出屏幕,而是会固定到导航栏下面.今天我们要实现HeaderView随滑动一起滑 ...
- vue超简单加载字体方法,解决scss难加载字体的问题
vue超简单加载字体方法,解决scss难加载字体的问题 scss在加载字体方面一直不太好用,需要繁杂的配置才能达到想要的效果,这里说一种非常简单的方法 在App.vue的style标签下引入字体文件后 ...