Nginx从安装到入门,基础篇

作为一个前端开发人员,懂点服务器端的知识也是必不可少的,毕竟,我们可不想为了做一个简单的测试还得去麻烦别人,自给自足,没什么不好。如果你有时间和精力,向全栈迈进也未尝不可。

我最近正在做一个仿iOS端微信的聊天App-WChat,从前端到后台,全都是靠自己来实现。所以最近也接触了一些服务器知识,后面还准备了一篇关于的文章。该项目的是通过来实现的,后期的数据请求可能也是基于实现。

Nginx介绍

Nginx()是一个高性能的HTTP服务器(其实不止HTTP服务器),一般主要用作负载均衡反向代理(如果你不清楚什么是反向代理,可以阅读我的另一篇文章)。

Nginx有一个主进程和很多工作进程,主进程的作用只有一个:通过读取配置文件()来维持工作进程正常工作。工作进程对应的才是实际的请求(),Nginx会自动将客户端的请求高效的分发给工作进程。工作进程的数量在配置文件中定义,或者通过CPU的核心数自动调整。(可参考官方文档)

在Linux系统下,Nginx的配置文件默认在、或中。我是在系统下使用的Nginx,本篇就基于来介绍。

Nginx安装

对于Nginx的安装,官方的文档在这里,建议参阅官方说明(比较考验英文)。我是一路上踏过很多坑才把Nginx安装好(主要是由于Nginx版本和Linux版本都在不断更新,而百度出来的大多数教程都是过时的,或多或少都会有些问题)。

yum安装

推荐使用来安装,简单省事。官方链接

方法很简单,首先创建文件,然后写入以下内容:

其中的是你的Linux版本,我的是,直接替换就好。是版本号,6.x就写,7.x就写。比如我的就是。

然后就可以直接使用命令来一建安装,搞定。

通过yum安装的Nginx的配置文件可能位于

源码安装

不推荐使用这种方法,对于新手来说太折腾了。首先要安装依赖包:、、、、。

安装依赖

安装、,用来编译源码;

,Perl正则表达式;

,gzip压缩;

,SSL协议。

如果你爱折腾,这些依赖包也可以下载源码,通过编译来安装。这里最头疼的就是版本之间的差异,涉及到的依赖包太多,有时候版本之间就会不兼容,或者需要其他的一些配置。

安装Nginx

去官网下载Nginx,最好不要下载最新版本,如果最新版本跟网上大多数教程说的有差异的话,真的很折腾人。

Linux下命令行操作:

如果顺利的话,Nginx就已经安装完成啦。如果不顺利的话,就自行百度去或直接采用上面介绍的来安装。命令可以带很多参数进行配置,我记不住那么多,需要的话还是自行百度。

这就是安装Nginx大概的流程,先安装依赖,再安装Nginx。不同系统不同版本之间可能会有差异,按照上面的方法你也不一定会成功。起初我在这一步就总是失败,就算带上详细的参数(之类的)也是失败。

Nginx基本使用

如果你已经成功安装Nginx,那么你现在直接在命令行中敲入,然后回车,即可启动Nginx服务器。这时,你就可以在客户端输入你服务器的IP地址,就可以访问服务器默认的页面了。

启动、停止、重新加载配置信息

启动Nginx之后,你就可以使用下面的命令格式进行简单的操作了。

其中,可以是以下指令:

:关闭Nginx,会立刻终止所有的客户端请求。

:关闭Nginx,直接翻译过来就是优雅的关闭。它会等当前所有的请求完成之后再关闭Nginx。

:重新加载配置文件。一般当你修改配置文件后,使用它可以让修改的配置生效。

:重新打开日志文件,目前还没用到它。

官方还介绍了通过指令来向Nginx进程发送这些操作信号。

配置文件简单说明

打开配置文件,文件结构大致如下:

其中,一个就相当于一个服务器,你可以配置多个模块来虚拟多个服务器。表示该服务器监听哪个端口,默认是端口。表示匹配主机名,比如我的是,那么,当客户端通过域名(前提是该域名已经正确解析到该服务器的IP地址)来访问的时候,就是匹配到这个服务器。如果客户端通过域名来访问的时候,就会匹配到下面那个服务器。如果你通过IP直接访问,会默认访问第一个服务器。

就是匹配的路由,是返回给客户端资源文件的根目录,它是相对路径的,也可以指定绝对路径(比如:)。就是默认返回的文件名(比如,,等)。

配置简单的反向代理服务器,只需在匹配到的路由模块中,使用来转到真实的服务器。

更多配置文件的详细说明请参阅官方文档。

总结

其实,Nginx本身不难,难的是操蛋的英文。现在大多数工具、框架、技术文档,都是大篇大篇的英文,看起来实在痛苦。就比如和,我相信在国内,学好比学好要容易的多吧。

不管什么东西,最好的学习途径还是官方文档,毕竟,官方的文档永远都是最新的。就拿来说,现在网络上大部分教程都还是基于的,如果直接拿来在中使用全是坑。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20191010A03O0200?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券