美文网首页
nginx安装

nginx安装

作者: 黄二的NPE | 来源:发表于2018-06-23 19:47 被阅读10次
    • yum安装

    1. 添加nginx到yum
      rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
    2. 安装nginx
      yum install -y nginx
    3. 启动nginx
      service nginx start
    4. 查看是否启动成功
      ps -aux | grep nginx
    [root@VM_90_159_centos ~]# ps -aux | grep nginx
    root      1963  0.0  0.0  46364   964 ?        Ss   18:15   0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
    nginx     1964  0.0  0.1  48848  1992 ?        S    18:15   0:00 nginx: worker process
    root      1968  0.0  0.0 112660   972 pts/0    R+   18:15   0:00 grep --color=auto nginx
    

    yum 在线安装会将 nginx 的安装文件放在系统的不同位置,可以通过命令 rpm -ql nginx 来查看安装路径如下,安装的比较分散,如果我们想集中管理nginx,可以使用安装包的方式安装nginx

    [root@VM_90_159_centos nginx]# rpm -ql nginx
    /etc/logrotate.d/nginx
    /etc/nginx
    /etc/nginx/conf.d
    /etc/nginx/conf.d/default.conf
    /etc/nginx/fastcgi_params
    /etc/nginx/koi-utf
    /etc/nginx/koi-win
    /etc/nginx/mime.types
    /etc/nginx/modules
    /etc/nginx/nginx.conf
    /etc/nginx/scgi_params
    /etc/nginx/uwsgi_params
    /etc/nginx/win-utf
    /etc/sysconfig/nginx
    /etc/sysconfig/nginx-debug
    /usr/lib/systemd/system/nginx-debug.service
    /usr/lib/systemd/system/nginx.service
    /usr/lib64/nginx
    /usr/lib64/nginx/modules
    /usr/libexec/initscripts/legacy-actions/nginx
    /usr/libexec/initscripts/legacy-actions/nginx/check-reload
    /usr/libexec/initscripts/legacy-actions/nginx/upgrade
    /usr/sbin/nginx
    /usr/sbin/nginx-debug
    /usr/share/doc/nginx-1.14.0
    /usr/share/doc/nginx-1.14.0/COPYRIGHT
    /usr/share/man/man8/nginx.8.gz
    /usr/share/nginx
    /usr/share/nginx/html
    /usr/share/nginx/html/50x.html
    /usr/share/nginx/html/index.html
    /var/cache/nginx
    /var/log/nginx
    
    • 源码安装

    1. 安装gcc环境
      源码安装nginx依赖于gcc环境,如果没有gcc环境,需要安装:
      yum install -y gcc-c++
    2. 安装 PCRE
      nginx的http模块使用pcre来解析正则表达式,pcre-devel是使用pcrel来开发的二次开发库。
      yum install -y pcre pcre-devel
    3. 安装 zlib
      nginx 使用zlib把http包压缩成gzip。
      yum install -y zlib zlib-devel
    4. 安装openssl
      nginx 不仅支持 http 协议,还支持 https,而https协议是基于ssl协议传输的http,openssl是ssl协议的实现,是一个强大的安全套接字密码库。
      yum install -y openssl openssl-devel
    5. 下载并解压nginx源码
    cd /usr/local/src
    wget http://nginx.org/download/nginx-1.10.2.tar.gz
    tar -zxvf nginx-1.10.2.tar.gz
    
    1. 设置 nginx 的安装路径,生成makefile
      ./configure --prefix=/usr/local/server/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre
      在这里我设置的安装路径是 /usr/local/server/nginx
    2. 编译
      make
    3. 安装
      make install
    4. 启动
     cd /usr/local/server/nginx/sbin
     ./nginx
    
    • nginx目录结构

    安装后的nginx,我们通过tree /usr/local/server/nginx命令可以看到它的目录结构.

    /usr/local/nginx
    ├── client_body_temp      #上传的文件如果过大的缓存目录
    ├── conf                             # Nginx所有配置文件的目录
    │   ├── fastcgi.conf                 # fastcgi相关参数的配置文件
    │   ├── fastcgi.conf.default         # fastcgi.conf的原始备份文件
    │   ├── fastcgi_params               # fastcgi的参数文件
    │   ├── fastcgi_params.default       # 所有结尾为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                       # 临时目录
    
    • fastcgi

    在上面的目录结构中,我们可能发现很多fastcgi的东西,那到底是什么东西呢?要理解fastcgi,首先要理解cgi,cgi是一种协议,它规定了web server(nginx)和CGI程序(比如php解析器和python解析器)之间要怎么通信,web server要传什么东西给CGI程序(比如url, url参数, http header 等),要以什么格式传给cgi程序.

    CGI程序反复加载是CGI性能低下的主要原因,如果CGI程序保持在内存中并接受FastCGI进程管理器调度,则可以提供良好的性能、伸缩性、Fail-Over特性等。
    FASTCGI是常驻型的CGI,它可以一直运行,在请求到达时,不会花费时间去fork一个进程来处理。
    FastCGI是语言无关的、可伸缩架构的CGI开放扩展,将CGI解释器进程保持在内存中,以此获得较高的性能。

    一般情况下,FastCGI的整个工作流程是这样的:
    1、Web Server启动时载入FastCGI进程管理器
    2、FastCGI进程管理器自身初始化,启动多个CGI解释器进程(可见多个php-cgi)并等待WebServer的连接。
    3、当客户端请求到达Web Server时,FastCGI进程管理器选择并连接到一个CGI解释器。 Web server将CGI环境变量和标准输入发送到FastCGI子进程php-cgi。
    4、FastCGI子进程完成处理后将标准输出和错误信息从同一连接返回Web Server。当FastCGI子进程关闭连接时,请求便告处理完成。FastCGI子进程接着等待并处理来自FastCGI进程管理器(运行在Web Server中)的下一个连接。在CGI模式中,php-cgi在此便退出了。

    相关文章

      网友评论

          本文标题:nginx安装

          本文链接:https://www.haomeiwen.com/subject/luldyftx.html