Linux下安装Nginx服务

一:Nginx简介

  Nginx是一个开源的高性能、轻量级的Web服务器和反向代理服务器。同时也提供了IMAP/POP3/SMTP服务。它最初由俄罗斯的程序设计师伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点开发的,其解决C10k问题(即处理数以万计并发连接的问题)。
  Nginx第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、简单的配置文件和低系统资源的消耗而闻名。2011年6月1日Nginx 1.0.4发布。
  Nginx是一款轻量级的Web服务器,它被广泛用于构建静态资源服务器(如HTML文件、图像文件等)、负载均衡器反向代理服务器和HTTP缓存等。并支持FastCGI、uWSGI、SCGI和HTTP等多种协议与后端应用程序进行通信。除了性能优势外,Nginx还提供了丰富的模块化功能。通过添加不同的模块,可以扩展Nginx的功能,如SSL/TLS支持、gzip压缩、URL重写、访问控制和流量限制等。此外Nginx是高性能的HTTP和反向代理的web服务器,处理高并发能力是十分强大的,能经受高负载的考验,有报告表明能支持高达50000个并发连接数,并且支持热部署,可以做到7*24不间断运行。几个月都不需要重新启动。
  总的来说,Nginx是一款功能强大、高性能的Web服务器和反向代理服务器,适用于各种规模的网站和应用程序。它非常受欢迎,并得到了许多大型网站和公司的广泛采用。

二:Nginx软件包下载

1:源码包下载(Windows或Linux)

  源码包我们就可以直接推荐在官方网站下载:跳转地址具体可以按照如下方式下载:

2:RPM包下载(Linux红帽派系)

  其实Nginx的RPM包安装简单又方便,可以直接通过systemctl命令启动关闭等等操作,官方网站下载:跳转地址

  下载也特别简单,直接点击需要的版本下载即可,这里我选择的是:nginx-1.22.1-1.el7.ngx.x86_64.rpm

  比如我使用的版本Nginx下载,在Linux中直接使用wget下载:

  wget http://nginx.org/packages/rhel/7/x86_64/RPMS/nginx-1.22.1-1.el7.ngx.x86_64.rpm

三:源码包方式安装

1:Linux环境下安装

Ⅰ:依赖环境安装(若存在则忽略;但若是在内网环境则需要使用RPM方式安装上面的每一个包)
    ①:安装编译时依赖的gcc环境
        yum -y install gcc gcc-c++ autoconf automake make
    ②:安装pcre,它提供nginx支持重写功能
        yum -y install pcre pcre-devel
    ③:安装zlib,这个zlib库提供了很多压缩和解压缩的方式,nginx使用zlib对http包内容进行gzip压缩
        yum -y install zlib zlib-devel make libtool
    ③:安装openssl,因为涉及到Https(安全套接字层密码库,用于通信加密)
        yum -y install openssl openssl-devel
Ⅱ:解压之前上传的tar.gz文件(直接下载则在Linux运行:wget http://nginx.org/download/nginx-1.24.0.tar.gz)
    tar -zxvf nginx-1.22.1.tar.gz
Ⅲ:生成Makefile可编译文件
    cd nginx-1.22.1
    ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
        其它可选参数:
            --prefix=PATH:指定nginx的安装目录(默认/usr/local/nginx)
            --conf-path=PATH:指定nginx.conf配置文件路径
            --user=NAME:nginx工作进程的用户
            --with-pcre:开启PCRE正则表达式的支持
            --with-http_ssl_module:启动SSL的支持
            --with-http_stub_status_module:用于监控Nginx的状态
            --with-http-realip_module:允许改变客户端请求头中客户端IP地址
            --with-file-aio:启用File AIO
            --add-module=PATH:添加第三方外部模块
Ⅳ:编译源码并安装
    make && make install
Ⅴ:测试Nginx服务
    ①:启动服务
        /usr/local/nginx/sbin/nginx
        可通过IP+80端口在浏览器访问
    ②:重新加载服务
        /usr/local/nginx/sbin/nginx -s reload
    ③:停止服务
        /usr/local/nginx/sbin/nginx -s stop
    ⑤:查看Nginx进程
        ps -ef | grep nginx
    ⑥:查询Nginx版本
        /usr/local/nginx/sbin/nginx -V
Ⅵ:Nginx配置服务
    前面的nginx运行过程中,需要nginx作为系统的服务运行。但一般我们都是使用systemctl命令运行服务,执行如下命令:
    注:执行此命令前面不能存在空格
cat > /lib/systemd/system/nginx.service <<EOF
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx reload
ExecStop=/usr/local/nginx/sbin/nginx quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF
    补充介绍:
        Description:服务的描述
        After:在网络服务启动后执行
        Type:运行类型,此处为forking,表示启动一个守护进程
        ExecStart:启动命令,指定Nginx可执行文件的路径
        ExecReload:重载命令,用于重新加载Nginx配置
        ExecStop:停止命令,用于停止Nginx服务
        PrivateTmp:启用私有临时目录,使每个服务实例具有独立的临时目录
        WantedBy:指定在multi-user target(多用户模式)下自动启动Nginx服务
Ⅶ:服务添加到系统启动项
    systemctl enable nginx.service  # 加入到开机自启动必须执行
systemctl disable nginx.service # 设置开机不自启 systemctl status nginx # 查询状态 systemctl start nginx # 启动 systemctl stop nginx # 关闭 systemctl restart nginx # 重启

四:RPM包方式安装

  相对于源码包方式安装,RPM方式安装会简单不少,处理动态链接库的依赖问题,其它都特别简单,如下:

说明:RPM包是由源码制作而成,这里不探讨如何编译RPM包,我们直接从官方下载即可。
这里我下载此版本wget http://nginx.org/packages/rhel/7/x86_64/RPMS/nginx-1.22.1-1.el7.ngx.x86_64.rpm
Ⅰ:使用yum安装依赖(若没yum则使用rpm安装全部依赖,RPM程序包管理器说明
    yum -y install gcc gcc-c++ autoconf automake make pcre pcre-devel zlib zlib-devel make libtool openssl openssl-devel pcre2.x86_64
Ⅱ:安装Nginx的RPM包:
    rpm -ivh nginx-1.22.1-1.el7.ngx.x86_64.rpm
Ⅲ:常用Nginx服务命令
    systemctl enable nfginx.service   # 开机自启动
    systemctl disable nginx.service  # 开机不自启动
    systemctl status nginx  # 查询状态
    systemctl start nginx   # 启动
    systemctl stop nginx    # 关闭
    systemctl restart nginx # 重启
Ⅳ:其它操作
    rpm -qa | grep '^nginx'     # 查询Nginx是否安装
    rpm -evh nginx-1.22.1-1.el7.ngx.x86_64  # 卸载Nginx(使用查询出来的安装程序名称)
    rpm -qc nginx-1.22.1-1.el7.ngx.x86_64   # 查询Nginx安装后存在哪些文件
        部分说明:
            /etc/nginx/nginx.conf   -- 配置文件
            /usr/lib/systemd/system/nginx.service -- 服务注册位置
            /usr/sbin/nginx         -- 可执行文件

五:Nginx目录结构

  Nginx文件结构比较简洁,主要包括配置文件和二进制可执行程序,这里我是按照通过安装包形式安装的Nginx文件结构说明,其它安装方式也差不多,只是文件存放位置不一样。

[root@VM-4-10-centos /]# tree /usr/local/nginx/
/usr/local/nginx/
├── client_body_temp              # POST 大文件暂存目录
├── conf                          # Nginx所有配置文件的目录
│   ├── fastcgi.conf              # fastcgi相关参数的配置文件
│   ├── fastcgi.conf.default      # fastcgi.conf的原始备份文件
│   ├── fastcgi_params            # fastcgi的参数文件
│   ├── fastcgi_params.default
│   ├── koi-utf
│   ├── koi-win
│   ├── mime.types                # 媒体类型
│   ├── mime.types.default
│   ├── nginx.conf                # 这是Nginx默认的主配置文件,日常使用和修改的文件(重要)
│   ├── nginx.conf.default
│   ├── scgi_params               # scgi相关参数文件
│   ├── scgi_params.default
│   ├── uwsgi_params              # uwsgi相关参数文件
│   ├── uwsgi_params.default
│   └── win-utf
├── fastcgi_temp                  # fastcgi临时数据目录
├── html                          # Nginx默认站点目录
│   ├── 50x.html                  # 错误页面优雅替代显示文件,例如出现502错误时会调用此页面
│   └── index.html                # 默认的首页文件
├── logs                          # Nginx日志目录
│   ├── access.log                # 访问日志文件
│   ├── error.log                 # 错误日志文件
│   └── nginx.pid                 # pid文件,Nginx进程启动后,会把所有进程的ID号写到此文件
├── proxy_temp                    # 临时目录
├── sbin                          # Nginx 可执行文件目录
│   └── nginx                     # Nginx 二进制可执行程序
├── scgi_temp                     # 临时目录
└── uwsgi_temp                    # 临时目录

.

posted @ 2023-09-15 11:37  蚂蚁小哥  阅读(425)  评论(0编辑  收藏  举报