背景
一直使用nginx
做的网站端口分发,但是一些安装的命令或者配置的命令都记不住(或许根本不用记)。
所以,在这里进行记录一下安装和配置的过程,结果的话,因为我的网站已经在使用了,而虚拟机我又不想去安装一台新的去测试。所以暂时就先罗列和解释一下各个命令吧,以后有时间再去把截图什么的都补上。
另外,这里声明一下,如果有哪位小伙伴发现那条命令的解释上说的不严谨或者错的,欢迎指正,我会以最快速度修改。
开始
首先,不管安装什么软件,都是需要安装包的,没有安装包你休想成功安装软件。那么这个安装包在哪里获得呢?
这还用我说么,当然是“百度”啊。当然了如果不想在百度搜到的各种版本的海洋里畅游,那么就直接去官网下载。这里贴出官网地址Nginx官网。
可以看到,通过上面的链接访问之后,页面的最开始就是这个。当然小伙伴看到的可能和我的截图上的不一样,毕竟软件包都是会更新的,版本号也不会一直是一个。
那么这里呢,我们别的不用看,直接选择Stable version
就可以,因为这是最稳定的版本。而可以看到每种版本中都有多种平台的版本,中间的就是linux
版本,而有Windows
的就是Windows
版本。至于怎么选择就看小伙伴们的环境了。这里我选择的是linux
版本,因为是安装在云服务器上的。
=====================
= 等待下载完成 =
=====================
下载完成后,就是将软件包上传至服务器。这一步的话,请自行百度吧,百度上的资料还是非常多的。
当安装包上传至服务器后,就需要进行解压了,因为下载安装包是二进制文件的压缩包.tar.gz
。我们可以使用tar
命令进行解压:
tar -zxf nginx.tar.gz
这里说明下参数都代表着什么含义:
- -z 通过
gzip
指令操作文件 - -x 设置模式为将文件从包裹中释放出来
- -f 指定要操作的文件
解压出来就是一个目录,在这个目录里面存放的就是所有的二进制文件。
然后。。。
在安装软件之前,先要安装一些依赖的环境,毕竟一个软件也是会依赖一些其他的组件的。那么我们要安装的是那些呢?
gcc gcc-c++
: 一个GNU
的编译组件库,包括C、C++、 Objective-C、 Fortran、Java、Ada和Go语言前端,也包括了这些语言的库(如libstdc++,libgcj等。)zlib zlib-devel
: 包含一些开发的组件库openssl openssl-devel
: 一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份。如果你的nginx
要开启ssl
的话,那么这个包是一定要安装的。pcre pcre-devel
: 一个Perl
库,包括perl
兼容的正则表达式库。
所以,基于上面的组件,可以使用两条命令去全部安装完成(如果你用的是yum
源的话,因为我用的是yum
源):
yum -y install gcc gcc-c++ autoconf automake make
yum install -y zlib zlib-devel openssl openssl-devel pcre pcre-devel
====================
= 等待安装完成 =
====================
那现在依赖的各种组件库都已经安装完成了,接下来就是安装和启动我们的nginx
了。
首先,回到我们之前解压缩的nginx
目录中,我们可以直接使用这条命令进行编译和安装:
./configure --prefix=/usr/local/nginx
# 指定nginx安装目录是在/usr/local/nginx下,可以修改为自己的目录,不过最好不要有中文,可能会引起乱码
--with-http_ssl_module
# 那如果需要开启ssl的话,就可以把上面这条命令追加到第一条命令后面就可以了。
====================
= 等待编译完成 =
====================
编译安装完成后,就可以开启了,因为我的nginx
是安装在/usr/local/nginx
目录下的。所以我可以使用下面的命令进行启动:
/usr/local/nginx/sbin/nginx
# 其他nginx命令
# 关闭nginx
/usr/local/nginx/sbin/nginx -s stop
# 重载nginx
/usr/local/nginx/sbin/nginx -s reload
# 检查nginx配置文件中的配置是否是正确的
/usr/local/nginx/sbin/nginx -t
# 如果是ok successful,那就说明配置文件是没有错误的。
现在,启动成功了。可以通过ip
地址访问nginx
了。
注:这是从网上找的图片,因为我的是配置完的,就不贴出来了。
当然,如果以上操作做完了,发现nginx
并没有启动,那么有可能是配置文件有错误,没有编译通过。或者哪个组件没有安装。如果发现nginx
启动成功,但是页面没有访问到,那么你可以考虑看看防火墙是否关闭或者需要开启防火墙的话,nginx
的端口是否同行。如果你的nginx
是和我一样配置在云服务器上的话,那么就需要在云服务器的后台上添加开放端口。