您的位置:首页 > 运维架构 > Nginx

nginx学习1.1 nginx简介及安装使用

2018-12-17 15:32 36 查看

环境:

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在系统架构(网关入口)中的作用,总结如下:

  1. 路由功能(与微服务对应):域名/路径,进行路由选择后台服务器
  2. 负载功能(与高并发高可用对应):对后台服务器集群进行负载
  3. 静态服务器(比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进行确认是否启动成功;

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: