|
1 | 1 | # 在Ubuntu 16.04中如何从源代码编译Nginx
|
2 |
| -+ NGINX可用作HTTP / HTTPS服务器,反向代理服务器,邮件代理服务器,负载均衡器,TLS终结器或缓存服务器。它是相当模块化的设计。它具有由社区创建的本机模块和第三方模块。以C编程语言编写,它是一个非常快速和轻便的软件。 |
| 2 | +NGINX可用作HTTP/HTTPS服务器,反向代理服务器,邮件代理服务器,负载均衡器,TLS终结器或缓存服务器。它是相当模块化的设计。它具有由社区创建的本机模块和第三方模块。以C编程语言编写,它是一个非常快速和轻便的软件。 |
3 | 3 |
|
4 | 4 | ## 从源头构建NGINX的要求,强制性要求:
|
5 | 5 | + OpenSSL库版本介于1.0.2 - 1.1.0之间
|
|
21 | 21 | + 更新系统:`sudo apt update && sudo apt upgrade -y`
|
22 | 22 |
|
23 | 23 | ## 从源代码构建NGINX
|
24 |
| -+ 1、NGINX是用C编写的程序,所以我们需要安装C编译器(GCC)。 |
| 24 | ++ NGINX是用C编写的程序,所以我们需要安装C编译器(GCC)。 |
25 | 25 |
|
26 | 26 | ```bash
|
27 | 27 | sudo apt install build-essential -y
|
28 | 28 | ```
|
29 |
| -+ 2、下载最新版本的NGINX源代码并解压缩: |
| 29 | ++ 下载最新版本的NGINX源代码并解压缩: |
30 | 30 |
|
31 | 31 | ```bash
|
32 | 32 | wget https://nginx.org/download/nginx-1.13.1.tar.gz && tar zxvf nginx-1.13.1.tar.gz
|
33 | 33 | ```
|
34 |
| -+ 3、下载NGINX依赖项的源代码并解压缩 |
| 34 | ++ 下载NGINX依赖项的源代码并解压缩 |
35 | 35 | > NGINX依赖于3个库:PCRE,zlib和OpenSSL:
|
36 | 36 |
|
37 | 37 | ```bash
|
|
45 | 45 | wget https://www.openssl.org/source/openssl-1.1.0f.tar.gz && tar xzvf openssl-1.1.0f.tar.gz
|
46 | 46 | ```
|
47 | 47 |
|
48 |
| -+ 4、删除所有.tar.gz文件。我们不再需要了 |
| 48 | ++ 删除所有.tar.gz文件。我们不再需要了 |
49 | 49 |
|
50 | 50 | ```bash
|
51 | 51 | wget https://nginx.org/download/nginx-1.13.1.tar.gz && tar zxvf nginx-1.13.1.tar.gz
|
52 | 52 | ```
|
53 | 53 |
|
54 |
| -+ 5、转到NGINX源目录:`` |
| 54 | ++ 转到NGINX源目录:`` |
55 | 55 |
|
56 | 56 | cd ~/nginx-1.13.1
|
57 | 57 |
|
58 |
| -+ 6、有关帮助,您可以通过运行以下列出可用的配置开关 |
| 58 | ++ 有关帮助,您可以通过运行以下列出可用的配置开关 |
59 | 59 |
|
60 | 60 | ./configure --help
|
61 | 61 |
|
62 |
| -+ 7、配置,编译和安装NGINX: |
| 62 | ++ 配置,编译和安装NGINX: |
63 | 63 |
|
64 | 64 | ./configure --prefix=/usr/share/nginx \
|
65 | 65 | --sbin-path=/usr/sbin/nginx \
|
|
116 | 116 | make
|
117 | 117 | sudo make install
|
118 | 118 |
|
119 |
| -+ 8、从主目录中删除所有下载的文件,在这种情况下/home/username: |
| 119 | ++ 从主目录中删除所有下载的文件,在这种情况下/home/username: |
120 | 120 |
|
121 | 121 | cd ~
|
122 | 122 | rm -r nginx-1.13.1/ openssl-1.1.0f/ pcre-8.40/ zlib-1.2.11/
|
123 | 123 |
|
124 |
| -+ 9、检查NGINX版本和编译时间选项: |
| 124 | ++ 检查NGINX版本和编译时间选项: |
125 | 125 |
|
126 | 126 | sudo nginx -v && sudo nginx -V
|
127 | 127 |
|
|
133 | 133 | # . . .
|
134 | 134 | # . . .
|
135 | 135 |
|
136 |
| -+ 10、检查语法和潜在错误: |
| 136 | ++ 检查语法和潜在错误: |
137 | 137 |
|
138 | 138 | sudo nginx -t
|
139 | 139 | # Will throw this error nginx: [emerg] mkdir() "/var/lib/nginx/body" failed (2: No such file or directory)
|
140 | 140 | # Just create directory
|
141 | 141 | mkdir -p /var/lib/nginx && sudo nginx -t
|
142 | 142 |
|
143 |
| -+ 11、为NGINX创建systemd单元文件: |
| 143 | ++ 为NGINX创建systemd单元文件: |
144 | 144 |
|
145 | 145 | sudo vim /etc/systemd/system/nginx.service
|
146 | 146 |
|
147 |
| -+ 12、复制/粘贴以下内容: |
| 147 | ++ 复制/粘贴以下内容: |
148 | 148 | > 注意:根据NGINX的编译方式,PID文件和NGINX二进制文件的位置可能不同。
|
149 | 149 |
|
150 | 150 | [Unit]
|
|
164 | 164 | [Install]
|
165 | 165 | WantedBy=multi-user.target
|
166 | 166 |
|
167 |
| -+ 13、启动并启用NGINX服务: |
| 167 | ++ 启动并启用NGINX服务: |
168 | 168 |
|
169 | 169 | sudo systemctl start nginx.service && sudo systemctl enable nginx.service
|
170 | 170 |
|
171 |
| -+ 14、检查NGINX是否在重启后启动: |
| 171 | ++ 检查NGINX是否在重启后启动: |
172 | 172 |
|
173 | 173 | sudo systemctl is-enabled nginx.service
|
174 | 174 | # enabled
|
175 | 175 |
|
176 |
| -+ 15、检查NGINX是否正在运行: |
| 176 | ++ 检查NGINX是否正在运行: |
177 | 177 |
|
178 | 178 | sudo systemctl status nginx.service
|
179 | 179 | ps aux | grep nginx
|
180 | 180 | curl -I 127.0.0.1
|
181 | 181 |
|
182 |
| -+ 16、重新启动Ubuntu VPS以验证NGINX是否自动启动: |
| 182 | ++ 重新启动Ubuntu VPS以验证NGINX是否自动启动: |
183 | 183 |
|
184 | 184 | sudo shutdown -r now
|
185 | 185 |
|
186 |
| -+ 17、创建UFW NGINX应用程序配置文件: |
| 186 | ++ 创建UFW NGINX应用程序配置文件: |
187 | 187 |
|
188 | 188 | sudo vim /etc/ufw/applications.d/nginx
|
189 | 189 |
|
190 |
| -+ 18、复制/粘贴以下内容: |
| 190 | ++ 复制/粘贴以下内容: |
191 | 191 |
|
192 | 192 | [Nginx HTTP]
|
193 | 193 | title=Web Server (Nginx, HTTP)
|
|
204 | 204 | description=Small, but very powerful and efficient web server
|
205 | 205 | ports=80,443/tcp
|
206 | 206 |
|
207 |
| -+ 19、现在,验证UFW应用配置文件是否被创建和识别: |
| 207 | ++ 现在,验证UFW应用配置文件是否被创建和识别: |
208 | 208 | sudo ufw app list
|
209 | 209 |
|
210 | 210 | # Available applications:
|
|
0 commit comments