首页 > 系统相关 >nginx入门-31-学习笔记

nginx入门-31-学习笔记

时间:2024-03-21 18:45:04浏览次数:15  
标签:src objs http 入门 31 modules nginx ngx

nginx入门-31-学习笔记

环境
环境:虚拟机

ip:10.0.1.0

网关:10.0.1.2

子网掩码:255.255.255.0

测试机器ip:10.0.1.101

概念

1.安装
nginx软件安装:

yum  安装 
yum install epel-release
yum install nginx -y

systemctl start nginx




编译安装 (生产环境)


yum -y install pcre-devel  openssl-devel zlib-devel gcc

groupadd nginx
useradd -g nginx -s /sbin/nologin nginx

切换到解压后的nginx目录中执行:

wget http://nginx.org/download/nginx-1.18.0.tar.gz

./configure --user=nginx --group=nginx --prefix=/usr/local/nginx 
 --with-http_ssl_module --with-http_stub_status_module


make  make install  

启动nginx:/usr/local/nginx/sbin/nginx
关闭nginx:/usr/local/nginx/sbin/nginx -s stop
检查nginx 是否异常:/usr/local/nginx/sbin/nginx  -t

重启nginx: nginx  -s reload
2.nginx特性支持高并发
常用服务软件:
处理静态资源:apache  nginx

动态资源软件:php  Tomcat  python




nginx服务特点:
1.支持高并发
2.占用资源少
3.可以做负载均衡
4.可以代替LVS 
5.可以做缓存



nginx 网络io模型  :  epoll模型    select模型


epoll模型

宿舍管理员: 做个登记信息  很快 


select模型

遍历
宿舍管理员:一个一个房间找人  会很慢





详解epoll模型和select模型的区别


Nginx 的 epoll 模型和传统的 select 模型都是用于处理网络 I/O 多路复用的技术,它们的主要区别在于:

**Select 模型**:
1. **基本原理**:select 函数允许进程监控多个文件描述符(FDs),并等待它们中的任何一个变得可读或可写。它需要一个固定大小的描述符集合(受限于 FD_SETSIZE,通常是1024个)。

2. **效率问题**:每次调用 select 时,都需要将所有监控的描述符集合复制到内核,当描述符数量较大时,这个过程的开销显著增大。并且,不论是否有事件发生,select 都需要轮询整个集合来检查哪些描述符准备好了。

3. **阻塞**:当没有描述符准备好时,select 会阻塞进程,直到有描述符变为可读或可写。

**Epoll 模型**:
1. **高效通知机制**:epoll 是Linux内核提供的另一种I/O事件通知机制,它克服了 select 的很多局限性。epoll 使用红黑树存储描述符,并通过epoll_create创建一个epoll实例,通过epoll_ctl注册和修改感兴趣的事件,然后通过epoll_wait等待事件的发生。

2. **无上限监控**:epoll 没有描述符数量的硬限制,可以轻松应对高并发连接场景。

3. **水平触发(LT)与边缘触发(ET)**:epoll 提供了两种触发模式。水平触发(Level Triggered, LT)意味着只要有数据可读或可写,epoll_wait就会一直报告这个事件,直到数据被读取或写入。边缘触发(Edge Triggered, ET)则在描述符状态改变时只报告一次事件。

4. **事件驱动**:epoll 使用事件通知机制,内核只会通知应用程序那些就绪的描述符,而不是每次都检查整个集合,大大减少了不必要的系统调用和上下文切换,提高了效率。

总结来说,相比于 select,epoll 在处理大量并发连接时具有更高的性能,因为它避免了每次循环都要遍历所有描述符,只关注那些有事件发生的描述符,同时提供了更好的可扩展性和更低的延迟。这也是为什么 Nginx 在高并发场景下选择 epoll 而非 select 的主要原因。





  目录结构
  
  /usr/local/nginx/    
  /usr/local/nginx/logs   日志目录
  /usr/local/nginx/html    发布目录
  /usr/local/nginx/conf    配置目录






























用户访问网站过程 :淘宝

1 用户访问淘宝,首选请求本地dns ,有没有对应ip

2  本地dns 没有,就会请求我们授权dns ,查找淘宝授权对应ip
3 授权dns 返回请求给出ip给   lnds
4 LNDS 返回域名给客户端 浏览器 ,自己缓存一份   客户端缓存一份
5  客户端ip  请求 淘宝数据 

6 域名返回给客户端内容    返回状态200


状态码讲解: 可以快速定位故障
200: 正常访问
404: 页面找不到
301: 永久跳转,请求到新的位置
302: 临时调转
500: 服务器内部错误,  数据库问题
502:   代理异常 ,一般后端出现问题
403: 没权限 请求拒绝

常用服务软件:

处理静态资源: apache   nginx

动态资源软件:  
 php              
tomcat     
 python
  
nginx 服务特点:
1.支持高并发 
2.占用资源少

可以做负载均衡    可以代替 LVS
可以做缓存
nginx  网络i0模型   :  epol模型   select 模型

epoll模型:


宿舍管理员:做了登记信息   很快



select 模型


宿舍管理员:一个一个房间找人 会很慢     

nginx日志切割:

第一种:脚本实现
#!/bin/bash
mv /usr/local/nginx/logs/access.log /usr/local/nginx/logs/access.log_$(date +%F)

nginx -s reload


第二种 :配置实现

# see "man logrotate" for details
# rotate log files weekly
weekly            日志切割一次一个星期

# keep 4 weeks worth of backlogs
rotate 4              切割4个日志 保留

# create new (empty) log files after rotating old ones
create                      创建一个相同文件

# use date as a suffix of the rotated file
dateext

# uncomment this if you want your log files compressed
#compress

# RPM packages drop log rotation information into this directory
include /etc/logrotate.d

# no packages own wtmp and btmp -- we'll rotate them here
/usr/local/nginx/logs/access.log
    monthly
    create 0664 root utmp
	minsize 1M
    rotate 1
}
目录结构:

/usr/local/nginx/
/usr/local/nginx/logs   日志目录
/usr/local/nginx/html    发布目录
/usr/local/nginx/conf   配置目录

nginx配置讲解:

worker_processes  2;


master process   主进程    负责管理用户运行  boss
worker process  工作进程  用户请求  用户

事件区域:
events {
    worker_connections  1024;          接收多少请求
}

配置http区域:

http {
    include       mime.types;   加载一个配置
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;  超时
    server {
        listen       80;  监听端口
        server_name  localhost; 网站域名
		
        location / {
            root   html;  发布目录
            index  test.html;  定义首页文件
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}
3.nginx配置文件讲解

  目录结构
  
  /usr/local/nginx/    
  /usr/local/nginx/logs   日志目录
  /usr/local/nginx/html    发布目录
  /usr/local/nginx/conf    配置目录




先做个备份,不动原文件,看备份文件分析一下
[root@node-1 conf]# cp nginx.conf nginx.conf.bak



- `egrep`:这是一个增强型的grep命令,用于搜索匹配正则表达式的行。
- `-v`:表示反向选择,即打印出不符合条件的行。
  - `^$`:匹配空行,即只包含换行符的行。
  - `#`:匹配以井号(#)开始的行

读取并打印出nginx.conf.bak文件中除空行和注释行以外的所有内容



[root@node-1 conf]# cat nginx.conf.bak |egrep -v "^$|#"
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  localhost;
        location / {
            root   html;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}








配置文件详解



简版
worker_processes  1;


worker_processes  1   
master process    主进程       老板   管理服务正常运行
worker process    工作进程     员工   处理用户请求



事件区域
events {
    worker_connections  1024;     一个进程可以同时处理1024请求
}


配置http 区域
http {
    include       mime.types;    加载一个配置文件
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;    超时时间
    
    
    虚拟主机 一个网站
    server {
        listen       80;    网站端口 监听80  可根据自己需求修改
        server_name  localhost;    网站域名
        location / {
            root   html;            发布目录
            index  index.html index.htm;   定义首页文件
        }
        error_page   500 502 503 504  /50x.html;  错误页面跳转
        location = /50x.html {
            root   html;
        }
    }
}





详细版
1. `worker_processes 1;`:定义Nginx工作进程的数量,这里设置为1,即只有一个进程处理所有请求。在实际生产环境中,通常会根据服务器CPU核心数来设置更大的值以充分利用多核优势。

2. `events` 块:
   - `worker_connections 1024;`:设置每个工作进程允许的最大并发连接数,这里设为1024。这意味着在同一时间内最多能处理1024个活跃的TCP连接。

3. `http` 块是Nginx配置中处理HTTP协议请求的部分:
   - `include       mime.types;`:引入mime.types文件,该文件定义了不同文件扩展名与MIME类型的对应关系,以便正确处理不同类型的内容。
   - `default_type  application/octet-stream;`:设置默认MIME类型为application/octet-stream,即未知类型的内容将以二进制流的形式发送给客户端。
   - `sendfile        on;`:启用高效文件传输模式,提高静态文件的传输效率。
   - `keepalive_timeout  65;`:设置长连接(Keep-alive)超时时间为65秒,即客户端在两次请求间隔内无动作的时间长度,超过这个时间,连接将被关闭。

4. `server` 块定义了一个监听80端口的HTTP服务器实例:
   - `listen       80;`:设置服务器监听所有IPv4地址的80端口,即默认HTTP端口。
   - `server_name  localhost;`:设置服务器名,这里为localhost,意味着服务器主要服务于本地请求,也可以替换为域名或多个域名(用空格分隔)。
   - `location / { ... }`:定义了处理所有根URL("/")请求的配置,这里设置根目录为html,并指定了默认索引文件index.html和index.htm。
   - `error_page` 块定义了错误页面的处理规则,当HTTP状态码为500、502、503、504时,会重定向到/50x.html页面。
   - `location = /50x.html { ... }`:为特定URI(这里是/50x.html)定义一个精确匹配的location块,设置其根目录也为html,当需要显示错误页面时,Nginx会从这个路径寻找文件。

总之,这段配置文件是Nginx基础的HTTP服务器配置,它将监听80端口,并提供静态网页服务,同时具备简单的错误页面处理能力。在实际应用中,根据需要可以添加更多server块以处理不同域名或端口的请求,也可配置代理、负载均衡、缓存等功能。



4.网站访问过程
用户访问网站过程:淘宝

1.用户访问淘宝,首先请求本地dns,有没有对应ip
2.本地dns没有,就会请求我们授权dns,查找淘宝授权对应ip
3.授权dns 返回请求给出ip  给 linds
4.lnds 返回域名给客户端 浏览器,自己缓存一份,客户端缓存一份
5.客户端ip  请求 淘宝数据
6.域名返回客户端内容    返回状态200




状态码讲解    可以快速定位故障

 200:正常访问
 404:页面找不到
 301:永久跳转 请求到新的位置
 302:临时的跳转
 500:服务器内部错误     一般是数据库问题  可能没有连上数据库  无权限
 502:代理异常    一般后端出现问题
 403:没权限  请求拒绝
 









实战

01-yum安装
nginx软件安装:

yum  安装 
yum install epel-release
yum install nginx -y

systemctl start nginx

卸载  
yum -y remove nginx







具体过程演示
[root@node-1 ~]# yum -y install nginx
Loaded plugins: fastestmirror
base                                                                                | 3.6 kB  00:00:00     
epel                                                                                | 4.7 kB  00:00:00     
extras                                                                              | 2.9 kB  00:00:00     
updates                                                                             | 2.9 kB  00:00:00     
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
Resolving Dependencies
--> Running transaction check
---> Package nginx.x86_64 1:1.20.1-10.el7 will be installed
--> Processing Dependency: nginx-filesystem = 1:1.20.1-10.el7 for package: 1:nginx-1.20.1-10.el7.x86_64
--> Processing Dependency: libcrypto.so.1.1(OPENSSL_1_1_0)(64bit) for package: 1:nginx-1.20.1-10.el7.x86_64
--> Processing Dependency: libssl.so.1.1(OPENSSL_1_1_0)(64bit) for package: 1:nginx-1.20.1-10.el7.x86_64
--> Processing Dependency: libssl.so.1.1(OPENSSL_1_1_1)(64bit) for package: 1:nginx-1.20.1-10.el7.x86_64
--> Processing Dependency: nginx-filesystem for package: 1:nginx-1.20.1-10.el7.x86_64
--> Processing Dependency: redhat-indexhtml for package: 1:nginx-1.20.1-10.el7.x86_64
--> Processing Dependency: libcrypto.so.1.1()(64bit) for package: 1:nginx-1.20.1-10.el7.x86_64
--> Processing Dependency: libprofiler.so.0()(64bit) for package: 1:nginx-1.20.1-10.el7.x86_64
--> Processing Dependency: libssl.so.1.1()(64bit) for package: 1:nginx-1.20.1-10.el7.x86_64
--> Running transaction check
---> Package centos-indexhtml.noarch 0:7-9.el7.centos will be installed
---> Package gperftools-libs.x86_64 0:2.6.1-1.el7 will be installed
---> Package nginx-filesystem.noarch 1:1.20.1-10.el7 will be installed
---> Package openssl11-libs.x86_64 1:1.1.1k-7.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

===========================================================================================================
 Package                       Arch                Version                         Repository         Size
===========================================================================================================
Installing:
 nginx                         x86_64              1:1.20.1-10.el7                 epel              588 k
Installing for dependencies:
 centos-indexhtml              noarch              7-9.el7.centos                  base               92 k
 gperftools-libs               x86_64              2.6.1-1.el7                     base              272 k
 nginx-filesystem              noarch              1:1.20.1-10.el7                 epel               24 k
 openssl11-libs                x86_64              1:1.1.1k-7.el7                  epel              1.5 M

Transaction Summary
===========================================================================================================
Install  1 Package (+4 Dependent packages)

Total download size: 2.4 M
Installed size: 6.7 M
Downloading packages:
(1/5): nginx-filesystem-1.20.1-10.el7.noarch.rpm                                    |  24 kB  00:00:00     
(2/5): gperftools-libs-2.6.1-1.el7.x86_64.rpm                                       | 272 kB  00:00:00     
(3/5): centos-indexhtml-7-9.el7.centos.noarch.rpm                                   |  92 kB  00:00:00     
(4/5): nginx-1.20.1-10.el7.x86_64.rpm                                               | 588 kB  00:00:01     
(5/5): openssl11-libs-1.1.1k-7.el7.x86_64.rpm                                       | 1.5 MB  00:00:01     
-----------------------------------------------------------------------------------------------------------
Total                                                                      1.3 MB/s | 2.4 MB  00:00:01     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : 1:openssl11-libs-1.1.1k-7.el7.x86_64                                                    1/5 
  Installing : 1:nginx-filesystem-1.20.1-10.el7.noarch                                                 2/5 
  Installing : centos-indexhtml-7-9.el7.centos.noarch                                                  3/5 
  Installing : gperftools-libs-2.6.1-1.el7.x86_64                                                      4/5 
  Installing : 1:nginx-1.20.1-10.el7.x86_64                                                            5/5 
  Verifying  : gperftools-libs-2.6.1-1.el7.x86_64                                                      1/5 
  Verifying  : centos-indexhtml-7-9.el7.centos.noarch                                                  2/5 
  Verifying  : 1:nginx-filesystem-1.20.1-10.el7.noarch                                                 3/5 
  Verifying  : 1:nginx-1.20.1-10.el7.x86_64                                                            4/5 
  Verifying  : 1:openssl11-libs-1.1.1k-7.el7.x86_64                                                    5/5 

Installed:
  nginx.x86_64 1:1.20.1-10.el7                                                                             

Dependency Installed:
  centos-indexhtml.noarch 0:7-9.el7.centos               gperftools-libs.x86_64 0:2.6.1-1.el7              
  nginx-filesystem.noarch 1:1.20.1-10.el7                openssl11-libs.x86_64 1:1.1.1k-7.el7              

Complete!
[root@node-1 ~]# systemctl start nginx
[root@node-1 ~]# ss -tulpn
Netid State      Recv-Q Send-Q                   Local Address:Port                     Peer Address:Port 
tcp   LISTEN     0      128                                  *:80                                  *:*      users:(("nginx",2271,6),("nginx",2270,6),("nginx",2269,6))
tcp   LISTEN     0      128                                  *:22                                  *:*      users:(("sshd",1084,3))
tcp   LISTEN     0      100                          127.0.0.1:25                                  *:*      users:(("master",1519,13))
tcp   LISTEN     0      128                                 :::80                                 :::*      users:(("nginx",2271,7),("nginx",2270,7),("nginx",2269,7))
tcp   LISTEN     0      128                                 :::22                                 :::*      users:(("sshd",1084,4))
tcp   LISTEN     0      100                                ::1:25                                 :::*      users:(("master",1519,14))

此时可以用自己的ip用浏览器打开看有没有界面

10.0.1.101





卸载


[root@node-1 ~]# yum remove -y nginx
Loaded plugins: fastestmirror
Resolving Dependencies
--> Running transaction check
---> Package nginx.x86_64 1:1.20.1-10.el7 will be erased
--> Finished Dependency Resolution

Dependencies Resolved

===========================================================================================================
 Package               Arch                   Version                          Repository             Size
===========================================================================================================
Removing:
 nginx                 x86_64                 1:1.20.1-10.el7                  @epel                 1.7 M

Transaction Summary
===========================================================================================================
Remove  1 Package

Installed size: 1.7 M
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Erasing    : 1:nginx-1.20.1-10.el7.x86_64                                                            1/1 
  Verifying  : 1:nginx-1.20.1-10.el7.x86_64                                                            1/1 

Removed:
  nginx.x86_64 1:1.20.1-10.el7                                                                             

Complete!



02-编译安装--重点
yum -y install pcre-devel  openssl-devel zlib-devel gcc

groupadd nginx
useradd -g nginx -s /sbin/nologin nginx

切换到解压后的nginx目录中执行:
cd /usr/local/src
wget http://nginx.org/download/nginx-1.18.0.tar.gz






./configure --user=nginx --group=nginx --prefix=/usr/local/nginx 
 --with-http_ssl_module --with-http_stub_status_module


make  

make install  

启动nginx:/usr/local/nginx/sbin/nginx
关闭nginx:/usr/local/nginx/sbin/nginx -s stop
检查nginx 是否异常:/usr/local/nginx/sbin/nginx  -t

重启nginx: nginx  -s reload





每次都需要输入路径才可以重启 检查等操作比较繁琐

用软连接定义
ln -s /usr/local/nginx/sbin/nginx /bin/nginx

这样就可以了

启动  : nginx 
停止:nginx -t stop
重启 :  nginx -s reload
检查:   nginx -t











具体过程演示:





nginx-1.18.0/src/http/modules/perl/
nginx-1.18.0/src/http/modules/ngx_http_flv_module.c
nginx-1.18.0/src/http/modules/ngx_http_geo_module.c
nginx-1.18.0/src/http/modules/ngx_http_geoip_module.c
nginx-1.18.0/src/http/modules/ngx_http_grpc_module.c
nginx-1.18.0/src/http/modules/ngx_http_gunzip_filter_module.c
nginx-1.18.0/src/http/modules/ngx_http_gzip_filter_module.c
nginx-1.18.0/src/http/modules/ngx_http_gzip_static_module.c
nginx-1.18.0/src/http/modules/ngx_http_headers_filter_module.c
nginx-1.18.0/src/http/modules/ngx_http_image_filter_module.c
nginx-1.18.0/src/http/modules/ngx_http_index_module.c
nginx-1.18.0/src/http/modules/ngx_http_limit_conn_module.c
nginx-1.18.0/src/http/modules/ngx_http_limit_req_module.c
nginx-1.18.0/src/http/modules/ngx_http_log_module.c
nginx-1.18.0/src/http/modules/ngx_http_map_module.c
nginx-1.18.0/src/http/modules/ngx_http_memcached_module.c
nginx-1.18.0/src/http/modules/ngx_http_mirror_module.c
nginx-1.18.0/src/http/modules/ngx_http_mp4_module.c
nginx-1.18.0/src/http/modules/ngx_http_not_modified_filter_module.c
nginx-1.18.0/src/http/modules/ngx_http_proxy_module.c
nginx-1.18.0/src/http/modules/ngx_http_random_index_module.c
nginx-1.18.0/src/http/modules/ngx_http_range_filter_module.c
nginx-1.18.0/src/http/modules/ngx_http_realip_module.c
nginx-1.18.0/src/http/modules/ngx_http_referer_module.c
nginx-1.18.0/src/http/modules/ngx_http_rewrite_module.c
nginx-1.18.0/src/http/modules/ngx_http_scgi_module.c
nginx-1.18.0/src/http/modules/ngx_http_secure_link_module.c
nginx-1.18.0/src/http/modules/ngx_http_slice_filter_module.c
nginx-1.18.0/src/http/modules/ngx_http_split_clients_module.c
nginx-1.18.0/src/http/modules/ngx_http_ssi_filter_module.c
nginx-1.18.0/src/http/modules/ngx_http_ssi_filter_module.h
nginx-1.18.0/src/http/modules/ngx_http_ssl_module.c
nginx-1.18.0/src/http/modules/ngx_http_ssl_module.h
nginx-1.18.0/src/http/modules/ngx_http_static_module.c
nginx-1.18.0/src/http/modules/ngx_http_stub_status_module.c
nginx-1.18.0/src/http/modules/ngx_http_sub_filter_module.c
nginx-1.18.0/src/http/modules/ngx_http_try_files_module.c
nginx-1.18.0/src/http/modules/ngx_http_upstream_hash_module.c
nginx-1.18.0/src/http/modules/ngx_http_upstream_ip_hash_module.c
nginx-1.18.0/src/http/modules/ngx_http_upstream_keepalive_module.c
nginx-1.18.0/src/http/modules/ngx_http_upstream_random_module.c
nginx-1.18.0/src/http/modules/ngx_http_upstream_least_conn_module.c
nginx-1.18.0/src/http/modules/ngx_http_upstream_zone_module.c
nginx-1.18.0/src/http/modules/ngx_http_userid_filter_module.c
nginx-1.18.0/src/http/modules/ngx_http_uwsgi_module.c
nginx-1.18.0/src/http/modules/ngx_http_xslt_filter_module.c
nginx-1.18.0/src/http/modules/perl/Makefile.PL
nginx-1.18.0/src/http/modules/perl/nginx.pm
nginx-1.18.0/src/http/modules/perl/nginx.xs
nginx-1.18.0/src/http/modules/perl/ngx_http_perl_module.c
nginx-1.18.0/src/http/modules/perl/ngx_http_perl_module.h
nginx-1.18.0/src/http/modules/perl/typemap
nginx-1.18.0/src/event/modules/
nginx-1.18.0/src/event/ngx_event.c
nginx-1.18.0/src/event/ngx_event.h
nginx-1.18.0/src/event/ngx_event_accept.c
nginx-1.18.0/src/event/ngx_event_connect.c
nginx-1.18.0/src/event/ngx_event_connect.h
nginx-1.18.0/src/event/ngx_event_openssl.c
nginx-1.18.0/src/event/ngx_event_openssl.h
nginx-1.18.0/src/event/ngx_event_openssl_stapling.c
nginx-1.18.0/src/event/ngx_event_pipe.c
nginx-1.18.0/src/event/ngx_event_pipe.h
nginx-1.18.0/src/event/ngx_event_posted.c
nginx-1.18.0/src/event/ngx_event_posted.h
nginx-1.18.0/src/event/ngx_event_timer.c
nginx-1.18.0/src/event/ngx_event_timer.h
nginx-1.18.0/src/event/ngx_event_udp.c
nginx-1.18.0/src/event/modules/ngx_devpoll_module.c
nginx-1.18.0/src/event/modules/ngx_epoll_module.c
nginx-1.18.0/src/event/modules/ngx_eventport_module.c
nginx-1.18.0/src/event/modules/ngx_kqueue_module.c
nginx-1.18.0/src/event/modules/ngx_poll_module.c
nginx-1.18.0/src/event/modules/ngx_select_module.c
nginx-1.18.0/src/event/modules/ngx_win32_poll_module.c
nginx-1.18.0/src/event/modules/ngx_win32_select_module.c
nginx-1.18.0/src/core/nginx.c
nginx-1.18.0/src/core/nginx.h
nginx-1.18.0/src/core/ngx_array.c
nginx-1.18.0/src/core/ngx_array.h
nginx-1.18.0/src/core/ngx_buf.c
nginx-1.18.0/src/core/ngx_buf.h
nginx-1.18.0/src/core/ngx_conf_file.c
nginx-1.18.0/src/core/ngx_conf_file.h
nginx-1.18.0/src/core/ngx_config.h
nginx-1.18.0/src/core/ngx_connection.c
nginx-1.18.0/src/core/ngx_connection.h
nginx-1.18.0/src/core/ngx_core.h
nginx-1.18.0/src/core/ngx_cpuinfo.c
nginx-1.18.0/src/core/ngx_crc.h
nginx-1.18.0/src/core/ngx_crc32.c
nginx-1.18.0/src/core/ngx_crc32.h
nginx-1.18.0/src/core/ngx_crypt.c
nginx-1.18.0/src/core/ngx_crypt.h
nginx-1.18.0/src/core/ngx_cycle.c
nginx-1.18.0/src/core/ngx_cycle.h
nginx-1.18.0/src/core/ngx_file.c
nginx-1.18.0/src/core/ngx_file.h
nginx-1.18.0/src/core/ngx_hash.c
nginx-1.18.0/src/core/ngx_hash.h
nginx-1.18.0/src/core/ngx_inet.c
nginx-1.18.0/src/core/ngx_inet.h
nginx-1.18.0/src/core/ngx_list.c
nginx-1.18.0/src/core/ngx_list.h
nginx-1.18.0/src/core/ngx_log.c
nginx-1.18.0/src/core/ngx_log.h
nginx-1.18.0/src/core/ngx_md5.c
nginx-1.18.0/src/core/ngx_md5.h
nginx-1.18.0/src/core/ngx_module.c
nginx-1.18.0/src/core/ngx_module.h
nginx-1.18.0/src/core/ngx_murmurhash.c
nginx-1.18.0/src/core/ngx_murmurhash.h
nginx-1.18.0/src/core/ngx_open_file_cache.c
nginx-1.18.0/src/core/ngx_open_file_cache.h
nginx-1.18.0/src/core/ngx_output_chain.c
nginx-1.18.0/src/core/ngx_palloc.c
nginx-1.18.0/src/core/ngx_palloc.h
nginx-1.18.0/src/core/ngx_parse.c
nginx-1.18.0/src/core/ngx_parse.h
nginx-1.18.0/src/core/ngx_parse_time.c
nginx-1.18.0/src/core/ngx_queue.c
nginx-1.18.0/src/core/ngx_parse_time.h
nginx-1.18.0/src/core/ngx_proxy_protocol.c
nginx-1.18.0/src/core/ngx_proxy_protocol.h
nginx-1.18.0/src/core/ngx_queue.h
nginx-1.18.0/src/core/ngx_radix_tree.c
nginx-1.18.0/src/core/ngx_radix_tree.h
nginx-1.18.0/src/core/ngx_rbtree.c
nginx-1.18.0/src/core/ngx_rbtree.h
nginx-1.18.0/src/core/ngx_regex.c
nginx-1.18.0/src/core/ngx_regex.h
nginx-1.18.0/src/core/ngx_resolver.c
nginx-1.18.0/src/core/ngx_resolver.h
nginx-1.18.0/src/core/ngx_rwlock.c
nginx-1.18.0/src/core/ngx_rwlock.h
nginx-1.18.0/src/core/ngx_sha1.c
nginx-1.18.0/src/core/ngx_sha1.h
nginx-1.18.0/src/core/ngx_shmtx.c
nginx-1.18.0/src/core/ngx_shmtx.h
nginx-1.18.0/src/core/ngx_slab.c
nginx-1.18.0/src/core/ngx_slab.h
nginx-1.18.0/src/core/ngx_spinlock.c
nginx-1.18.0/src/core/ngx_string.c
nginx-1.18.0/src/core/ngx_string.h
nginx-1.18.0/src/core/ngx_syslog.c
nginx-1.18.0/src/core/ngx_syslog.h
nginx-1.18.0/src/core/ngx_thread_pool.c
nginx-1.18.0/src/core/ngx_thread_pool.h
nginx-1.18.0/src/core/ngx_times.c
nginx-1.18.0/src/core/ngx_times.h
nginx-1.18.0/contrib/README
nginx-1.18.0/contrib/geo2nginx.pl
nginx-1.18.0/contrib/unicode2nginx/
nginx-1.18.0/contrib/vim/
nginx-1.18.0/contrib/vim/ftdetect/
nginx-1.18.0/contrib/vim/ftplugin/
nginx-1.18.0/contrib/vim/indent/
nginx-1.18.0/contrib/vim/syntax/
nginx-1.18.0/contrib/vim/syntax/nginx.vim
nginx-1.18.0/contrib/vim/indent/nginx.vim
nginx-1.18.0/contrib/vim/ftplugin/nginx.vim
nginx-1.18.0/contrib/vim/ftdetect/nginx.vim
nginx-1.18.0/contrib/unicode2nginx/koi-utf
nginx-1.18.0/contrib/unicode2nginx/unicode-to-nginx.pl
nginx-1.18.0/contrib/unicode2nginx/win-utf
nginx-1.18.0/conf/fastcgi.conf
nginx-1.18.0/conf/fastcgi_params
nginx-1.18.0/conf/koi-utf
nginx-1.18.0/conf/koi-win
nginx-1.18.0/conf/mime.types
nginx-1.18.0/conf/nginx.conf
nginx-1.18.0/conf/scgi_params
nginx-1.18.0/conf/uwsgi_params
nginx-1.18.0/conf/win-utf
nginx-1.18.0/auto/cc/
nginx-1.18.0/auto/define
nginx-1.18.0/auto/endianness
nginx-1.18.0/auto/feature
nginx-1.18.0/auto/have
nginx-1.18.0/auto/have_headers
nginx-1.18.0/auto/headers
nginx-1.18.0/auto/include
nginx-1.18.0/auto/init
nginx-1.18.0/auto/install
nginx-1.18.0/auto/lib/
nginx-1.18.0/auto/make
nginx-1.18.0/auto/module
nginx-1.18.0/auto/modules
nginx-1.18.0/auto/nohave
nginx-1.18.0/auto/options
nginx-1.18.0/auto/os/
nginx-1.18.0/auto/sources
nginx-1.18.0/auto/stubs
nginx-1.18.0/auto/summary
nginx-1.18.0/auto/threads
nginx-1.18.0/auto/types/
nginx-1.18.0/auto/unix
nginx-1.18.0/auto/types/sizeof
nginx-1.18.0/auto/types/typedef
nginx-1.18.0/auto/types/uintptr_t
nginx-1.18.0/auto/types/value
nginx-1.18.0/auto/os/conf
nginx-1.18.0/auto/os/darwin
nginx-1.18.0/auto/os/freebsd
nginx-1.18.0/auto/os/linux
nginx-1.18.0/auto/os/solaris
nginx-1.18.0/auto/os/win32
nginx-1.18.0/auto/lib/conf
nginx-1.18.0/auto/lib/geoip/
nginx-1.18.0/auto/lib/google-perftools/
nginx-1.18.0/auto/lib/libatomic/
nginx-1.18.0/auto/lib/libgd/
nginx-1.18.0/auto/lib/libxslt/
nginx-1.18.0/auto/lib/make
nginx-1.18.0/auto/lib/openssl/
nginx-1.18.0/auto/lib/pcre/
nginx-1.18.0/auto/lib/perl/
nginx-1.18.0/auto/lib/zlib/
nginx-1.18.0/auto/lib/zlib/conf
nginx-1.18.0/auto/lib/zlib/make
nginx-1.18.0/auto/lib/zlib/makefile.bcc
nginx-1.18.0/auto/lib/zlib/makefile.msvc
nginx-1.18.0/auto/lib/zlib/makefile.owc
nginx-1.18.0/auto/lib/perl/conf
nginx-1.18.0/auto/lib/perl/make
nginx-1.18.0/auto/lib/pcre/conf
nginx-1.18.0/auto/lib/pcre/make
nginx-1.18.0/auto/lib/pcre/makefile.bcc
nginx-1.18.0/auto/lib/pcre/makefile.msvc
nginx-1.18.0/auto/lib/pcre/makefile.owc
nginx-1.18.0/auto/lib/openssl/conf
nginx-1.18.0/auto/lib/openssl/make
nginx-1.18.0/auto/lib/openssl/makefile.bcc
nginx-1.18.0/auto/lib/openssl/makefile.msvc
nginx-1.18.0/auto/lib/libxslt/conf
nginx-1.18.0/auto/lib/libgd/conf
nginx-1.18.0/auto/lib/libatomic/conf
nginx-1.18.0/auto/lib/libatomic/make
nginx-1.18.0/auto/lib/google-perftools/conf
nginx-1.18.0/auto/lib/geoip/conf
nginx-1.18.0/auto/cc/acc
nginx-1.18.0/auto/cc/bcc
nginx-1.18.0/auto/cc/ccc
nginx-1.18.0/auto/cc/clang
nginx-1.18.0/auto/cc/conf
nginx-1.18.0/auto/cc/gcc
nginx-1.18.0/auto/cc/icc
nginx-1.18.0/auto/cc/msvc
nginx-1.18.0/auto/cc/name
nginx-1.18.0/auto/cc/owc
nginx-1.18.0/auto/cc/sunc
[root@node-1 src]# ls
nginx-1.18.0  nginx-1.18.0.tar.gz
[root@node-1 src]# cd nginx-1.18.0
[root@node-1 nginx-1.18.0]# ls
auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  man  README  src
[root@node-1 nginx-1.18.0]# ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx 
checking for OS
 + Linux 3.10.0-229.el7.x86_64 x86_64
checking for C compiler ... found
 + using GNU C compiler
 + gcc version: 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) 
checking for gcc -pipe switch ... found
checking for -Wl,-E switch ... found
checking for gcc builtin atomic operations ... found
checking for C99 variadic macros ... found
checking for gcc variadic macros ... found
checking for gcc builtin 64 bit byteswap ... found
checking for unistd.h ... found
checking for inttypes.h ... found
checking for limits.h ... found
checking for sys/filio.h ... not found
checking for sys/param.h ... found
checking for sys/mount.h ... found
checking for sys/statvfs.h ... found
checking for crypt.h ... found
checking for Linux specific features
checking for epoll ... found
checking for EPOLLRDHUP ... found
checking for EPOLLEXCLUSIVE ... not found
checking for O_PATH ... found
checking for sendfile() ... found
checking for sendfile64() ... found
checking for sys/prctl.h ... found
checking for prctl(PR_SET_DUMPABLE) ... found
checking for prctl(PR_SET_KEEPCAPS) ... found
checking for capabilities ... found
checking for crypt_r() ... found
checking for sys/vfs.h ... found
checking for poll() ... found
checking for /dev/poll ... not found
checking for kqueue ... not found
checking for crypt() ... not found
checking for crypt() in libcrypt ... found
checking for F_READAHEAD ... not found
checking for posix_fadvise() ... found
checking for O_DIRECT ... found
checking for F_NOCACHE ... not found
checking for directio() ... not found
checking for statfs() ... found
checking for statvfs() ... found
checking for dlopen() ... not found
checking for dlopen() in libdl ... found
checking for sched_yield() ... found
checking for sched_setaffinity() ... found
checking for SO_SETFIB ... not found
checking for SO_REUSEPORT ... found
checking for SO_ACCEPTFILTER ... not found
checking for SO_BINDANY ... not found
checking for IP_TRANSPARENT ... found
checking for IP_BINDANY ... not found
checking for IP_BIND_ADDRESS_NO_PORT ... found
checking for IP_RECVDSTADDR ... not found
checking for IP_SENDSRCADDR ... not found
checking for IP_PKTINFO ... found
checking for IPV6_RECVPKTINFO ... found
checking for TCP_DEFER_ACCEPT ... found
checking for TCP_KEEPIDLE ... found
checking for TCP_FASTOPEN ... found
checking for TCP_INFO ... found
checking for accept4() ... found
checking for eventfd() ... found
checking for int size ... 4 bytes
checking for long size ... 8 bytes
checking for long long size ... 8 bytes
checking for void * size ... 8 bytes
checking for uint32_t ... found
checking for uint64_t ... found
checking for sig_atomic_t ... found
checking for sig_atomic_t size ... 4 bytes
checking for socklen_t ... found
checking for in_addr_t ... found
checking for in_port_t ... found
checking for rlim_t ... found
checking for uintptr_t ... uintptr_t found
checking for system byte ordering ... little endian
checking for size_t size ... 8 bytes
checking for off_t size ... 8 bytes
checking for time_t size ... 8 bytes
checking for AF_INET6 ... found
checking for setproctitle() ... not found
checking for pread() ... found
checking for pwrite() ... found
checking for pwritev() ... found
checking for sys_nerr ... found
checking for localtime_r() ... found
checking for clock_gettime(CLOCK_MONOTONIC) ... found
checking for posix_memalign() ... found
checking for memalign() ... found
checking for mmap(MAP_ANON|MAP_SHARED) ... found
checking for mmap("/dev/zero", MAP_SHARED) ... found
checking for System V shared memory ... found
checking for POSIX semaphores ... not found
checking for POSIX semaphores in libpthread ... found
checking for struct msghdr.msg_control ... found
checking for ioctl(FIONBIO) ... found
checking for ioctl(FIONREAD) ... found
checking for struct tm.tm_gmtoff ... found
checking for struct dirent.d_namlen ... not found
checking for struct dirent.d_type ... found
checking for sysconf(_SC_NPROCESSORS_ONLN) ... found
checking for sysconf(_SC_LEVEL1_DCACHE_LINESIZE) ... found
checking for openat(), fstatat() ... found
checking for getaddrinfo() ... found
checking for PCRE library ... found
checking for PCRE JIT support ... found
checking for zlib library ... found
creating objs/Makefile

Configuration summary
  + using system PCRE library
  + OpenSSL library is not used
  + using system zlib library

  nginx path prefix: "/usr/local/nginx"
  nginx binary file: "/usr/local/nginx/sbin/nginx"
  nginx modules path: "/usr/local/nginx/modules"
  nginx configuration prefix: "/usr/local/nginx/conf"
  nginx configuration file: "/usr/local/nginx/conf/nginx.conf"
  nginx pid file: "/usr/local/nginx/logs/nginx.pid"
  nginx error log file: "/usr/local/nginx/logs/error.log"
  nginx http access log file: "/usr/local/nginx/logs/access.log"
  nginx http client request body temporary files: "client_body_temp"
  nginx http proxy temporary files: "proxy_temp"
  nginx http fastcgi temporary files: "fastcgi_temp"
  nginx http uwsgi temporary files: "uwsgi_temp"
  nginx http scgi temporary files: "scgi_temp"

[root@node-1 nginx-1.18.0]# make
make -f objs/Makefile
make[1]: Entering directory `/usr/local/src/nginx-1.18.0'
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/nginx.o \
	src/core/nginx.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_log.o \
	src/core/ngx_log.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_palloc.o \
	src/core/ngx_palloc.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_array.o \
	src/core/ngx_array.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_list.o \
	src/core/ngx_list.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_hash.o \
	src/core/ngx_hash.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_buf.o \
	src/core/ngx_buf.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_queue.o \
	src/core/ngx_queue.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_output_chain.o \
	src/core/ngx_output_chain.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_string.o \
	src/core/ngx_string.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_parse.o \
	src/core/ngx_parse.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_parse_time.o \
	src/core/ngx_parse_time.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_inet.o \
	src/core/ngx_inet.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_file.o \
	src/core/ngx_file.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_crc32.o \
	src/core/ngx_crc32.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_murmurhash.o \
	src/core/ngx_murmurhash.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_md5.o \
	src/core/ngx_md5.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_sha1.o \
	src/core/ngx_sha1.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_rbtree.o \
	src/core/ngx_rbtree.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_radix_tree.o \
	src/core/ngx_radix_tree.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_slab.o \
	src/core/ngx_slab.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_times.o \
	src/core/ngx_times.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_shmtx.o \
	src/core/ngx_shmtx.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_connection.o \
	src/core/ngx_connection.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_cycle.o \
	src/core/ngx_cycle.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_spinlock.o \
	src/core/ngx_spinlock.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_rwlock.o \
	src/core/ngx_rwlock.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_cpuinfo.o \
	src/core/ngx_cpuinfo.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_conf_file.o \
	src/core/ngx_conf_file.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_module.o \
	src/core/ngx_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_resolver.o \
	src/core/ngx_resolver.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_open_file_cache.o \
	src/core/ngx_open_file_cache.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_crypt.o \
	src/core/ngx_crypt.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_proxy_protocol.o \
	src/core/ngx_proxy_protocol.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_syslog.o \
	src/core/ngx_syslog.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/event/ngx_event.o \
	src/event/ngx_event.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/event/ngx_event_timer.o \
	src/event/ngx_event_timer.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/event/ngx_event_posted.o \
	src/event/ngx_event_posted.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/event/ngx_event_accept.o \
	src/event/ngx_event_accept.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/event/ngx_event_udp.o \
	src/event/ngx_event_udp.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/event/ngx_event_connect.o \
	src/event/ngx_event_connect.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/event/ngx_event_pipe.o \
	src/event/ngx_event_pipe.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/os/unix/ngx_time.o \
	src/os/unix/ngx_time.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/os/unix/ngx_errno.o \
	src/os/unix/ngx_errno.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/os/unix/ngx_alloc.o \
	src/os/unix/ngx_alloc.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/os/unix/ngx_files.o \
	src/os/unix/ngx_files.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/os/unix/ngx_socket.o \
	src/os/unix/ngx_socket.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/os/unix/ngx_recv.o \
	src/os/unix/ngx_recv.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/os/unix/ngx_readv_chain.o \
	src/os/unix/ngx_readv_chain.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/os/unix/ngx_udp_recv.o \
	src/os/unix/ngx_udp_recv.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/os/unix/ngx_send.o \
	src/os/unix/ngx_send.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/os/unix/ngx_writev_chain.o \
	src/os/unix/ngx_writev_chain.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/os/unix/ngx_udp_send.o \
	src/os/unix/ngx_udp_send.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/os/unix/ngx_udp_sendmsg_chain.o \
	src/os/unix/ngx_udp_sendmsg_chain.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/os/unix/ngx_channel.o \
	src/os/unix/ngx_channel.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/os/unix/ngx_shmem.o \
	src/os/unix/ngx_shmem.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/os/unix/ngx_process.o \
	src/os/unix/ngx_process.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/os/unix/ngx_daemon.o \
	src/os/unix/ngx_daemon.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/os/unix/ngx_setaffinity.o \
	src/os/unix/ngx_setaffinity.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/os/unix/ngx_setproctitle.o \
	src/os/unix/ngx_setproctitle.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/os/unix/ngx_posix_init.o \
	src/os/unix/ngx_posix_init.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/os/unix/ngx_user.o \
	src/os/unix/ngx_user.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/os/unix/ngx_dlopen.o \
	src/os/unix/ngx_dlopen.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/os/unix/ngx_process_cycle.o \
	src/os/unix/ngx_process_cycle.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/os/unix/ngx_linux_init.o \
	src/os/unix/ngx_linux_init.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/event/modules/ngx_epoll_module.o \
	src/event/modules/ngx_epoll_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/os/unix/ngx_linux_sendfile_chain.o \
	src/os/unix/ngx_linux_sendfile_chain.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_regex.o \
	src/core/ngx_regex.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \
	-o objs/src/http/ngx_http.o \
	src/http/ngx_http.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \
	-o objs/src/http/ngx_http_core_module.o \
	src/http/ngx_http_core_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \
	-o objs/src/http/ngx_http_special_response.o \
	src/http/ngx_http_special_response.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \
	-o objs/src/http/ngx_http_request.o \
	src/http/ngx_http_request.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \
	-o objs/src/http/ngx_http_parse.o \
	src/http/ngx_http_parse.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \
	-o objs/src/http/modules/ngx_http_log_module.o \
	src/http/modules/ngx_http_log_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \
	-o objs/src/http/ngx_http_request_body.o \
	src/http/ngx_http_request_body.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \
	-o objs/src/http/ngx_http_variables.o \
	src/http/ngx_http_variables.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \
	-o objs/src/http/ngx_http_script.o \
	src/http/ngx_http_script.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \
	-o objs/src/http/ngx_http_upstream.o \
	src/http/ngx_http_upstream.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \
	-o objs/src/http/ngx_http_upstream_round_robin.o \
	src/http/ngx_http_upstream_round_robin.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \
	-o objs/src/http/ngx_http_file_cache.o \
	src/http/ngx_http_file_cache.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \
	-o objs/src/http/ngx_http_write_filter_module.o \
	src/http/ngx_http_write_filter_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \
	-o objs/src/http/ngx_http_header_filter_module.o \
	src/http/ngx_http_header_filter_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \
	-o objs/src/http/modules/ngx_http_chunked_filter_module.o \
	src/http/modules/ngx_http_chunked_filter_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \
	-o objs/src/http/modules/ngx_http_range_filter_module.o \
	src/http/modules/ngx_http_range_filter_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \
	-o objs/src/http/modules/ngx_http_gzip_filter_module.o \
	src/http/modules/ngx_http_gzip_filter_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \
	-o objs/src/http/ngx_http_postpone_filter_module.o \
	src/http/ngx_http_postpone_filter_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \
	-o objs/src/http/modules/ngx_http_ssi_filter_module.o \
	src/http/modules/ngx_http_ssi_filter_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \
	-o objs/src/http/modules/ngx_http_charset_filter_module.o \
	src/http/modules/ngx_http_charset_filter_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \
	-o objs/src/http/modules/ngx_http_userid_filter_module.o \
	src/http/modules/ngx_http_userid_filter_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \
	-o objs/src/http/modules/ngx_http_headers_filter_module.o \
	src/http/modules/ngx_http_headers_filter_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \
	-o objs/src/http/ngx_http_copy_filter_module.o \
	src/http/ngx_http_copy_filter_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \
	-o objs/src/http/modules/ngx_http_not_modified_filter_module.o \
	src/http/modules/ngx_http_not_modified_filter_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \
	-o objs/src/http/modules/ngx_http_static_module.o \
	src/http/modules/ngx_http_static_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \
	-o objs/src/http/modules/ngx_http_autoindex_module.o \
	src/http/modules/ngx_http_autoindex_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \
	-o objs/src/http/modules/ngx_http_index_module.o \
	src/http/modules/ngx_http_index_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \
	-o objs/src/http/modules/ngx_http_mirror_module.o \
	src/http/modules/ngx_http_mirror_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \
	-o objs/src/http/modules/ngx_http_try_files_module.o \
	src/http/modules/ngx_http_try_files_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \
	-o objs/src/http/modules/ngx_http_auth_basic_module.o \
	src/http/modules/ngx_http_auth_basic_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \
	-o objs/src/http/modules/ngx_http_access_module.o \
	src/http/modules/ngx_http_access_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \
	-o objs/src/http/modules/ngx_http_limit_conn_module.o \
	src/http/modules/ngx_http_limit_conn_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \
	-o objs/src/http/modules/ngx_http_limit_req_module.o \
	src/http/modules/ngx_http_limit_req_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \
	-o objs/src/http/modules/ngx_http_geo_module.o \
	src/http/modules/ngx_http_geo_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \
	-o objs/src/http/modules/ngx_http_map_module.o \
	src/http/modules/ngx_http_map_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \
	-o objs/src/http/modules/ngx_http_split_clients_module.o \
	src/http/modules/ngx_http_split_clients_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \
	-o objs/src/http/modules/ngx_http_referer_module.o \
	src/http/modules/ngx_http_referer_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \
	-o objs/src/http/modules/ngx_http_rewrite_module.o \
	src/http/modules/ngx_http_rewrite_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \
	-o objs/src/http/modules/ngx_http_proxy_module.o \
	src/http/modules/ngx_http_proxy_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \
	-o objs/src/http/modules/ngx_http_fastcgi_module.o \
	src/http/modules/ngx_http_fastcgi_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \
	-o objs/src/http/modules/ngx_http_uwsgi_module.o \
	src/http/modules/ngx_http_uwsgi_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \
	-o objs/src/http/modules/ngx_http_scgi_module.o \
	src/http/modules/ngx_http_scgi_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \
	-o objs/src/http/modules/ngx_http_memcached_module.o \
	src/http/modules/ngx_http_memcached_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \
	-o objs/src/http/modules/ngx_http_empty_gif_module.o \
	src/http/modules/ngx_http_empty_gif_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \
	-o objs/src/http/modules/ngx_http_browser_module.o \
	src/http/modules/ngx_http_browser_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \
	-o objs/src/http/modules/ngx_http_upstream_hash_module.o \
	src/http/modules/ngx_http_upstream_hash_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \
	-o objs/src/http/modules/ngx_http_upstream_ip_hash_module.o \
	src/http/modules/ngx_http_upstream_ip_hash_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \
	-o objs/src/http/modules/ngx_http_upstream_least_conn_module.o \
	src/http/modules/ngx_http_upstream_least_conn_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \
	-o objs/src/http/modules/ngx_http_upstream_random_module.o \
	src/http/modules/ngx_http_upstream_random_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \
	-o objs/src/http/modules/ngx_http_upstream_keepalive_module.o \
	src/http/modules/ngx_http_upstream_keepalive_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \
	-o objs/src/http/modules/ngx_http_upstream_zone_module.o \
	src/http/modules/ngx_http_upstream_zone_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/ngx_modules.o \
	objs/ngx_modules.c
cc -o objs/nginx \
objs/src/core/nginx.o \
objs/src/core/ngx_log.o \
objs/src/core/ngx_palloc.o \
objs/src/core/ngx_array.o \
objs/src/core/ngx_list.o \
objs/src/core/ngx_hash.o \
objs/src/core/ngx_buf.o \
objs/src/core/ngx_queue.o \
objs/src/core/ngx_output_chain.o \
objs/src/core/ngx_string.o \
objs/src/core/ngx_parse.o \
objs/src/core/ngx_parse_time.o \
objs/src/core/ngx_inet.o \
objs/src/core/ngx_file.o \
objs/src/core/ngx_crc32.o \
objs/src/core/ngx_murmurhash.o \
objs/src/core/ngx_md5.o \
objs/src/core/ngx_sha1.o \
objs/src/core/ngx_rbtree.o \
objs/src/core/ngx_radix_tree.o \
objs/src/core/ngx_slab.o \
objs/src/core/ngx_times.o \
objs/src/core/ngx_shmtx.o \
objs/src/core/ngx_connection.o \
objs/src/core/ngx_cycle.o \
objs/src/core/ngx_spinlock.o \
objs/src/core/ngx_rwlock.o \
objs/src/core/ngx_cpuinfo.o \
objs/src/core/ngx_conf_file.o \
objs/src/core/ngx_module.o \
objs/src/core/ngx_resolver.o \
objs/src/core/ngx_open_file_cache.o \
objs/src/core/ngx_crypt.o \
objs/src/core/ngx_proxy_protocol.o \
objs/src/core/ngx_syslog.o \
objs/src/event/ngx_event.o \
objs/src/event/ngx_event_timer.o \
objs/src/event/ngx_event_posted.o \
objs/src/event/ngx_event_accept.o \
objs/src/event/ngx_event_udp.o \
objs/src/event/ngx_event_connect.o \
objs/src/event/ngx_event_pipe.o \
objs/src/os/unix/ngx_time.o \
objs/src/os/unix/ngx_errno.o \
objs/src/os/unix/ngx_alloc.o \
objs/src/os/unix/ngx_files.o \
objs/src/os/unix/ngx_socket.o \
objs/src/os/unix/ngx_recv.o \
objs/src/os/unix/ngx_readv_chain.o \
objs/src/os/unix/ngx_udp_recv.o \
objs/src/os/unix/ngx_send.o \
objs/src/os/unix/ngx_writev_chain.o \
objs/src/os/unix/ngx_udp_send.o \
objs/src/os/unix/ngx_udp_sendmsg_chain.o \
objs/src/os/unix/ngx_channel.o \
objs/src/os/unix/ngx_shmem.o \
objs/src/os/unix/ngx_process.o \
objs/src/os/unix/ngx_daemon.o \
objs/src/os/unix/ngx_setaffinity.o \
objs/src/os/unix/ngx_setproctitle.o \
objs/src/os/unix/ngx_posix_init.o \
objs/src/os/unix/ngx_user.o \
objs/src/os/unix/ngx_dlopen.o \
objs/src/os/unix/ngx_process_cycle.o \
objs/src/os/unix/ngx_linux_init.o \
objs/src/event/modules/ngx_epoll_module.o \
objs/src/os/unix/ngx_linux_sendfile_chain.o \
objs/src/core/ngx_regex.o \
objs/src/http/ngx_http.o \
objs/src/http/ngx_http_core_module.o \
objs/src/http/ngx_http_special_response.o \
objs/src/http/ngx_http_request.o \
objs/src/http/ngx_http_parse.o \
objs/src/http/modules/ngx_http_log_module.o \
objs/src/http/ngx_http_request_body.o \
objs/src/http/ngx_http_variables.o \
objs/src/http/ngx_http_script.o \
objs/src/http/ngx_http_upstream.o \
objs/src/http/ngx_http_upstream_round_robin.o \
objs/src/http/ngx_http_file_cache.o \
objs/src/http/ngx_http_write_filter_module.o \
objs/src/http/ngx_http_header_filter_module.o \
objs/src/http/modules/ngx_http_chunked_filter_module.o \
objs/src/http/modules/ngx_http_range_filter_module.o \
objs/src/http/modules/ngx_http_gzip_filter_module.o \
objs/src/http/ngx_http_postpone_filter_module.o \
objs/src/http/modules/ngx_http_ssi_filter_module.o \
objs/src/http/modules/ngx_http_charset_filter_module.o \
objs/src/http/modules/ngx_http_userid_filter_module.o \
objs/src/http/modules/ngx_http_headers_filter_module.o \
objs/src/http/ngx_http_copy_filter_module.o \
objs/src/http/modules/ngx_http_not_modified_filter_module.o \
objs/src/http/modules/ngx_http_static_module.o \
objs/src/http/modules/ngx_http_autoindex_module.o \
objs/src/http/modules/ngx_http_index_module.o \
objs/src/http/modules/ngx_http_mirror_module.o \
objs/src/http/modules/ngx_http_try_files_module.o \
objs/src/http/modules/ngx_http_auth_basic_module.o \
objs/src/http/modules/ngx_http_access_module.o \
objs/src/http/modules/ngx_http_limit_conn_module.o \
objs/src/http/modules/ngx_http_limit_req_module.o \
objs/src/http/modules/ngx_http_geo_module.o \
objs/src/http/modules/ngx_http_map_module.o \
objs/src/http/modules/ngx_http_split_clients_module.o \
objs/src/http/modules/ngx_http_referer_module.o \
objs/src/http/modules/ngx_http_rewrite_module.o \
objs/src/http/modules/ngx_http_proxy_module.o \
objs/src/http/modules/ngx_http_fastcgi_module.o \
objs/src/http/modules/ngx_http_uwsgi_module.o \
objs/src/http/modules/ngx_http_scgi_module.o \
objs/src/http/modules/ngx_http_memcached_module.o \
objs/src/http/modules/ngx_http_empty_gif_module.o \
objs/src/http/modules/ngx_http_browser_module.o \
objs/src/http/modules/ngx_http_upstream_hash_module.o \
objs/src/http/modules/ngx_http_upstream_ip_hash_module.o \
objs/src/http/modules/ngx_http_upstream_least_conn_module.o \
objs/src/http/modules/ngx_http_upstream_random_module.o \
objs/src/http/modules/ngx_http_upstream_keepalive_module.o \
objs/src/http/modules/ngx_http_upstream_zone_module.o \
objs/ngx_modules.o \
-ldl -lpthread -lcrypt -lpcre -lz \
-Wl,-E
sed -e "s|%%PREFIX%%|/usr/local/nginx|" \
	-e "s|%%PID_PATH%%|/usr/local/nginx/logs/nginx.pid|" \
	-e "s|%%CONF_PATH%%|/usr/local/nginx/conf/nginx.conf|" \
	-e "s|%%ERROR_LOG_PATH%%|/usr/local/nginx/logs/error.log|" \
	< man/nginx.8 > objs/nginx.8
make[1]: Leaving directory `/usr/local/src/nginx-1.18.0'
[root@node-1 nginx-1.18.0]# make install
make -f objs/Makefile install
make[1]: Entering directory `/usr/local/src/nginx-1.18.0'
test -d '/usr/local/nginx' || mkdir -p '/usr/local/nginx'
test -d '/usr/local/nginx/sbin' \
	|| mkdir -p '/usr/local/nginx/sbin'
test ! -f '/usr/local/nginx/sbin/nginx' \
	|| mv '/usr/local/nginx/sbin/nginx' \
		'/usr/local/nginx/sbin/nginx.old'
cp objs/nginx '/usr/local/nginx/sbin/nginx'
test -d '/usr/local/nginx/conf' \
	|| mkdir -p '/usr/local/nginx/conf'
cp conf/koi-win '/usr/local/nginx/conf'
cp conf/koi-utf '/usr/local/nginx/conf'
cp conf/win-utf '/usr/local/nginx/conf'
test -f '/usr/local/nginx/conf/mime.types' \
	|| cp conf/mime.types '/usr/local/nginx/conf'
cp conf/mime.types '/usr/local/nginx/conf/mime.types.default'
test -f '/usr/local/nginx/conf/fastcgi_params' \
	|| cp conf/fastcgi_params '/usr/local/nginx/conf'
cp conf/fastcgi_params \
	'/usr/local/nginx/conf/fastcgi_params.default'
test -f '/usr/local/nginx/conf/fastcgi.conf' \
	|| cp conf/fastcgi.conf '/usr/local/nginx/conf'
cp conf/fastcgi.conf '/usr/local/nginx/conf/fastcgi.conf.default'
test -f '/usr/local/nginx/conf/uwsgi_params' \
	|| cp conf/uwsgi_params '/usr/local/nginx/conf'
cp conf/uwsgi_params \
	'/usr/local/nginx/conf/uwsgi_params.default'
test -f '/usr/local/nginx/conf/scgi_params' \
	|| cp conf/scgi_params '/usr/local/nginx/conf'
cp conf/scgi_params \
	'/usr/local/nginx/conf/scgi_params.default'
test -f '/usr/local/nginx/conf/nginx.conf' \
	|| cp conf/nginx.conf '/usr/local/nginx/conf/nginx.conf'
cp conf/nginx.conf '/usr/local/nginx/conf/nginx.conf.default'
test -d '/usr/local/nginx/logs' \
	|| mkdir -p '/usr/local/nginx/logs'
test -d '/usr/local/nginx/logs' \
	|| mkdir -p '/usr/local/nginx/logs'
test -d '/usr/local/nginx/html' \
	|| cp -R html '/usr/local/nginx'
test -d '/usr/local/nginx/logs' \
	|| mkdir -p '/usr/local/nginx/logs'
make[1]: Leaving directory `/usr/local/src/nginx-1.18.0'


关闭他
[root@node-1 nginx-1.18.0]# /usr/local/nginx/sbin/nginx  -s stop


查看是否异常
[root@node-1 nginx-1.18.0]# /usr/local/nginx/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


启用他 查看他的80端口
[root@node-1怕=  nginx-1.18.0]# /usr/local/nginx/sbin/nginx 
[root@node-1 nginx-1.18.0]# ss -tulpn
Netid State      Recv-Q Send-Q                   Local Address:Port                     Peer Address:Port 
tcp   LISTEN     0      128                                  *:80                                  *:*      users:(("nginx",14877,6),("nginx",14876,6))
tcp   LISTEN     0      128                                  *:22                                  *:*      users:(("sshd",1084,3))
tcp   LISTEN     0      100                          127.0.0.1:25                                  *:*      users:(("master",1519,13))
tcp   LISTEN     0      128                                 :::22                                 :::*      users:(("sshd",1084,4))
tcp   LISTEN     0      100                                ::1:25                                 :::*      users:(("master",1519,14))




重启

[root@node-1 nginx-1.18.0]# /usr/local/nginx/sbin/nginx -s reload













同样可以用10.0.1.101来查看一下浏览器是否可以访问




3.nginx日志切割(必会)
nginx日志切割




  目录结构
  
  /usr/local/nginx/    
  /usr/local/nginx/logs   日志目录
  /usr/local/nginx/html    发布目录
  /usr/local/nginx/conf    配置目录




nginx日志路径
cd /usr/local/nginx/logs/

access.log   切割这个日志

[root@node-1 ~]# cd /usr/local/nginx/logs/
[root@node-1 logs]# ls
access.log  error.log  nginx.pid






第一种:脚本实现

重命名一下
[root@node-1 logs]# mv /usr/local/nginx/logs/access.log /usr/local/nginx/logs/access.log_$(date +%F)

再次运行nginx,因为原来的access.log日志文件没有了,所以重载一下,会生成新的日志
[root@node-1 logs]# nginx -s reload




mv /usr/local/nginx/logs/access.log /usr/local/nginx/logs/access.log_$(date +%F)
nginx -s reload



整理成脚本

#!/bin/bash
mv /usr/local/nginx/logs/access.log /usr/local/nginx/logs/access.log_$(date +%F)
nginx -s reload




vi nginx.sh
chmod +x nginx.sh





第二种:配置实现



原配置文件
[root@node-1 ~]# vi /etc/logrotate.conf 

# see "man logrotate" for details
# rotate log files weekly
weekly    代表一个星期日志切割一次

# keep 4 weeks worth of backlogs
rotate 4    切割日志 保留4个日志

# create new (empty) log files after rotating old ones
create     创建一个相同文件

# use date as a suffix of the rotated file
dateext

# uncomment this if you want your log files compressed
#compress

# RPM packages drop log rotation information into this directory
include /etc/logrotate.d

# no packages own wtmp and btmp -- we'll rotate them here
/var/log/wtmp {
    monthly
    create 0664 root utmp
        minsize 1M
    rotate 1
}

/var/log/btmp {
    missingok
    monthly
    create 0600 root utmp
    rotate 1
}



修改后的配置文件
[root@node-1 ~]# vi /etc/logrotate.conf 

# see "man logrotate" for details
# rotate log files weekly
weekly

# keep 4 weeks worth of backlogs
rotate 4

# create new (empty) log files after rotating old ones
create

# use date as a suffix of the rotated file
dateext

# uncomment this if you want your log files compressed
#compress

# RPM packages drop log rotation information into this directory
include /etc/logrotate.d

# no packages own wtmp and btmp -- we'll rotate them here
/usr/local/nginx/logs/access.log {
    monthly
    create 0664 root utmp
        minsize 1M
    rotate 1
}

/var/log/btmp {
    missingok
    monthly
    create 0600 root utmp
    rotate 1
}









具体实现效果


第一种(脚本实现)

[root@node-1 ~]# cd /usr/local/nginx/logs/
[root@node-1 logs]# ls
access.log  error.log  nginx.pid
[root@node-1 logs]# mv /usr/local/nginx/logs/access.log /usr/local/nginx/logs/access.log_$(date +%F)
[root@node-1 logs]# ls
access.log_2024-03-20  error.log  nginx.pid
[root@node-1 logs]# nginx -s reload
[root@node-1 logs]# ls
access.log  access.log_2024-03-20  error.log  nginx.pid

        
[root@node-1 ~]# cd /usr/local/nginx/logs/
[root@node-1 logs]# ls
access.log  access.log_2024-03-20  error.log  nginx.pid
[root@node-1 logs]# vi nginx.sh
[root@node-1 logs]# ls
access.log  access.log_2024-03-20  error.log  nginx.pid  nginx.sh
[root@node-1 logs]# chmod +x nginx.sh 
[root@node-1 logs]# ls
access.log  access.log_2024-03-20  error.log  nginx.pid  nginx.sh
[root@node-1 logs]# bash nginx.sh 
nginx.sh: line 1: !#/bin/bash: No such file or directory
[root@node-1 logs]# vi nginx.sh 
[root@node-1 logs]# bash nginx.sh 
[root@node-1 logs]# ls
access.log  access.log_2024-03-20  error.log  nginx.pid  nginx.sh



第二种(配置实现)

这种文件只能有vi打开,cd切不进去的
[root@node-1 ~]# vi /etc/logrotate.conf 

填充下面这行  具体的事这个位置,把目录位置改一下就可以了

# no packages own wtmp and btmp -- we'll rotate them here
/usr/local/nginx/logs/access.log {
    monthly
    create 0664 root utmp
        minsize 1M
    rotate 1
}






# see "man logrotate" for details
# rotate log files weekly
weekly

# keep 4 weeks worth of backlogs
rotate 4

# create new (empty) log files after rotating old ones
create

# use date as a suffix of the rotated file
dateext

# uncomment this if you want your log files compressed
#compress

# RPM packages drop log rotation information into this directory
include /etc/logrotate.d

# no packages own wtmp and btmp -- we'll rotate them here
/usr/local/nginx/logs/access.log {
    monthly
    create 0664 root utmp
        minsize 1M
    rotate 1
}

/var/log/btmp {
    missingok
    monthly
    create 0600 root utmp
    rotate 1
}





4.错误页面跳转
环境:虚拟机

ip:10.0.1.0

网关:10.0.1.2

子网掩码:255.255.255.0

测试机器ip:10.0.1.101








目录结构
  
  /usr/local/nginx/    
  /usr/local/nginx/logs   日志目录
  /usr/local/nginx/html    发布目录
  /usr/local/nginx/conf    配置目录
  
  
  
  nginx.conf.bak |egrep -v "^$|#"
  
  
  
  
  
  步骤详解
 cd /usr/local/nginx/html 
 echo weihuzhong > 404.html
 
 cd/local/nginx/conf
 vi nginx.conf
 
 在这一行添加404 和404.html网页
 
            error_page   500 502 503 504 404 /404.html;
        location = /40x.html {


注解:location = /40x.html 这里的40x,x代表一个变量 如果由多个网页的话,那么他可以显示以40开头的所有错误网页

  
  保存退出
  
  重启
  nginx -s reload
  
  
  
  
  
  
  
  
  
  
  
  
  
  具体操作演示
  
  [root@node-1 ~]# cd /usr/local/nginx/html/
[root@node-1 html]# ls
404.html  50x.html  index.html
[root@node-1 html]# echo niubi666 > 405.html
[root@node-1 html]# cd ../conf
[root@node-1 conf]# ls
fastcgi.conf            koi-utf             nginx.conf          scgi_params.default
fastcgi.conf.default    koi-win             nginx.conf.bak      uwsgi_params
fastcgi_params          mime.types          nginx.conf.default  uwsgi_params.default
fastcgi_params.default  mime.types.default  scgi_params         win-utf
[root@node-1 conf]# vi nginx.conf

 在这一行添加404 和404.html网页
 
            error_page   500 502 503 504 404 /404.html;
        location = /40x.html {


注解:location = /40x.html 这里的40x,x代表一个变量 如果由多个网页的话,那么他可以显示以40开头的所有错误网页


[root@node-1 conf]# nginx -s reload
重启


测试
10.0.1.101

  

标签:src,objs,http,入门,31,modules,nginx,ngx
From: https://www.cnblogs.com/nwq1101/p/18086366

相关文章

  • Nginx 反向代理
    nginx反向代理的好处提高访问速度因为nginx本身可以进行缓存,如果访问的同一接口,并且做了数据缓存,nginx就直接可把数据返回,不需要真正地访问服务端,从而提高访问速度。进行负载均衡所谓负载均衡,就是把大量的请求按照我们指定的方式均衡的分配给集群中的每台服务器。保......
  • .NET Emit 入门教程:第二部分:构建动态程序集(追加构建静态程序集教程)
    前言:在本部分中,我们将深入探讨如何使用C#Emit来创建动态程序集。动态程序集是在运行时生成的,为我们提供了一种灵活、动态地构建和加载程序集的能力。1.程序集的概念程序集是.NET中的基本部署单位,它包含了可执行代码、资源、元数据等信息,是.NET应用程序的基本组成单元之一。......
  • CSIE3310操作系统线程包问题
    机器问题1-线程包CSIE3310-操作系统:100TA时间截止日期前10:00-12:00,中船重工R428号楼目录1摘要12环境设置23第1部分(60分)23.1功能说明。2.3.2样本输出。3.4第2部分(40分)44.1功能说明。4.4.2提醒。4.4.3样本输出。5.5运行公共测试用例56提交和分级56.1源代码。5.6.2解压缩后的文件夹......
  • nginx localtion 匹配规则
    1、语法规则 语法规则:location[=|~|^~*|^~]/uri/{…}表示精确匹配,这个优先级也是最高的^~表示uri以某个常规字符串开头,理解为匹配url路径即可。nginx不对url做编码,因此请求为/image/20%/aa,可以被规则^~/image//aa匹配到(注意是空格)。~表示区分......
  • 【机器学习入门 Machine Learning For Beginners】逻辑斯蒂回归和分类
    系列文章目录第1章专家系统第2章决策树第3章神经元和感知机识别手写数字——感知机第4章线性回归文章目录系列文章目录前言一、分类问题的数学形式二、最大似然估计三、交叉熵损失函数四、多类别分类多类别逻辑斯蒂回归归一化指数函数交叉熵误差和均方误差的......
  • Nginx 配置访问 swagger 页面
    假设SpringBoot的应用部署在http://192.168.1.15:8093上,nginx.conf配置文件里面增加如下配置location~^/swagger/(.*){proxy_redirectoff;#proxy_set_headerHost$host;proxy_set_headerHost$host:$server_port;#添加:$server_portproxy_set_headerX-Real-IP......
  • [DPDK]Linux平台上DPDK入门指南(一)
    [DPDK]Linux平台上DPDK入门指南(一)1.1简介1.1.1文档地图1.2系统要求1.2.1X86上预先设置BIOS1.2.2编译DPDK1.2.3运行DPDK应用程序系统软件在Linux环境中使用Hugepages预留Hugepages给DPDK使用DPDK使用Hugepages配置内存用于DPDK使用1.3使用源码编译DPDK......
  • C++基础入门(命名空间,函数,引用)
    文章目录前言1,命名空间2,函数函数重载缺省参数内联函数3,引用尾声前言欢迎来到这篇关于C++的入门博客!C++是一门强大而又广泛应用的编程语言,作为一门面向对象的编程语言,C++可以让你更好地组织和管理代码,提高代码的重用性和可维护性。它广泛应用于游戏开发、嵌入式系......
  • html5&css&js代码 031 又一个计算器
    html5&css&js代码031又一个计算器一、代码二、解释又一个计算器页面。一、代码<!doctypehtml><htmllang="zh-cn"><head><metacharset="UTF-8"><title>计算器</title><style>body{......
  • 31.网络游戏逆向分析与漏洞攻防-网络通信数据包分析工具-其它消息的实现与使用优化
    免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动!如果看不懂、不知道现在做的什么,那就跟着做完看效果内容参考于:易道云信息技术研究院VIP课上一个内容:30.数据搜索功能码云地址(master分支):https://gitee.com/dye_your_fingers/titan码云版本号:6cd3ae3d3bf803e1......