nginx学习1.1 nginx简介及安装使用
环境:
centos6/7
摘要说明:
Apache仍然是时长占用量最高的web服务器,据最新数据统计,市场占有率目前是50%左右。主要优势在于一个是比较早出现的一个Http静态资源服务器,同时又是开源的。所以在技术上的支持以及市面上的各种解决方案都比较成熟。Apache支持的模块非常丰富。
Nginx是俄罗斯人编写的一款高性能的HTTP和反向代理服务器,在高连接并发的情况下,它能够支持高达50000个并发连接数的响应,但是内存、CPU等系统资源消耗却很低,运行很稳定。目前Nginx在国内很多大型企业都有应用,据最新统计,Nginx的市场占有率已经到33%左右了。而Apache的市场占有率虽然仍然是最高的,但是是呈下降趋势。而Nginx的势头很明显。选择Nginx的理由也很简单:第一,它可以支持5W高并发连接;第二,内存消耗少;第三,成本低,如果采用F5、NetScaler等硬件负载均衡设备的话,需要大几十万。而Nginx是开源的,可以免费使用并且能用于商业用途
上述我们简单介绍了apache和nginx;本章主要简单介绍nginx的基础说明、安装、及使用说明;
步骤:
1.nginx下的作用
介绍nginx在系统架构(网关入口)中的作用,总结如下:
- 路由功能(与微服务对应):域名/路径,进行路由选择后台服务器
- 负载功能(与高并发高可用对应):对后台服务器集群进行负载
- 静态服务器(比tomcat性能高很多):在mvvm模式中,充当文件读取职责
总结:实际使用中,这三项功用,会混合使用。比如先分离动静,再路由服务,再负载机器
同时上述的路由功能我们有可以看做反向代理:
- 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
- 正向代理指的是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。
2.nginx下的安装
a.源码编译方式:
1>下载源码,可在http://nginx.org/download/下选择需要下载的源码:
[code]wget http://nginx.org/download/nginx-1.9.15.tar.gz
注,若服务器未安装wget服务,需先安装wget服务:yum install wget;
2>解压源码:
[code]tar -zxvf nginx-1.9.0.tar.gz
3>到nginx跟目录下,进行源码编译:
[code]cd nginx-1.9.15 ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
上述命令的意思是 --prefix指定安装目录;--with-http_ssl_module安装https模块
若出现creating objs/Makefile 代表编译成功;反之则失败,失败的原因通常是需要安装依赖库:
[code]yum -y install pcre pcre-devel yum -y install zlib zlib-devel yum install -y openssl openssl-devel
4>编译安装:
[code]make && make install
b.yum方式安装
直接安装:
[code]yum install nginx
若失败可能是因为没有系统没有添加扩展源:
[code]yum install epel-release -y #yum扩展源
上述两种安装方式各自的优缺点为:
编译安装可以指定路径;
yum安装简单快捷,但安装比较分散:
可使用whereis nginx查看安装目录如下:
编译模式:
[code]# whereis nginx nginx: /usr/local/nginx # cd /usr/local/nginx #ls conf html logs sbin
yum模式:
[code]#whereis nginx nginx: /usr/sbin/nginx /usr/lib64/nginx /etc/nginx /usr/share/nginx /usr/share/man/man8/nginx.8.gz /usr/share/man/man3/nginx.3pm.gz
其中conf在/etc/nginx下;sbin在/usr/sbin/nginx下;html在/usr/share/nginx/下;
这里推荐使用编译方式安装;
3.目录说明及启挺
各目录作用如下:
- Conf 配置文件
- Html 网页文件
- Logs 日志文件
- Sbin 二进制程序
nginx的启停命令都是基于sbin/nginx;
启停命令:
- ./nginx -c nginx.conf的文件。如果不指定,默认为NGINX_HOME/conf/nginx.conf
- ./nginx -s stop 停止
- ./nginx -s quit退出
- ./nginx -s reload 重新加载nginx.conf
发送信号的方式
- kill -QUIT 进程号 安全停止
- kil -TERM 进程号 立即停止
nginx启动后会产生多个进程:
[code]# ps -aux|grep nginx root 31316 0.0 0.0 45760 1112 ? Ss 15:18 0:00 nginx: master process sbin/nginx nobody 31317 0.0 0.1 46200 2136 ? S 15:18 0:00 nginx: worker process root 31348 0.0 0.0 112660 968 pts/0 R+ 15:41 0:00 grep --color=auto nginx
nginx一般还有一个主进程(master)和几个工作进程(worker),配置了缓存时还会有缓存加载器进程(cache loader)和缓存管理器进程(cache manager)等。
所有进程均是仅含有一个线程,并主要通过“共享内存”的机制实现进程间通信。
主进程以root用户身份运行,而worker、cache loader和cache manager均应以非特权用户身份(user配置项)运行。
主进程主要完成如下工作:
- 读取并验正配置信息;
- 创建、绑定及关闭套接字;
- 启动、终止及维护worker进程的个数;
- 无须中止服务而重新配置工作特性;
- 重新打开日志文件;
worker进程主要完成的任务包括:
- 接收、传入并处理来自客户端的连接;
- 提供反向代理及过滤功能;
- nginx任何能完成的其它任务;
启动后可访问ip进行确认是否启动成功;
- 【saltstack学习笔记之十】使用sls安装nginx并管理nginx的配置文件
- CentOS7 上学习使用docker 【安装Nginx】
- Java学习笔记——MySQL的安装使用以及SQL语法简介
- Docker学习笔记 — Compose简介、安装与简单使用
- Nginx入门级简介,包括安装,基本使用,负载均衡,动静分离,反向代理,缓存应用等功能。
- Nginx安装学习使用具体记录
- Redis学习笔记一:redis简介及安装使用
- Maven简介和安装01 -- (Maven学习与使用)
- Nginx安装学习使用详细记录
- git的使用学习(一)git的简介和安装
- 关于用python的SQLAlchemy访问数据库的学习记录,及SQLAlchemy的安装简介
- 安装Nginx与使用PHP5(和PHP-FPM Nginx)和MySQL在 CentOS支持6.0的支持
- TIM学习文档2——TIM安装简介
- xtree1.1的使用[学习笔记]
- MongoDB入门1——简介、安装及基本使用
- MINIGUI学习笔记之安装使用
- jxl.jar的安装和使用简介
- VMware 6.5安装使用教程 (别人写的,拿来学习下)
- BlackBerry Eclipse plugin 1.1 下载地址及安装使用Eclipse update 成功率也不是很高。
- Java 线程池学习 Reference: 《创建Java线程池》[1],《Java线程:新特征-线程池》[2], 《Java线程池学习》[3],《线程池ThreadPoolExecutor使用简介