Nginx 简介安装与控制命令

Posted  时光清浅ぴ许你安然

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx 简介安装与控制命令相关的知识,希望对你有一定的参考价值。

一、nginx 简介

Nginx是一个高性能WEB服务器(说白了就是处理HTTP请求的服务器)。

单纯的从处理HTTP请求这个功能来说呢,除Nginx之外Apache、Tomcat、Jetty、IIS,它们都是Web服务器,或者叫做WWW(World Wide Web)服务器,相应地也都具备Web服务器的基本功能。



Nginx 相对基它WEB服务有什么优势呢?
1、Tomcat、Jetty 面向java语言,只能处理由Java语言实现的应用,先天就是重量级的WEB服务器,专门用来处理动态的请求,如果处理静态资源的话,其性能与Nginx没有可比性。

2、IIS只能在Windows操作系统上运行。
Windows作为服务器在稳定性与其他一些性能上都不如类UNIX操作系统,因此,在需要高性能Web服务器的场合下IIS并不占优。

3、Apache的发展时期很长,而且是目前毫无争议的世界第一大Web服务器。
其有许多优点,如稳定、开源、跨平台等,但它出现的时间太长了,在它兴起的年代,互联网的产业规模远远比不上今天,所以它被设计成了一个重量级的、不支持高并发的Web服务器。在Apache服务器上,如果有数以万计的并发HTTP请求同时访问,就会导致服务器上消耗大量内存,操作系统内核对成百上千的Apache进程做进程间切换也会消耗大量CPU资源,并导致HTTP请求的平均响应速度降低,这些都决定了Apache不可能成为高性能Web服务器,这也促使了Lighttpd和Nginx的出现。

nginx是 反向代理服务软件
正向代理:管理的是客户端,浏览的信息都可以在代理服务器中查看到。没有 隐私权限。
反向代理:管理的是被访问的服务器端,对客户端是没有(或者无法)限制的.
它是限制了集群中的哪个服务器可以被访问,哪个不可以被访问。

正向代理,代理的客户端访问外网的过程:

反向代理管理的是被访问的服务器tomcat

二、Nginx 安装

1、Windows安装

1.1 下载Nginx安装包

1.2 将这个安装包加压到没有中文路径和空格的文件

1.3 重要目录介绍


conf文件夹:存放的是启动nginx加载的配置文件只加载一个叫做nginx.conf 的配置文件.
logs文件夹:里面有个error.log的文件,可以使用它观察启动的情况,是否正 常启动,或者出错.正常启动会显示2个pid,其中一个pid是守护进程,另外一个是nginx程序

reload、start、stop的bat文件,是启动、重启、停止nginx运行的windows命令文件,是后加的,原文件不存在.

2、Linux安装

2.1 安装环境准备

(1)linux 内核2.6及以上版本:
只有2.6之后才支持epool ,在此之前使用select或pool多路复用的IO模型,无法解决高并发压力的问题。通过命令uname -a 即可查看。(ps:epool是非阻塞IO非常关键的一个点,只有epool才能实现一个连接,处理成千上万的请求这种功能

#查看 linux 内核
uname -a  

(2)GCC编译器
GCC(GNU Compiler Collection)可用来编译C语言程序。
Nginx不会直接提供二进制可执行程序,只能下载源码进行编译。

(3)PCRE库
PCRE(Perl Compatible Regular Expressions,Perl兼容正则表达式)是由Philip Hazel开发的函数库,目前为很多软件所使用,该库支持正则表达式。

(4)zlib库
zlib库用于对HTTP包的内容做gzip格式的压缩,如果我们在nginx.conf里配置了gzip on,并指定对于某些类型(content-type)的HTTP响应使用gzip来进行压缩以减少网络传输量。

(5)OpenSSL开发库
如果我们的服务器不只是要支持HTTP,还需要在更安全的SSL协议上传输HTTP,那么就需要拥有OpenSSL了。另外,如果我们想使用MD5、SHA1等散列函数,那么也需要安装它。

      上面几个库都是Nginx 基础功能所必需的,为简单起见我们可以通过yum 命令统一安装。

#yum 安装nginx 环境
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel pcre pcre-devel

2.2 源码获取

nginx 下载页

这里我们使用; nginx-1.14.0进行介绍

# 下载nginx 最新稳定版本
wget http://nginx.org/download/nginx-1.14.0.tar.gz
#解压
tar -zxvf nginx-1.14.0.tar.gz

2.3 最简单的安装

# 全部采用默认安装
./configure & make & make install  
make & make install 

执行完成之后 nginx 运行文件 就会被安装在 /usr/local/nginx 下。

基于参数构建

./configure 

2.4 模块更新

# 添加状态查查看模块并重新创建主模块
./configure --with-http_stub_status_module & make
# 将新生成的nginx 文件覆盖 旧文件。
cp objs/nginx /usr/local/nginx/sbin/
# 查看是否更新成功 显示了 configure 构建参数表示成功
/usr/local/nginx/sbin/nginx -V

三、控制命令

#查看命令帮助
./sbin/nginx -?

#默认方式启动:
./sbin/nginx 
#指定配置文件启动 
./sbing/nginx -c /tmp/nginx.conf 
#指定nginx程序目录启动
./sbin/nginx -p /usr/local/nginx/


#快速停止
./sbin/nginx -s stop
#优雅停止
./sbin/nginx -s quit

stop命令:立马停止
quit命令:先关闭ngin的所有对外端口,新的请求进不来了,但是之前已经进入的请求还是会继续处理,直到把所有的请求处理完,才会彻底关闭(线上环境的话,尽量使用quit命令)


# 热装载配置文件 
./sbin/nginx -s reload

reload命令:修改了nginx的配置文件,但是不想重启nginx服务,则可以使用reload来对配置文件进行重载


# 重新打开日志文件
./sbin/nginx -s reopen

reopen命令:重新打开日志文件比如,原来的配置文件access.log,现在将该文件命名为access.log.backup,然后新建一个日志文件access.log文件。
重新访问nginx,发现新的access.log文件大小没有变化,而备份的日志文件却变大了。
这是因为在nginx中其实指向的是文件的句柄(可以形象的理解为指针),虽然把文件拷贝了,但是文件的句柄还是在原文件中,所以日志依然会往原来的文件中追。这个时候,可以使用reopen来使日志打印在新文件中

# 设置全局命令,如下表示设置启动用户为root
./sbin/nginx -g "user root;"

以上是关于Nginx 简介安装与控制命令的主要内容,如果未能解决你的问题,请参考以下文章

源码编译三部曲(以nginx示例)

源码编译三部曲(以nginx示例)

Nginx:安装与常用命令

Nginx命令行控制

尚硅谷Nginx教程简介安装常用命令和配置文件配置实例——反向代理

lamp架构nginx简介及源码安装常用命令