保姆级 | Nginx编译安装

系统管理员 2024-02-18 11:50 118阅读 0赞

0x00 前言

Nginx 是一个 HTTP 和反向代理服务器, 邮件代理服务器, 和通用 TCP/UDP 代理服务器, 最初由伊戈尔·西索耶夫(Igor Sysoev)撰写。采用编译安装可以根据自身需要自定义配置,让服务器有更高的安全性和稳定性。

0x01 环境说明































HECS(云耀云服务器)
Ubuntu 22.04
Nginx 1.22.1
GCC 11.3.0
Make 4.3
PCRE 8.39
OpenSSL 3.0.2
zlib 1.2.11
GD 2.3.0

0x02 准备工作

在 Nginx 编译安装之前,我们先要提前做一些准备工作。需要安装 GCC 、 Make 、 PCRE 、 OpenSSL 、 zlib 、 GD 环境依赖项。

更新镜像源。

674eb09b1b8f4481a06c57ecbbd0f604.png

  1. apt-get update

安装 GCC 库。

d856f09c361f49d8b67521ea95d05bfb.png

  1. apt-get install gcc

安装 make 库。

1999457ac2e8448db186c101ef1bbf7f.png

  1. apt-get install make

安装 PCRE 库。

4c633a201f394b6893416c0f29a2f573.png

  1. apt-get install libpcre3 libpcre3-dev

安装 OpenSSL 库。

7cdbbb91966646ec9190ba50c17fb770.png

  1. apt-get install openssl

安装 zlib 库。

0f4fc889be164de092b763d89eba5a85.png

  1. apt-get install zlib1g zlib1g-dev

安装 GD 库。

ffb5b00c2f9641e4b8fabb4af390ce11.png

  1. apt-get install libgd-dev libgdal-dev

0x03 Nginx下载

需要注意的是,使用编译安装时间会比较久。但是编译安装更适合生产环境,所以我个人更倾向于使用编译安装。

在开始之前我们需要先创建 nginx 用户,之所以这么做主要是为了降低服务器风险,让 nginx 以最小的权限运行。

c5e72b5d30244125946870702e0945d2.png

  1. useradd -s /sbin/nologin nginx

访问 nginx 官网。

59011b2a4fae404390fde707598130e6.png

  1. https://nginx.org/en/download.html

下载 Nginx1.22.1 。

b6b9a107500d409d9011fc86ae684dd5.png

  1. wget https://nginx.org/download/nginx-1.22.1.tar.gz

解压 Nginx1.22.1 。

5758ea024563407ca066a36f015a0f61.png

  1. tar -zxvf nginx-1.22.1.tar.gz

0x04 运行配置脚本

打开解压缩后的 nginx-1.22.1 文件。

f07149e4010c4b6c8fb64cc4a8ae41de.png

  1. cd nginx-1.22.1

运行 ./configure 配置脚本,这个脚本主要用来检查 nginx-1.22.1 环境所需的依赖项并配置编译选项。

3bfa3340a8ab4665a63d2930c3841848.png

  1. ./configure --prefix=/usr/local/nginx \
  2. --user=nginx \
  3. --group=nginx \
  4. --with-mail \
  5. --with-pcre \
  6. --with-stream \
  7. --with-threads \
  8. --with-file-aio \
  9. --with-http_v2_module \
  10. --with-http_flv_module \
  11. --with-http_mp4_module \
  12. --with-http_ssl_module \
  13. --with-http_sub_module \
  14. --with-http_dav_module \
  15. --with-mail_ssl_module \
  16. --with-http_slice_module \
  17. --with-stream_ssl_module \
  18. --with-http_realip_module \
  19. --with-http_gunzip_module \
  20. --with-http_addition_module \
  21. --with-http_secure_link_module \
  22. --with-http_stub_status_module \
  23. --with-http_gzip_static_module \
  24. --with-http_random_index_module \
  25. --with-http_auth_request_module \
  26. --with-http_image_filter_module

关于配置命令的使用说明:
















































































































命令 说明
—prefix=/usr/local/nginx 指定安装目录为/usr/local/nginx。
—user=nginx 指定运行Nginx的用户为nginx。
—group=nginx 指定运行Nginx的用户组为nginx。
—with-mail 启用邮件模块,用于处理邮件代理。
—with-pcre 启用PCRE模块,用于支持正则表达式。
—with-stream 启用Stream模块,用于支持TCP和UDP代理。
—with-threads 启用Threads模块,用于支持多线程操作。
—with-file-aio 启用File AIO模块,用于支持异步文件IO。
—with-http_v2_module 启用HTTP/2模块,用于支持HTTP/2协议。
—with-http_flv_module 启用FLV模块,用于支持FLV流媒体。
—with-http_mp4_module 启用MP4模块,用于支持MP4流媒体。
—with-http_ssl_module 启用SSL模块,用于支持HTTPS。
—with-http_sub_module 启用Substitution模块,用于支持内容替换。
—with-http_dav_module 启用DAV模块,用于支持WebDAV。
—with-mail_ssl_module 启用Mail SSL模块,用于支持安全邮件传输。
—with-http_slice_module 启用Slice模块,用于支持分片上传。
—with-stream_ssl_module 启用Stream SSL模块,用于支持安全TCP和UDP代理。
—with-http_realip_module 启用Real IP模块,用于获取真实的客户端IP地址。
—with-http_gunzip_module 启用Gzip模块,用于支持压缩和解压缩。
—with-http_addition_module 启用Addition模块,用于支持响应内容的追加。
—with-http_secure_link_module 启用Secure Link模块,用于生成和验证安全链接。
—with-http_stub_status_module 启用Stub Status模块,用于获取Nginx的运行状态。
—with-http_gzip_static_module 启用Gzip Static模块,用于支持静态文件的压缩。
—with-http_random_index_module 启用Random Index模块,用于随机选择索引文件。
—with-http_auth_request_module 启用Auth Request模块,用于验证用户授权请求。
—with-http_image_filter_module 启用Image Filter模块,用于处理图像。

0x05 Nginx编译安装

编译安装 Nginx1.22.1 。

10def04bf27f441287be8554e1a5626d.png

  1. make && make install

0x06 Nginx验证启动

访问 Nginx1.22.1 的启动文件夹。

428a2a99a91f411b917404f9afac5a69.png

  1. cd /usr/local/nginx/sbin

启动 Nginx1.22.1 。

b1b7e07c04b948e19d6b2846be623850.png

  1. ./nginx

验证 Nginx1.22.1 文件。

e5ba50526e4a4cf49b6aa0d58e51949d.png

  1. ./nginx -t
  2. ./nginx -v

查看 Nginx1.22.1 启动状态。

d0be5f31520343eabbca752b9d36413d.png

  1. netstat -ntlp | grep nginx

0x07 Nginx服务配置

创建 Nginx1.22.1 配置文件。

c2f33ef6fbe04ffe80ca61cca5c041b2.png

  1. vim /usr/lib/systemd/system/nginx.service

编辑 Nginx1.22.1 运行配置文件,保存并退出。 注意:在写入配置文件时,最好将中文注释去除。

a0f52125fd1847e983fb4cfea1ac1ac3.png

  1. [Unit]
  2. Description=nginx - high performance web server # 描述服务功能
  3. Documentation=http://nginx.org/en/docs/ # 获取更多Nginx的信息
  4. After=network.target remote-fs.target nss-lookup.target # 指定了该服务在哪些其他服务之后启动
  5. [Service]
  6. Type=forking # 创建子进程运行服务
  7. PIDFile=/usr/local/nginx/logs/nginx.pid # 指定保存nginx进程ID的文件路径
  8. ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf # 检查nginx配置文件的语法
  9. ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf # 启动nginx服务
  10. ExecReload= /usr/local/nginx/sbin/nginx -s reload # 重启nginx服务
  11. ExecStop= /usr/local/nginx/sbin/nginx -s stop # 停止nginx服务
  12. PrivateTmp=true # 启用私有的临时目录
  13. [Install]
  14. WantedBy=multi-user.target # 多用户模式下启用该服务

给刚刚创建好的 Nginx1.22.1 运行配置文件添加权限。

02c14459bd0742288d5a6880b26102c6.png

  1. chmod +x /usr/lib/systemd/system/nginx.service

打开 Nginx1.22.1 配置文件。

ad99af0cf7604fa1917f1506b7525b51.png

  1. vim /usr/local/nginx/conf/nginx.conf

编辑 Nginx1.22.1 配置文件。这里修改端口为 88 端口号,并设置主机名建立连接,保存并退出。注意需要在服务器中开放 88 端口号。

43d275840d5e4bbcb41d3602ec8f1116.png

0x08 Nginx重载访问

重载 Nginx1.22.1 服务,并设置开机自启动。 注意:请严格按照步骤执行。

47659cd2f9ee4eb3887fe1c564913f7c.png

  1. systemctl daemon-reload
  2. systemctl stop nginx.service
  3. systemctl start nginx.service
  4. systemctl reload nginx.service
  5. systemctl restart nginx.service
  6. systemctl status nginx
  7. systemctl enable nginx.service

访问 Welcome to nginx! 页面。

a6dea2c0c5d644c0ae983f79377c182f.png

0x09 参考文献

[1].帽子先生. nginx入门之——编译安装[EB/OL]. [2023-11-18]. https://zhuanlan.zhihu.com/p/128579141.

0x10 总结

至此Nginx编译安装完成。由于作者水平有限,文中若有错误与不足欢迎留言,便于及时更正。

发表评论

表情:
评论列表 (有 0 条评论,118人围观)

还没有评论,来说两句吧...

相关阅读

    相关 MySQL保姆安装配置

    1. MySQL概述 在这一章节,我们主要介绍两个部分,数据库相关概念及MySQL数据库的介绍、下载、安装、启动及连 接。 1. 1. 数据库相关概念 在这一部分,