|
1 | 1 | ## 在Ubuntu 16.04中如何从源代码编译Nginx
|
2 | 2 | + NGINX可用作HTTP / HTTPS服务器,反向代理服务器,邮件代理服务器,负载均衡器,TLS终结器或缓存服务器。它是相当模块化的设计。它具有由社区创建的本机模块和第三方模块。以C编程语言编写,它是一个非常快速和轻便的软件。
|
3 |
| -## 从源头构建NGINX的要求 |
4 |
| -#### 强制性要求: |
| 3 | +#### 从源头构建NGINX的要求,强制性要求: |
5 | 4 | + OpenSSL库版本介于1.0.2 - 1.1.0之间
|
6 | 5 | + Zlib库版本介于1.1.3 - 1.2.11之间
|
7 | 6 | + PCRE库版本在4.4 - 8.40之间
|
8 | 7 | + GCC编译器
|
9 | 8 | #### 可选要求:
|
10 | 9 | + PERL
|
11 | 10 | + LIBATOMIC_OPS
|
12 |
| -+ 的libgd |
| 11 | ++ LibFD |
13 | 12 | + MaxMind GeoIP
|
14 | 13 | + libxml2的
|
15 |
| -+ 的libxslt |
| 14 | ++ libxslt |
16 | 15 | #### 开始之前
|
17 | 16 | + 创建普通用户`sudo`访问。
|
18 | 17 | + 切换到新用户:`su - <username>`
|
19 | 18 | + 更新系统:`sudo apt update && sudo apt upgrade -y`
|
20 | 19 | #### 从源代码构建NGINX
|
21 | 20 | + 1、NGINX是用C编写的程序,所以我们需要安装C编译器(GCC)。
|
22 |
| - `sudo apt install build-essential -y` |
| 21 | + ```bash |
| 22 | + sudo apt install build-essential -y |
| 23 | + ``` |
23 | 24 | + 2、下载最新版本的NGINX源代码并解压缩:
|
24 |
| - `wget https://nginx.org/download/nginx-1.13.1.tar.gz && tar zxvf nginx-1.13.1.tar.gz` |
| 25 | + ```bash |
| 26 | + wget https://nginx.org/download/nginx-1.13.1.tar.gz && tar zxvf nginx-1.13.1.tar.gz |
| 27 | + ``` |
25 | 28 | + 3、下载NGINX依赖项的源代码并解压缩
|
26 | 29 | > NGINX依赖于3个库:PCRE,zlib和OpenSSL:
|
27 | 30 | ```bash
|
|
34 | 37 | # OpenSSL version 1.0.2 - 1.1.0
|
35 | 38 | wget https://www.openssl.org/source/openssl-1.1.0f.tar.gz && tar xzvf openssl-1.1.0f.tar.gz
|
36 | 39 | ```
|
37 |
| -+ 4、删除所有.tar.gz文件。我们不再需要它们了,`rm -rf *.tar.gz` |
38 |
| -+ 5、转到NGINX源目录:`cd ~/nginx-1.13.1` |
39 |
| -+ 6、有关帮助,您可以通过运行以下列出可用的配置开关:`./configure --help` |
| 40 | ++ 4、删除所有.tar.gz文件。我们不再需要了 |
| 41 | + ```bash |
| 42 | + wget https://nginx.org/download/nginx-1.13.1.tar.gz && tar zxvf nginx-1.13.1.tar.gz |
| 43 | + ``` |
| 44 | ++ 5、转到NGINX源目录:`` |
| 45 | + ```bash |
| 46 | + cd ~/nginx-1.13.1 |
| 47 | + ``` |
| 48 | ++ 6、有关帮助,您可以通过运行以下列出可用的配置开关 |
| 49 | + ```bash |
| 50 | + ./configure --help |
| 51 | + ``` |
40 | 52 | + 7、配置,编译和安装NGINX:
|
41 | 53 | ```bash
|
42 | 54 | ./configure --prefix=/usr/share/nginx \
|
|
88 | 100 | --with-stream_ssl_module \
|
89 | 101 | --with-stream_ssl_preread_module \
|
90 | 102 | --with-debug \
|
91 |
| - --with-cc-opt='-g -O2 -fPIE -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2' \ |
| 103 | + --with-cc-opt='-g -O2 -fPIE -fstack-protector-strong -Wformat -Werror=format-security |
| 104 | + -Wdate-time -D_FORTIFY_SOURCE=2' \ |
92 | 105 | --with-ld-opt='-Wl,-Bsymbolic-functions -fPIE -pie -Wl,-z,relro -Wl,-z,now'
|
93 | 106 | make
|
94 | 107 | sudo make install
|
|
156 | 169 | ps aux | grep nginx
|
157 | 170 | curl -I 127.0.0.1
|
158 | 171 | ```
|
159 |
| -+ 16、重新启动Ubuntu VPS以验证NGINX是否自动启动:`sudo shutdown -r now` |
160 |
| -+ 17、创建UFW NGINX应用程序配置文件:`sudo vim /etc/ufw/applications.d/nginx` |
| 172 | ++ 16、重新启动Ubuntu VPS以验证NGINX是否自动启动: |
| 173 | + ```bash |
| 174 | + sudo shutdown -r now |
| 175 | + ``` |
| 176 | ++ 17、创建UFW NGINX应用程序配置文件: |
| 177 | + ```bash |
| 178 | + sudo vim /etc/ufw/applications.d/nginx |
| 179 | + ``` |
161 | 180 | + 18、复制/粘贴以下内容:
|
162 | 181 | ```bash
|
163 | 182 | [Nginx HTTP]
|
|
0 commit comments