文章目录
- nginx简介
- nginx的主要应用场景
- nginx开源项目的源码结构
- 使用centos7安装nginx
- 检查centos版本号和linux内核版本
- 检查是否安装gcc、pcre、zlib、openssl等依赖
- 安装nginx
- 启动nginx
- 停止nginx
- 重启nginx
nginx简介
nginx是一款业内流行、功能强大的web服务器。
- 高性能:对正常请求,比Apache有更快的响应;
- 高可靠:主-工作多进程模型;
- 高并发:万级别以上,甚至十万级别+
- 易扩展:模块化设计
- 热部署:修改配置文件后,优雅重启;
- 跨平台:Linux、Windows、macOS
nginx的主要应用场景
nginx的主要应用场景包括:
- http服务器
- 正向代理
- 反向代理
- 负载平衡
nginx开源项目的源码结构
使用centos7安装nginx
检查centos版本号和linux内核版本
[root@aubin cch]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
[root@aubin cch]# cat /proc/version
Linux version 3.10.0-693.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC) ) #1 SMP Tue Aug 22 21:09:27 UTC 2017
[root@aubin cch]#
检查是否安装gcc、pcre、zlib、openssl等依赖
gcc编译器是linux下最常用的c/c++的编译器,该编译器以gcc命令的形式呈现。
- 检查是否安装了gcc,输入
gcc -v
,出现以下gcc版本信息表示已经安装了gcc,否则输入命令yum install gcc-c++
安装gcc。
[root@aubin cch]# gcc -v
使用内建 specs。
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper
目标:x86_64-redhat-linux
配置为:../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
线程模型:posix
gcc 版本 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
prce是一个轻量级的perl函数库,包括perl兼容的正则表达式库,pcre比boost之类的正则表达式的库小很多。pcre功能抢答,非常易用。
- 检查是否安装了prce依赖,输入
rpm -qa pcre
,如果已经安装则会显示版本号,否则输入命令yum install -y pcre pcre-devel
,在线安装prce。
[root@aubin cch]# rpm -qa pcre
pcre-8.32-17.el7.x86_64
zlib是提供数据压缩的函数库,zlib库提供许多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行压缩,所以需要安装zlib依赖。
- 检查是否安装zlib依赖,输入
yum list installed | grep zlib*
,若已安装会显示版本号,否则可以输入命令yum install -y zlib zlib-devel
,在线安装zlib依赖。
[root@aubin cch]# yum list installed | grep zlib*
zlib.x86_64 1.2.7-17.el7 @anaconda
opebssl是多功能命令工具,用来生成密钥,创建数字证书,手动加密解密数据,nginx不仅支持http协议,而且还支持https(即在ssl协议上传输http),所以需要安装apenssl依赖。
- 检查是否安装了spenssl依赖,输入命令
rpm -qa openssl
,若安装则会显示版本号,否则执行命令yum install -y openssl openssl-devel
,在线安装OpenSSL。
[root@aubin cch]# rpm -qa openssl
openssl-1.0.2k-8.el7.x86_64
以上的所有,可以使用一条命令解决:yum -y install gcc openssl openssl-devel pcre-devel zlib zlib-devel
安装nginx
-
安装nginx-1.16.1 下载网址:https://nginx.org/en/download.html
-
输入命令
tar -zxvf nginx-1.16.1.tar.gz
解压缩 -
cd
到解压好的nginx安装包目录中,输入./configure
-
配置结束后,输入
make
(如果出现make: *** 没有规则可以创建“default”需要的目标“build”。 停止。
则表示有依赖没有安装,可以输入yum -y install gcc openssl openssl-devel pcre-devel zlib zlib-devel
直接安装依赖,再重新回到第三步) -
输入
make install
安装,默认安装在/usr/local/ngnix中
启动nginx
- 输入
cd /usr/local/nginx/sbin
- 执行
./nginx
- 输入
curl http://127.0.0.1
,出现以下表示启动成功(nginx配置文件配置的默认端口是80)
[root@aubin sbin]# curl http://127.0.0.1
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>body {width: 35em;margin: 0 auto;font-family: Tahoma, Verdana, Arial, sans-serif;}
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p><p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p><p><em>Thank you for using nginx.</em></p>
</body>
</html>
停止nginx
- 输入
cd /usr/local/nginx/sbin
- 执行
./nginx -s stop
[root@aubin sbin]# ./nginx -s stop
[root@aubin sbin]# curl http://127.0.0.1
curl: (7) Failed connect to 127.0.0.1:80; 拒绝连接
重启nginx
- 输入
cd /usr/local/nginx/sbin
- 执行
./nginx -s reload