nginx源码编译安装

安装nginx的依赖包(pcre-devel openssl-devel)

[root@anuo ~]# yum install pcre-devel openssl-devel -y

创建管理用户 nginx

[root@anuo ~]# useradd -s /sbin/nologin -M nginx

下载nginx源码包

[root@anuo opt]# wget http://nginx.org/download/nginx-1.10.2.tar.gz

解压软件

[root@anuo opt]# tar xf nginx-1.10.2.tar.gz -C /usr/src/
[root@anuo opt]# cd /usr/src/nginx-1.10.2/

nginx软件编译安装过程

配置软件,在软件的解压目录中

[root@anuo nginx-1.10.2]# ./configure --prefix=/usr/local/nginx-1.10.2 --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module

编译参数说明:

 –prefix           --表示指定软件安装到哪个目录中,指定目录不存在会自动创建
 –user/–group       --nginx工作进程由哪个用户运行管理
 –with-http_stub_status_module   --启动nginx状态模块功能(用户访问nginx的网络信息)
 –with-http_ssl_module           --启动https功能模块

确认配置是否正确

[root@anuo nginx-1.10.2]# echo $? 
0

编译软件

[root@anuo nginx-1.10.2]# make

编译安装

[root@anuo nginx-1.10.2]# make install

创建软连接

[root@anuo nginx-1.10.2]# cd /usr/local/
[root@anuo local]# ln -s /usr/local/nginx-1.10.2/ /usr/local/nginx

启动程序

[root@anuo local]# /usr/local/nginx/sbin/nginx 

检查是否启动

[root@anuo local]# ps -ef | grep nginx
root       8741      1  0 08:31 ?        00:00:00 nginx: master process /usr/local/nginx/sbin/nginx
nginx      8742   8741  0 08:31 ?        00:00:00 nginx: worker process      
root       8744   1802  0 08:31 pts/0    00:00:00 grep nginx

检查端口信息

[root@anuo local]# lsof -i:80
COMMAND  PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
nginx   8741  root    6u  IPv4  19348      0t0  TCP *:http (LISTEN)
nginx   8742 nginx    6u  IPv4  19348      0t0  TCP *:http (LISTEN)

服务安装完成了

nginx命令简化方法

[root@anuo local]# echo 'export PATH=/usr/local/nginx/sbin:$PATH'>>/etc/profile
[root@anuo local]# source /etc/profile
[root@anuo local]# echo $PATH
/usr/local/nginx/sbin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

nginx 目录结构

[root@anuo nginx]# ll
总用量 36
drwx------ 2 nginx root 4096 5月  14 08:31 client_body_temp
drwxr-xr-x 2 root  root 4096 5月  14 08:26 conf  #配置文件保存目录 
drwx------ 2 nginx root 4096 5月  14 08:31 fastcgi_temp
drwxr-xr-x 2 root  root 4096 5月  14 08:26 html  #站点目录 
drwxr-xr-x 2 root  root 4096 5月  14 08:31 logs  #nginx 服务相关日志文件保存目录(错误日志访问日志)
drwx------ 2 nginx root 4096 5月  14 08:31 proxy_temp
drwxr-xr-x 2 root  root 4096 5月  14 08:26 sbin  # 服务命令目录(只有一个nginx文件)
drwx------ 2 nginx root 4096 5月  14 08:31 scgi_temp
drwx------ 2 nginx root 4096 5月  14 08:31 uwsgi_temp

nginx.conf 配置文件说明

将配置文件的注释和空行去掉方便查看
[root@anuo conf]# egrep -v "#|^$" nginx.conf.default > nginx.conf

[root@anuo conf]# cat nginx.conf

worker_processes  1;                        ← worker 进程数量 
events {                                    ←事件区块     
    worker_connections  1024;      ←每个worker进程可以处理的连接数 
}           
http {                                      ← HTTP 区块    
    include       mime.types;          ←支持的媒体文件     
    default_type  application/octet-stream; ←默认的媒体类型     
    sendfile        on;                     ←高效传输模式     
    keepalive_timeout  65;                  ←超时时间     
    server {                                 ← server 区块        
        listen       80;                    ←监听的端口         
        server_name  localhost;             ←域名         
        location / {                        ←location区块             
            root   html;                     ←站点目录             
            index  index.html index.htm;     ←首页文件        
            }                                                           
        error_page   500 502 503 504  /50x.html;  ← 错误信息配置         
        location = /50x.html {                             
            root   html;                           
        }                                          
    }                                    
}                              

nginx使用命令参数

[root@anuo conf]# nginx     --启动服务

[root@anuo conf]# nginx -s stop     --关闭服务

[root@anuo conf]# nginx -t          --修改了配置文件检查下语法

[root@anuo conf]# nginx -s reload   --重新加载

[root@anuo conf]# nginx -V          --查看编译参数信息
nginx version: nginx/1.10.2
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC) 
built with OpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx-1.10.2 --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module