企业实战--Nginx(介绍、安装及配置文件,基本指令)

一、nginx

1.Nginx是一款轻量级的Web服务器/反向代理服务器以及电子邮件代理服务器
2.其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好。
3.nginx相较于Apache\lighttpd具有占有内存少,稳定性高等优势,并且依靠并发能力强,丰富的模块库以及友好灵活的配置而闻名
4.Nginx作为负载均衡服务:Nginx 既可以在内部直接支持 Rails 和 PHP 程序对外进行服务,也可以支持作为 HTTP代理服务对外进行服务。Nginx采用C语言进行编写,不论是系统资源开销还是CPU使用效率都比 Perlbal 要好很多。
5.反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。

二、安装nginx

下载

在官方网站下载源代码,编译安装:
开源版网址:nginx.org
商业版网址:nginx.com

在官网下载 nginx 的源码包,有3种版本可以选择:

Mainline version:主线版本,相当于开发版
Stable version:最新稳定版本
Legacy versions:历史稳定版本

编译安装

解压下载的安装包:

[root@server1 ~]# tar zxf nginx-1.16.1.tar.gz 
[root@server1 ~]# cd nginx-1.16.1
[root@server1 nginx-1.16.1]# ls
auto     CHANGES.ru  configure  html     man     src
CHANGES  conf        contrib    LICENSE  README

目录中的文件含义是:
此目录中的configure脚本文件,可以进行一些编译安装的相关设置,如果你想要看看当前的版本的Nginx都修复了哪些bug、做了哪些变更、新增了哪些功能,则可以查看CHANGES文件,CHANGES.ru文件是CHANGES文件的俄语版,因为nginx是俄国人发明的,所以有一个单独的俄语版,conf目录中的文件是一些nginx配置文件的模板文件,编译安装时,这些文件最终会被拷贝到安装目录中,html目录中的文件是一些静态页面的模板文件,src目录是源代码目录,man目录是帮助文档的目录,contrib目录中的vim目录中的文件可以帮助我们在使用vim编辑nginx配置文件的时候,提供语法高亮功能。

执行./configure --help命令后,可以看到很多选项信息,使用–prefix选项可以指定nginx编译安装目录,nginx是高度模块化的,每一个模块就代表一个功能,只有编译安装的方式才能指定安装哪些模块,不安装哪些模块,–with-XXX_module选项表示指明安装对应的模块,–without-XXX_module选项表示指明不安装对应的模块。

换句话说就是:
如果你没有明确使用–with-AXX_module选项,那么默认情况下是不会安装AXX模块的。
如果你没有明确使用–without-BXX_module选项,那么默认情况下是会安装BXX模块的。
使用–with-XXX_module选项添加默认未加入的模块,使用–with-XXX_module选项排除默认会加入的模块。
能够使用“–with-XXX_module”和“–without-XXX_module”控制的模块都是可选模块,也就是说我们可以选择是否安装它们,除了这些“可选模块”,还有一些“标准”模块是默认安装到nginx中的,我们无法选择是否安装这些表准“模块”。
1 编译安装nginx需要先解决依赖性:

yum install gcc openssl-devel pcre-devel -y

此外,还有一个gd-devel需要字形下载安装,下载地址:https://centos.pkgs.org/7/centos-x86_64/gd-devel-2.0.35-26.el7.x86_64.rpm.html,安装:

yum install gd-devel-2.0.35-26.el7.x86_64.rpm -y

2 编译:

注意:编译必须进到nginx解压的目录中

[root@server1 nginx-1.16.1]# ./configure --prefix=/usr/local/nginx --with-http_realip_module --with-http_image_filter_module=dynamic --with-http_ssl_module

3 安装:

[root@server1 nginx-1.16.1]# make && make install

安装后:

[root@server1 nginx-1.16.1]# cd /usr/local/nginx/				#进入安装目录
[root@server1 nginx]# ls
conf  html  logs  modules  sbin

其中:
conf:保存nginx所有的配置文件,其中nginx.conf是nginx服务器的最核心最主要的配置文件,其他的.conf
则是用来配置nginx相关的功能的,例如fastcgi功能使用的是fastcgi.conf和fastcgi_params两个文件,
配置文件一般都有个样板配置文件,是文件名.default结尾,使用的使用将其复制为并将default去掉即可。
html目录中保存了nginx服务器的web文件,其中index.html文件是默认发布文件,但是可以更改为其他目录保存web文件,另外还有一个50x的web文件是默认的错误页面提示页面。
logs:用来保存nginx服务器的访问日志错误日志等日志,logs目录可以放在其他路径,比如/var/logs/nginx里面。
modules:存放了一些模板会用到的库。
sbin:保存nginx二进制启动脚本,我们需要nginx二进制文件启动nginx:

/usr/local/nginx/sbin/nginx				#启动nginx

三、nginx的主配置文件

文件中常用到的配置语法,示例如下:

http {
	
	...
	...
	
	server {
		...
		...
		
		location ... {
				...
				...
		}
		
	}

	server {
		...
		...
	}
	

}

分为几个逻辑部分,http部分、server部分、location部分,,每个部分都是使用大括号"{ }"作为分界线的,它们是有层级关系的,http中可以配置多个server,一个server中可以配置多个location,
我们知道,nginx最基础的功能就是用来提供http服务,所以,跟http有关的公共配置,可以放置在http块中,http块中又可以配置多个server,那么server代表了什么呢?我们在一台主机中安装了nginx,那么能不能让这台nginx主机同时提供多个web服务呢?答案是肯定的,每一个server就代表一个http服务,我们可以同时配置多个server,以便同时提供多个http服务,不同的server可以使用不同的配置,写入到某个server块中的配置只对对应的http服务生效,如果多个server存在共同的公用配置,则可以将共同的配置写在http块中,以便多个server共享这些配置,一个server块中又可以有一个或多个location,location又是什么意思呢?当我们访问一个网络上的资源时,都是通过url访问的,你可以把location当做url的一部分,此处,我们使用如下url作为示例:

http://www.redhat.net/archives/1591

上述链接中的"/archives"部分就是一个location,我们可以通过location将url中的路径和服务器的某个目录建立起关联关系

当我访问"http://10.1.1.72/"这个网址时,默认会访问到nginx服务器上的/usr/local/nginx/html/index.html文件,之所以会访问到这个文件,是由下面这段配置决定的:
在这里插入图片描述
刚才说过,location可以理解成url的一部分,那么当我们访问http://172.25.63.1/这个url时,这个url的最后一个/其实就是上图中的location /,换句话说就是,上图中红线标记出的/其实对应的就是http://10.1.1.72/这个url的最后一个/,这个location块中有两条配置指令,它们分别是root和index

root配置指令的意思是:当前location所对应的文档根目录是哪里,root html;表示当前location的文档根目录是html目录,文档根目录的意思就是当有人访问/这个路径时,去服务器的哪个目录中找对应的资源。
index指令表示当没有指明任何资源时,默认访问哪个资源

四、Nginx 基本命令详解

nginx常用命令
选项 作用
不加选项 启动nginx服务
-h或-?选项 查看nginx命令帮助
-v选项 查看nginx版本信息
-V选项 查看nginx编译信息
-c选项 启动nginx时指定主配置文件
-t或-T选项 测试nginx.conf文件是否存在语法错误
-s选项 向正在运行的nginx主进程发送信号,信号的可用值有stop, quit, reopen, reload

下面是详细介绍:

制作软链接:
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

制作软链接后就可以直接使用 nginx 来启动 nginx服务了。

想要看看nginx命令都有哪些可用的选项,则可以使用-h选项"或者-?选项,如下:
nginx -h
nginx -?
使用-v选项(小写v)可以查看nginx的版本信息,如下:
[root@server1 ~]# nginx -v
nginx version: nginx/1.16.1
使用-V选项(大写V)可以查看当前nginx的编译信息,编译安装nginx时,有很多"可选模块"可供我们使用,我们可以选择安装或不安装对应的可选模块,同时,我们还可以在编译安装时,设置一些编译选项,比如安装目录、各种文件的目录、编译器选项等等,这些信息都属于编译信息,所以,我们可以通过如下命令查看这些编译信息。
[root@server1 ~]# nginx -V
nginx version: nginx/1.16.1
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) 
built with OpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --with-http_realip_module --with-http_image_filter_module=dynamic --with-http_ssl_module
使用-t选项或者-T选项可以测试nginx.conf配置文件中是否存在语法错误,nginx.conf中的配置指令需要以分号结尾,如果没有以分号结尾,会在启动nignx时报语法错误,其实,在启动nginx服务之前,我们就可以使用nginx -t命令对nginx.conf文件进行语法检查,如果配置文件中存在语法错误,那么相应的错误信息会输出,如果配置语法没有问题,则会出现类似如下信息:
[root@server1 ~]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
还有一个非常常用的选项,就是-s选项,-s选项的作用就是向正在运行的nginx进程发送信号,这样解释可能不容易理解,我们换个角度来说吧,比如,当nginx服务已经启动,我们想要停止nginx服务,则可以使用nginx -s stop命令停止nginx服务,nginx -s stop命令表示向nginx进程发送stop信号,使用-s选项除了能够发送stop信号,还能发送quit信号、reopen信号以及reload信号,那么这三种信号分别代表什么意思呢?我们一一道来

quit信号:与stop信号的作用类似,quit信号作用也是用于停止nginx服务,quit信号和stop信号的区别在于,nignx进程收到stop信号以后会立即停止服务,而收到quit信号后,不会再接收新的请求,但是会先处理完已经接受的链接请求,处理完这些请求之后再停止服务,这种停止方式被称之为"优雅的停止"。
reload信号:reload信号的作用就是在不停止服务的情况下重载配置文件,比如,nginx正在正常的提供服务,此时,管理员修改了nginx.conf文件中的配置指令,管理员希望新的配置立刻生效,但是又不希望重启nginx服务,此时就可以使用nginx -s reload命令重载配置文件,以便在不重启nginx的情况下载入新的配置,同时避免了因重启而造成的服务中断。
reopen信号:利用reopen信号可以使nignx进程重新打开日志文件,以便实现日志分割的效果。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值