当前位置:   article > 正文

源代码安装--Nginx安装及配置_nginx 源码安装

nginx 源码安装

前言

Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。其特点包括占有内存少、并发能力强,因此在同类型的网页服务器中表现较好。Nginx由俄罗斯的程序设计师Igor Sysoev开发,并在一个BSD-like协议下发行。它不仅可以作为一个HTTP服务器进行网站的发布处理,还可以作为反向代理进行负载均衡的实现。此外,Nginx还可以作为虚拟主机,实现在一台服务器上虚拟出多个网站。中国大陆使用Nginx的网站用户包括百度、京东、新浪、网易、腾讯、淘宝等。

Nginx相较于其他服务器软件如Apache和lighttpd,具有占有内存少、稳定性高等优势,并且依靠其强大的并发能力、丰富的模块库以及友好灵活的配置而备受青睐。在Linux操作系统下,Nginx使用epoll事件模型,因此在该操作系统下效率相当高。

总的来说,Nginx是一个功能强大的服务器软件,可用于提供HTTP服务、实现虚拟主机、反向代理和负载均衡等多种功能,是许多大型网站和应用的首选服务器软件。

Nginx具有多种功能,以下是其主要功能的详细解释:

  1. 静态代理:Nginx擅长处理静态文件,可以作为非常好的图片、文件服务器。将所有的静态资源放到Nginx上,可以实现应用动静分离,从而提高整个服务器系统的性能和效率。
  2. 负载均衡:Nginx通过反向代理可以实现服务的负载均衡,避免了服务器单节点故障,将请求按照一定的策略转发到不同的服务器上,达到负载均衡的效果。负载均衡可以优化资源使用,最大化吞吐率,最小化响应时间,同时避免过载。Nginx支持多种负载均衡策略,如轮询、权重、ip_hash、url_hash、fair等。
  3. 反向代理:Nginx可以作为反向代理服务器,代理客户端要访问的目标服务器。代理服务器接受请求,然后将请求转发给内部网络的服务器(集群化),并将从服务器上得到的结果返回给客户端。在反向代理方面,Nginx提供了灵活的功能,可以根据不同的正则采用不同的转发策略。
  4. 配置HTTPS:Nginx支持SSL和TLS SNI,可以配置HTTPS,从而实现加密通信,提高数据传输的安全性。
  5. 动静分离:Nginx可以将动态请求和静态请求分离开,合适的服务器处理相应的请求,这样可以使整个服务器系统的性能、效率更高。一般来说,动态请求由相应的后端服务器处理。
  6. IMAP/POP3代理服务:Nginx还提供IMAP/POP3代理服务功能,可以使用外部HTTP认证服务器重定向用户到IMAP/POP3后端,或者使用外部HTTP认证服务器认证用户后连接重定向到内部的SMTP后端。

1、安装依赖库

首先,你需要安装 Nginx 编译所需的依赖库。这些库可能因你的 Linux 发行版而异。以下是一些常见的依赖库:

  1. yum install gcc
  2. yum install pcre-devel
  3. yum install zlib zlib-devel
  4. yum install openssl openssl-devel

安装过程中

2、下载、编译、配置nginx

注意:以下操作目录为 /usr/local

2.1、下载

方法一:下载地址:
nginx: downloadicon-default.png?t=N7T8http://nginx.org/en/download.html,下载后传到服务器中;

方法二:通过wget直接下载

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

2.2、解压文件

tar -zxvf  nginx-1.20.2.tar.gz

2.3、源码编译

进入解压目录:

cd nginx-1.20.2

基本编译:

./configure

以上源码编译的规则如下所示
这些./configure命令选项是用于配置和编译Nginx源代码的参数。Nginx是一个高性能的HTTP和反向代理服务器,邮件代理服务器,以及通用的TCP/UDP代理服务器。下面是每个选项的详细解释:

--prefix=/usr/share/nginx: 设置Nginx安装的基本目录前缀。
--sbin-path=/usr/sbin/nginx: 设置nginx可执行文件的路径。
--modules-path=/usr/lib/nginx/modules: 设置动态加载模块的路径。
--conf-path=/etc/nginx/nginx.conf: 设置主配置文件的路径。
--error-log-path=/var/log/nginx/error.log: 设置错误日志的路径。
--http-log-path=/var/log/nginx/access.log: 设置访问日志的路径。
以下是与模块相关的选项:
--with-pcre: 使用PCRE库来支持正则表达式的处理。
HTTP模块:
--with-http_ssl_module: 启用SSL支持。
--with-http_realip_module: 启用获取真实客户端IP的模块。
--with-http_addition_module: 启用在响应中添加文本或变量的模块。
--with-http_sub_module: 启用在响应中替换文本的模块。
--with-http_dav_module: 启用WebDAV支持。
--with-http_flv_module: 启用对FLV流媒体的支持。
--with-http_mp4_module: 启用对MP4流媒体的支持。
--with-http_gunzip_module: 启用解压响应的模块。
--with-http_gzip_static_module: 启用对预压缩文件的支持。
--with-http_random_index_module: 启用从目录中随机选择索引文件。
--with-http_secure_link_module: 启用生成和检查安全链接的模块。
--with-http_stub_status_module: 启用获取Nginx状态信息的模块。
--with-http_auth_request_module: 启用基于子请求实现用户认证的模块。
其他模块:
--with-threads: 启用线程池支持。
--with-stream: 启用TCP/UDP代理模块。
--with-stream_ssl_module: 启用在stream模块中使用SSL。
--with-stream_realip_module: 在stream模块中启用获取真实客户端IP的功能。
--with-stream_geoip_module: 在stream模块中启用GeoIP支持。
--with-http_slice_module: 启用响应切片支持。
邮件模块:
--with-mail: 启用邮件代理模块。
--with-mail_ssl_module: 在邮件模块中启用SSL支持。
性能选项:
--with-file-aio: 启用异步文件I/O支持。
--with-http_v2_module: 启用HTTP/2支持。

2.4、源码安装

make && make install

2.5、配置文件软连接

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

3、启动/停止nginx

操作目录:/usr/local/nginx/sbin

cd /usr/local/nginx/sbin

启动

./nginx

关闭

./nginx -s stop

注意:如果启动不了,出现以下情况

则需要关闭防火墙

4、测试访问

在你的主机电脑上输入你的虚拟机IP地址就可以直接进入此页面,应为我们配置的nginx.conf中使用的端口是默认端口80,所以不需要输入端口号就可以直接进入

5、配置自启,编写systemd单元文件管理nginx服务

为什么编写systemd单元文件管理nginx服务
系统初始化与启动:
systemd是Linux系统(特别是较新的发行版)的初始化系统和服务管理器。它负责在系统启动时启动服务,并在系统关闭时停止服务。通过为Nginx编写systemd单元文件,可以确保Nginx在系统启动时自动启动,并在系统关闭时正确停止。

依赖管理:
systemd允许定义服务之间的依赖关系。例如,如果Nginx依赖于某个数据库服务,你可以在Nginx的systemd单元文件中定义这种依赖,确保数据库服务在Nginx之前启动。

日志记录:
systemd提供了强大的日志记录功能,可以记录服务的启动、停止和任何错误。通过systemd管理Nginx,你可以轻松访问这些日志,以便快速诊断问题。

资源限制:
systemd允许你为服务设置资源限制,如CPU、内存和文件描述符的使用量。这对于管理大型Nginx部署或限制潜在的资源滥用非常有用。

重载配置:
systemd允许在不重启服务的情况下重载配置。对于Nginx这样的服务来说,这是一个非常有用的功能,因为你可以在不中断现有连接的情况下应用新的配置更改。

监控和通知:
systemd可以与多种监控工具集成,以便在系统或服务出现问题时发送通知。这使得管理员能够迅速响应并解决潜在问题。

标准化管理:
使用systemd单元文件来管理Nginx可以确保你的服务管理策略在整个系统中保持一致。这有助于减少配置错误,并使系统更容易维护。

进入系统目录:

  1. cd /usr/lib/systemd/system/

编写nginx.service:

vim nginx.service

内容如下:

  1. Description=nginx - high performance web server
  2. After=network.target remote-fs.target nss-lookup.target
  3. [Service]
  4. Type=forking
  5. ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
  6. ExecReload=/usr/local/nginx/sbin/nginx -s reload
  7. ExecStop=/usr/local/nginx/sbin/nginx -s stop
  8. [Install]
  9. WantedBy=multi-user.target

注意:ExecStart、ExecReload、ExecStop需要指定到nginx的实际安装目录

例:

执行命令:

  1. systemctl daemon-reload
  2. # 开启自启
  3. systemctl enable nginx.service
  4. # 启动、重启、停止
  5. systemctl start|reload|stop nginx

————————————————

本文章参考                     
原文链接:https://blog.csdn.net/zhuocailing3390/article/details/122250271

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/785467
推荐阅读
相关标签
  

闽ICP备14008679号