nginx的编译安装

下载源码

1
wget http://nginx.org/download/nginx-1.15.9.tar.gz

安装开发包组

1
yum groupinstall "Development Tools" -y

创建目录并解压源码 

1
2
mkdir /data/web -p
tar xf nginx-1.15.9.tar.gz  -C /data/web/

  进入源码解压后目录查看

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
[root@mast ~]# cd /data/web/nginx-1.15.9/
[root@mast nginx-1.15.9]# ls -l
总用量 748
drwxr-xr-x. 6 1001 1001   4096 3月   1 07:10 auto
-rw-r--r--. 1 1001 1001 295057 2月  26 23:29 CHANGES   每个版本的特性
-rw-r--r--. 1 1001 1001 450114 2月  26 23:29 CHANGES.ru
drwxr-xr-x. 2 1001 1001    168 3月   1 07:10 conf    配置文件的事例文件
-rwxr-xr-x. 1 1001 1001   2502 2月  26 23:29 configure
drwxr-xr-x. 4 1001 1001     72 3月   1 07:10 contrib
drwxr-xr-x. 2 1001 1001     40 3月   1 07:10 html  提供标准错误文件
-rw-r--r--. 1 1001 1001   1397 2月  26 23:29 LICENSE
drwxr-xr-x. 2 1001 1001     21 3月   1 07:10 man   nginx的帮助文件
-rw-r--r--. 1 1001 1001     49 2月  26 23:29 README
drwxr-xr-x. 9 1001 1001     91 3月   1 07:10 src   源码文件
[root@mast nginx-1.15.9]# tree auto/
auto/
├── cc  用于编译
│   ├── acc
│   ├── bcc
│   ├── ccc
│   ├── clang
│   ├── conf
│   ├── gcc
│   ├── icc
│   ├── msvc
│   ├── name
│   ├── owc
│   └── sunc
├── define
├── endianness
├── feature
├── have
├── have_headers
├── headers
├── include
├── init
├── install
├── lib   库
│   ├── conf
│   ├── geoip
│   │   └── conf
│   ├── google-perftools
│   │   └── conf
│   ├── libatomic
│   │   ├── conf
│   │   └── make
│   ├── libgd
│   │   └── conf
│   ├── libxslt
│   │   └── conf
│   ├── make
│   ├── openssl
│   │   ├── conf
│   │   ├── make
│   │   ├── makefile.bcc
│   │   └── makefile.msvc
│   ├── pcre
│   │   ├── conf
│   │   ├── make
│   │   ├── makefile.bcc
│   │   ├── makefile.msvc
│   │   └── makefile.owc
│   ├── perl
│   │   ├── conf
│   │   └── make
│   └── zlib
│       ├── conf
│       ├── make
│       ├── makefile.bcc
│       ├── makefile.msvc
│       └── makefile.owc
├── make
├── module
├── modules
├── nohave
├── options
├── os 操作系统判端
│   ├── conf
│   ├── darwin
│   ├── freebsd
│   ├── linux
│   ├── solaris
│   └── win32
├── sources
├── stubs
├── summary
├── threads
├── types
│   ├── sizeof
│   ├── typedef
│   ├── uintptr_t
│   └── value
└── unix
 
13 directories, 64 files

  编译时的选项选择

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
[root@mast nginx-1.15.9]# ./configure --help
 
  --help                             print this message
 
  --prefix=PATH                      set installation prefix    安装目录选择
  --sbin-path=PATH                   set nginx binary pathname   sbin 目录的选择
  --modules-path=PATH                set modules path  依赖模块路径的选择
  --conf-path=PATH                   set nginx.conf pathname   配置文件路径选择
  --error-log-path=PATH              set error log pathname   错误日志文件路径选择
  --pid-path=PATH                    set nginx.pid pathname    pid 文件路径选择
  --lock-path=PATH                   set nginx.lock pathname    日志文件路径
 
  --user=USER                        set non-privileged user for   运行的用户
                                     worker processes
  --group=GROUP                      set non-privileged group for  运行的组
                                     worker processes
 
  --build=NAME                       set build name
  --builddir=DIR                     set build directory
 
  --with-select_module               enable select module
  --without-select_module            disable select module
  --with-poll_module                 enable poll module
  --without-poll_module              disable poll module
 
  --with-threads                     enable thread pool support
 
  --with-file-aio                    enable file AIO support
  --with-http_ssl_module             enable ngx_http_ssl_module   --with表示启动那些模块,默认没有启用
  --with-http_v2_module              enable ngx_http_v2_module
  --with-http_realip_module          enable ngx_http_realip_module
  --with-http_addition_module        enable ngx_http_addition_module
  --with-http_xslt_module            enable ngx_http_xslt_module
  --with-http_xslt_module=dynamic    enable dynamic ngx_http_xslt_module
  --with-http_image_filter_module    enable ngx_http_image_filter_module
  --with-http_image_filter_module=dynamic
                                     enable dynamic ngx_http_image_filter_module
  --with-http_geoip_module           enable ngx_http_geoip_module
  --with-http_geoip_module=dynamic   enable dynamic ngx_http_geoip_module
  --with-http_sub_module             enable ngx_http_sub_module
  --with-http_dav_module             enable ngx_http_dav_module
  --with-http_flv_module             enable ngx_http_flv_module
  --with-http_mp4_module             enable ngx_http_mp4_module
  --with-http_gunzip_module          enable ngx_http_gunzip_module
  --with-http_gzip_static_module     enable ngx_http_gzip_static_module
  --with-http_auth_request_module    enable ngx_http_auth_request_module
  --with-http_random_index_module    enable ngx_http_random_index_module
  --with-http_secure_link_module     enable ngx_http_secure_link_module
  --with-http_degradation_module     enable ngx_http_degradation_module
  --with-http_slice_module           enable ngx_http_slice_module
  --with-http_stub_status_module     enable ngx_http_stub_status_module
 
--without   表示禁用那些模块,默认是开启的
 
  --without-http_charset_module      disable ngx_http_charset_module
  --without-http_gzip_module         disable ngx_http_gzip_module
  --without-http_ssi_module          disable ngx_http_ssi_module
  --without-http_userid_module       disable ngx_http_userid_module
  --without-http_access_module       disable ngx_http_access_module
  --without-http_auth_basic_module   disable ngx_http_auth_basic_module
  --without-http_mirror_module       disable ngx_http_mirror_module
  --without-http_autoindex_module    disable ngx_http_autoindex_module
  --without-http_geo_module          disable ngx_http_geo_module
  --without-http_map_module          disable ngx_http_map_module
  --without-http_split_clients_module disable ngx_http_split_clients_module
  --without-http_referer_module      disable ngx_http_referer_module
  --without-http_rewrite_module      disable ngx_http_rewrite_module
  --without-http_proxy_module        disable ngx_http_proxy_module
  --without-http_fastcgi_module      disable ngx_http_fastcgi_module
  --without-http_uwsgi_module        disable ngx_http_uwsgi_module
  --without-http_scgi_module         disable ngx_http_scgi_module
  --without-http_grpc_module         disable ngx_http_grpc_module
  --without-http_memcached_module    disable ngx_http_memcached_module
  --without-http_limit_conn_module   disable ngx_http_limit_conn_module
  --without-http_limit_req_module    disable ngx_http_limit_req_module
  --without-http_empty_gif_module    disable ngx_http_empty_gif_module
  --without-http_browser_module      disable ngx_http_browser_module
  --without-http_upstream_hash_module
                                     disable ngx_http_upstream_hash_module
  --without-http_upstream_ip_hash_module
                                     disable ngx_http_upstream_ip_hash_module
  --without-http_upstream_least_conn_module
                                     disable ngx_http_upstream_least_conn_module
  --without-http_upstream_random_module
                                     disable ngx_http_upstream_random_module
  --without-http_upstream_keepalive_module
                                     disable ngx_http_upstream_keepalive_module
  --without-http_upstream_zone_module
                                     disable ngx_http_upstream_zone_module
 
  --with-http_perl_module            enable ngx_http_perl_module
  --with-http_perl_module=dynamic    enable dynamic ngx_http_perl_module
  --with-perl_modules_path=PATH      set Perl modules path
  --with-perl=PATH                   set perl binary pathname
 
  --http-log-path=PATH               set http access log pathname
  --http-client-body-temp-path=PATH  set path to store
                                     http client request body temporary files
  --http-proxy-temp-path=PATH        set path to store
                                     http proxy temporary files
  --http-fastcgi-temp-path=PATH      set path to store
                                     http fastcgi temporary files
  --http-uwsgi-temp-path=PATH        set path to store
                                     http uwsgi temporary files
  --http-scgi-temp-path=PATH         set path to store
                                     http scgi temporary files
 
  --without-http                     disable HTTP server
  --without-http-cache               disable HTTP cache
 
  --with-mail                        enable POP3/IMAP4/SMTP proxy module
  --with-mail=dynamic                enable dynamic POP3/IMAP4/SMTP proxy module
  --with-mail_ssl_module             enable ngx_mail_ssl_module
  --without-mail_pop3_module         disable ngx_mail_pop3_module
  --without-mail_imap_module         disable ngx_mail_imap_module
  --without-mail_smtp_module         disable ngx_mail_smtp_module
 
  --with-stream                      enable TCP/UDP proxy module
  --with-stream=dynamic              enable dynamic TCP/UDP proxy module
  --with-stream_ssl_module           enable ngx_stream_ssl_module
  --with-stream_realip_module        enable ngx_stream_realip_module
  --with-stream_geoip_module         enable ngx_stream_geoip_module
  --with-stream_geoip_module=dynamic enable dynamic ngx_stream_geoip_module
  --with-stream_ssl_preread_module   enable ngx_stream_ssl_preread_module
  --without-stream_limit_conn_module disable ngx_stream_limit_conn_module
  --without-stream_access_module     disable ngx_stream_access_module
  --without-stream_geo_module        disable ngx_stream_geo_module
  --without-stream_map_module        disable ngx_stream_map_module
  --without-stream_split_clients_module
                                     disable ngx_stream_split_clients_module
  --without-stream_return_module     disable ngx_stream_return_module
  --without-stream_upstream_hash_module
                                     disable ngx_stream_upstream_hash_module
  --without-stream_upstream_least_conn_module
                                     disable ngx_stream_upstream_least_conn_module
  --without-stream_upstream_random_module
                                     disable ngx_stream_upstream_random_module
  --without-stream_upstream_zone_module
                                     disable ngx_stream_upstream_zone_module
 
  --with-google_perftools_module     enable ngx_google_perftools_module
  --with-cpp_test_module             enable ngx_cpp_test_module
 
  --add-module=PATH                  enable external module
  --add-dynamic-module=PATH          enable dynamic external module
 
  --with-compat                      dynamic modules compatibility
   指定nginx编译过程中需要一些特殊参数
  --with-cc=PATH                     set C compiler pathname
  --with-cpp=PATH                    set C preprocessor pathname
  --with-cc-opt=OPTIONS              set additional C compiler options
  --with-ld-opt=OPTIONS              set additional linker options
  --with-cpu-opt=CPU                 build for the specified CPU, valid values:
                                     pentium, pentiumpro, pentium3, pentium4,
                                     athlon, opteron, sparc32, sparc64, ppc64
 
  --without-pcre                     disable PCRE library usage
  --with-pcre                        force PCRE library usage
  --with-pcre=DIR                    set path to PCRE library sources
  --with-pcre-opt=OPTIONS            set additional build options for PCRE
  --with-pcre-jit                    build PCRE with JIT compilation support
 
  --with-zlib=DIR                    set path to zlib library sources
  --with-zlib-opt=OPTIONS            set additional build options for zlib
  --with-zlib-asm=CPU                use zlib assembler sources optimized
                                     for the specified CPU, valid values:
                                     pentium, pentiumpro
 
  --with-libatomic                   force libatomic_ops library usage
  --with-libatomic=DIR               set path to libatomic_ops library sources
 
  --with-openssl=DIR                 set path to OpenSSL library sources
  --with-openssl-opt=OPTIONS         set additional build options for OpenSSL
 
  --with-debug                       enable debug logging

  编译安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[root@mast nginx-1.15.9]# mkdir /data/web/nginx
[root@mast nginx-1.15.9]# ./configure  --prefix=/data/web/nginx
Configuration summary
  + using system PCRE library
  + OpenSSL library is not used
  + using system zlib library
 
  nginx path prefix: "/data/web/nginx"
  nginx binary file: "/data/web/nginx/sbin/nginx"
  nginx modules path: "/data/web/nginx/modules"
  nginx configuration prefix: "/data/web/nginx/conf"
  nginx configuration file: "/data/web/nginx/conf/nginx.conf"
  nginx pid file: "/data/web/nginx/logs/nginx.pid"
  nginx error log file: "/data/web/nginx/logs/error.log"
  nginx http access log file: "/data/web/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@mast nginx-1.15.9]# make && make install

  安装目录

1
2
3
[root@mast nginx-1.15.9]# cd ../nginx
[root@mast nginx]# ls
conf  html  logs  sbin

  简单配置一个web站点

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
[root@mast conf]# vim nginx.conf
 
 
    server {
        listen       8080;
        server_name  localhost;
 
        #charset koi8-r;
 
        #access_log  logs/host.access.log  main;
 
        location / {
            alias  cx/;
            #root   html;
            index  index.html index.htm;
        }
}
[root@mast conf]# mkdir ../cx
[root@mast conf]# echo cx >> ../cx/index.html
[root@mast conf]# ss -lntp
State       Recv-Q Send-Q                                                  Local Address:Port                                                                 Peer Address:Port             
LISTEN      0      128                                                                 *:8080                                                                            *:*                  
users:(("nginx",pid=17848,fd=6),("nginx",pid=17847,fd=6))LISTEN      0      128                                                                 *:22                                                                              *:*                  
users:(("sshd",pid=1008,fd=3))LISTEN      0      100                                                         127.0.0.1:25                                                                              *:*                  
users:(("master",pid=1299,fd=13))LISTEN      0      128                                                                :::22                                                                             :::*                  
users:(("sshd",pid=1008,fd=4))LISTEN      0      100                                                               ::1:25   
 [root@mast conf]# iptables -F
[root@mast conf]# setenforce 0
                                                                        :::*            

  

 

posted @   烟雨楼台,行云流水  阅读(440)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
点击右上角即可分享
微信分享提示