nginx安装

2018-06-23  本文已影响10人  黄二的NPE
  • 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在此便退出了。

上一篇 下一篇

猜你喜欢

热点阅读