nginx的简介
Nginx 是一款高性能的 http 服务器/反向代理服务器以及电子邮件(IMAP/POP3)代理服务器。到这里,可能很多人会疑惑什么是反向代理呢?说到反向代理,那么我们先来解释下什么是正向代理。
正向代理
正向代理就是当客户访问服务器资源时,用户知道自己想要请求的服务器是哪个,由用户发起请求,代理服务器去访问指定的网页,再由代理服务器将结果返回给用户。
反向代理
反向代理正好相反,用户请求某一资源时,用户并不清楚自己访问的是哪台服务器,只是将请求交给了反向代理服务器,这一切都由反向代理服务器去解决,最后用户只拿到自己想要的结果。
nginx的安装
说完了什么是nginx和反向代理后,那么我们在使用nginx之前,首先要做的当然是安装nginx。
nginx下载地址
windows系统的下载后解压即可,这里不再赘述,主要讲解linux系统下的nginx安装。
首先,我们需要将下载后的安装包上传到linux系统下,在这里,我主要使用lrzsz的方式进行上传文件,lrzsz需要安装,没有安装的小伙伴可以使用以下命令进行在线安装。
yum install lrzsz
完成安装以后,即可以利用命令rz上传文件,sz下载文件。
1. 安装gcc
安装nginx需要先将官方下载的源码进行编译,编译依赖gcc环境,如果没有,则需要先安装。
yum install gcc
2. 安装pcre、pcre-devel
pcre(Perl Compatible Regular Expressions)是一个 Perl 库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库。pcre-devel 是使用 pcre 开发的一个二次开发库。nginx 也需要此库。
yum install -y pcre pcre-devel
3. 安装zlib
zlib 库提供了很多种压缩和解压缩的方式,nginx 使用 zlib 对 http 包的内容进行 gzip,所以需要在 linux 上安装 zlib 库。
yum install -y zlib zlib-devel
4. 安装openssl
nginx 不仅支持 http 协议,还支持 https(即在 ssl 协议上传输 http),所以需要在 linux安装 openssl 库。
yum install -y openssl openssl-devel
在安装完上述环境后,我们对nginx进行解压。
tar -zxvf nginx-1.17.6.tar.gz
解压完成后,目录结构如下:
我们使用configure命令可以生成一个makefile配置文件,其中prefix表示其指向安装目录。
./configure --prefix=/usr/local/src/nginx-1.17.6
之后我们对其进行编译和安装。
make
make install
编译安装后的目录如下:
启动nginx
进入到sbin目录下
cd usr/local/src/nginx-1.17.6/sbin
启动nginx
./nginx
这时候在这里报了个错误,挠头,去网上查了查,发现很多人在运行configure时并没有设置prefix也就是安装目录,如果没有设置则默认安装到usr/local/nginx目录下,但是我这边设置了,错误提示显示的是缺少error.log文件,于是我就自己给它创建了一个logs文件夹和error.log文件。
随后重新启动,发现好像启动了?先别急,让我们再确认一下,查看一下nginx的进程
ps -ef|grep nginx
通过查看进程我发现nginx确实已经启动了,继续按捺住激动的心情,小菜鸟第一次在linux下安装nginx,各位大佬理解一下。
让我们进行最后一步,通过浏览器访问一下nginx的首页。因为默认是80端口,在地址栏中输入ip即可访问。
然后现实是这样的。果然菜鸟就是做什么都不顺利
这时我才依稀记起这应该是没有关闭linux下的防火墙导致的,于是关闭防火墙。
service iptables stop
使用此命令只是当前生效,在重启linux后即失效,为了省去以后都需要关闭的麻烦,这里也可以永久关闭防火墙。
chkconfig iptables off
这时候,我们再次访问nginx首页,即可以看到nginx的欢迎页面。
好的,自此nginx在linux下的安装就算大功告成了,给自己鼓鼓掌~~
关闭nginx
./nginx -s stop
或者
./nginx -s quit
再来说说这两者的区别吧,stop属于强制停止,它会立即停止nginx的服务,而quit则比较友好,会在当前请求结束后停止。
重启nginx
./nginx -s reload
总结
以前一直都是在windows下使用的nginx,不可否认的是那样真的很方便,只需下载解压两步即可,之前也有用到nginx,但总感觉不熟练,很多东西一知半解的,总觉得学的不扎实,在加上随着时间的流逝,记忆就只会越来越模糊,所以我决定写博客记录一下,本来还决定写上nginx的负载均衡机制,以及如何修改nginx.conf配置文件,然后觉得洋洋洒洒写的内容太多,在这里就先讲如何安装吧,其余内容就先在这里打个预告,过两天有时间了就会补上。