一、手动安装
安装依赖包
nginx 安装依赖GCC、openssl-devel、pcre-devel和zlib-devel软件库,他们的作用如下:
- zlib库用于对HTTP包的内容做gzip格式的压缩,并指定对于某些类型(content-type)的HTTP响应使用gzip来进行压缩以减少网络传输量,则在编译时就必须把zlib编译进Nginx。
- Pcre全称(Perl Compatible Regular Expressions),Perl库,包括 perl 兼容的正则表达式库,如果我们在nginx中使用了正则表达式,那么在编译Nginx时就必须把PCRE库编译进Nginx。
- 如果服务器不只是要支持HTTP,还需要在更安全的SSL协议上传输HTTP,那么需要拥有OpenSSL。另外,如果我们想使用MD5、SHA1等散列函数,那么也需要安装它。
可以这样安装:
yum install gcc zlib-devel pcre pcre-devel openssl openssl-devel -y
小知识: devel 包主要是供开发用,至少包括以下2个东西头文件和链接,有的还含有开发文档或演示代码。 以 glib 和 glib-devel 为例:
- 如果你安装基于 glib 开发的程序,只需要安装 glib 包就行了。
- 但是如果你要编译使用了 glib 的源代码,则需要安装 glib-devel。
下载解压
# 下载
wget http://nginx.org/download/nginx-1.22.0.tar.gz
# 解压
tar -zvxf nginx-1.22.0.tar.gz
编译安装
# 进入解压文件夹
cd nginx-1.22.0
# 执行配置程序做安装前准备
./configure
# 编译
make
# 安装
make install
├── conf
│ └── nginx.conf # nginx 配置文件
│
├── html
│ ├── 50x.html
│ └── index.html # 默认访问网页
│
├── logs # 日志及进程号
│ ├── access.log
│ ├── error.log
│ └── nginx.pid
│
├── sbin
│ └── nginx # nginx 命令
基本命令
- 测试 nginx 配置文件是否正常: ```bash ./sbin/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
2. **启动 nginx:**
```bash
./sbin/nginx
- 检查端口使用情况:nginx 默认 80 端口
- net-tools工具箱包括arp, hostname, ifconfig, netstat, rarp, route, plipconfig, slattach, mii-tool and iptunnel and ipmaddr等命令
- netstate:查看网络状态
```bash
安装 net-tools 工具
yum -y install net-tools
查看网络情况
netstat -nplt
确定web服务器已经工作,返回默认网页
curl http://localhost
4. **其他操作**
```bash
./nginx -s signal
signal:
- stop — 立马关闭
- quit — 优雅关闭,处理完没处理好的请求后关闭
- reload — 重新加载配置文件
- reopen — reopening the log files 用来打开日志文件,这样nginx会把新日志信息写入这个新的文件中
定制化安装
编译安装的过程
- configure 命令做了很多幕后工作,包括检测操作系统内核和已经安装的软件,参数的解析,中间目录的生成,以及根据参数生成c源码文件和makefile文件等。
- make命令根据,configure命令生成的makefile文件编译nginx工程,并生成目标文件、最终的二进制文件。
- make install命令负责将nginx安装到指定的安装目录,包括相关目录的建立和二进制文件、位置文件的复制。
configure 命令
直接使用 configure 命令,nginx 将按照默认配置(默认模块、默认安装路径)进行安装,如果需要自定义一些配置,则可添加 options。
- 具体的 options 可通过
./configure --help
查看
其中with
开头的表示安装该模块,without
开头表示关闭该模块,如:
--without-http_ssi_module
--with-http_perl_modules
通常会使用下列 options:
--prefix
设置安装文件夹--user
设置Linux用户--group
用户组--with-http_ssl_module
安装该模块,该模块是nginx支持ssl协议,提供https服务。--with-http_stub_status_module
是一个监视模块,可以查看目前的连接数等一些信息,因为是非核心模块,所以我们默认是没有安装的
实际使用 nginx 通常会进行一些配置指定安装文件夹,使用用户,用户组。
tar -zxf nginx-1.22.0.tar.gz
cd nginx-1.22.0
# 创建安装目录
mkdir /data/nginx -p
# 创建用户并对用户进行配置。-M : 不创建主目录 -s : 不允许登录 /sbin/nologin是一个有一个特殊的shell,不需要登陆
useradd nginx -M -s /sbin/nologin
# 编译安装
./configure --prefix=/data/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module
make && make install