『云服务』Nginx 搭建操作指南

110 阅读4分钟

一、前言

在当今互联网快速发展的时代,Nginx 作为一款高性能的开源 Web 服务器,因其轻量、快速、稳定的特性,被广泛应用于网站反向代理、负载均衡和静态资源服务等场景。

无论是初创企业还是大型企业,Nginx 都成为部署和优化业务的首选工具之一。

1.1 什么是 Nginx

Nginx(发音为 "engine-x")是一款开源的高性能 HTTP 和反向代理服务器,同时也可以用作邮件代理服务器和通用的 TCP/UDP 负载均衡器。它由俄罗斯工程师 Igor Sysoev 开发并于 2004 年首次发布,最初是为了解决高并发连接的问题。目前,Nginx 已广泛应用于全球各类互联网服务中。

1.2 Nginx 优势

Nginx 在现代 Web 服务器中占据重要地位,据统计,超过 30% 的网站使用 Nginx 作为其 Web 服务器。其卓越的性能和灵活性使其成为许多企业的首选。Nginx 的主要优势包括:

  • 高性能:Nginx 采用异步非阻塞的事件驱动模型,能够高效处理大量并发连接,适合处理高流量网站。
  • 轻量级:Nginx 采用 C 语言编写,占用资源少,启动迅速,适合高并发场景,特别是在资源受限的环境中表现出色。
  • 可扩展:Nginx 支持模块化设计,可以通过插件扩展功能,满足不同需求,如支持各种协议和安全功能。
  • 高可靠性:Nginx 采用多进程模型,一个进程出现问题不会影响整体服务,确保网站的持续可用性。
  • 灵活配置:Nginx 配置简单灵活,支持反向代理、负载均衡、缓存等多种功能,使其能适应复杂的网络环境。

总之,Nginx 的这些优势使其成为构建现代、高效、可靠的 Web 架构的关键组件。

1.3 为什么选择 Nginx

  • 快速、稳定、高效:特别适合处理高并发、高流量场景。
  • 多功能:不仅仅是 HTTP 服务器,还支持反向代理、负载均衡等多种用途。
  • 适用广泛:从中小型网站到大规模分布式系统,都有其用武之地。
  • 强大的社区支持:有大量的教程和扩展,方便学习和应用。

1.4 Nginx 安装

Nginx 的安装非常简单,只需几个命令即可完成。下面以阿里云服务器 CentOS 7 为例,介绍如何安装 Nginx。

  1. 更新系统软件包:

代码语言:bash

sudo yum update

在安装过程中,可能会提示是否更新软件包,输入 y 确认即可。

直到最后,出现 Complete! 表示更新完成。

  1. 安装 Nginx:

代码语言:bash

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

注意:请根据需求替换 Nginx 的版本号。

解压并进入源码目录:

代码语言:bash

tar -zxvf nginx-1.24.0.tar.gz

进入源码目录:

代码语言:bash

cd nginx-1.24.0

安装依赖,确保系统有编译 Nginx 所需的依赖包:

代码语言:bash

sudo yum install -y gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel

配置安装路径,将 Nginx 安装目录设置为 /usr/local/nginx,使用 ./configure 命令指定安装目录:

代码语言:bash

./configure --prefix=/usr/local/nginx \
            --conf-path=/usr/local/nginx/nginx.conf \
            --sbin-path=/usr/local/nginx/sbin/nginx \
            --pid-path=/usr/local/nginx/logs/nginx.pid \
            --with-http_ssl_module

参数说明:

  • --prefix: 指定 Nginx 的根目录。
  • --conf-path: 指定配置文件路径。
  • --sbin-path: 指定 Nginx 主程序路径。
  • --pid-path: 指定 PID 文件路径。

编译并安装 Nginx:

代码语言:bash

make

代码语言:bash

sudo make install

启动 Nginx,使用 nginx 命令,直接运行安装目录下的 nginx 文件即可:

代码语言:bash

sudo /usr/local/nginx/sbin/nginx

验证安装结果,检查 Nginx 是否启动成功:

代码语言:bash

sudo netstat -tulnp | grep nginx

查看版本信息:

代码语言:bash

/usr/local/nginx/sbin/nginx -v

浏览器输入 http://IP 即可访问 Nginx。

这里有一个注意点就是需要再云控制台中放行端口 80。安全组(防火墙)中进行配置即可。

二、Nginx 运维

2.1 Nginx 启动

启动 Nginx,使用 nginx 命令,直接运行安装目录下的 nginx 文件即可:

代码语言:bash

sudo /usr/local/nginx/sbin/nginx

2.2 Nginx 停止

停止 Nginx,使用 nginx -s stop 命令,直接运行安装目录下的 nginx 文件即可:

代码语言:bash

sudo /usr/local/nginx/sbin/nginx -s stop

2.3 Nginx 重启

重启 Nginx,使用 nginx -s reload 命令,直接运行安装目录下的 nginx 文件即可:

代码语言:bash

sudo /usr/local/nginx/sbin/nginx -s reload

三、配置自动启动(可选)

编辑 Systemd 配置文件:

代码语言:bash

sudo vim /etc/systemd/system/nginx.service

/etc/systemd/system 该目录一般存放一些系统服务的配置文件。

内容如下:

代码语言:bash

[Unit]
Description=The NGINX HTTP and reverse proxy server
After=network.target

[Service]
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true

[Install]
WantedBy=multi-user.target

启用并设置开机自启动:

代码语言:bash

sudo systemctl enable nginx

代码语言:bash

sudo systemctl start nginx