本文将在Centos系统下详解Nginx服务器,从概念、下载、安装、编译、配置(含域名和证书)到启动。本文先讲Nginx如何使用,然后再谈概念。
一、实践
1. 下载
- 下载通常有2种方式:Centos自带的包管理工具、源码编译安装(推荐,拓展性强),本文使用源码编译安装的形式下载
- 从Nginx官网(
nginx.org
)下载Nginx的源代码。亦可以使用wget命令或者浏览器下载后通过FTP等方式传输到服务器上wget http://nginx.org/download/nginx-latest.tar.gz tar zxvf nginx-latest.tar.gz cd nginx-x.y.z # 替换为下载的版本号
- 解压后的目录主要组成如下(如果下载的是nginx-1.24.2.tar.gz,解压后将得到一个名为nginx-1.24.2的目录):
-
auto/:包含配置脚本和检测脚本,用于在编译之前自动检测系统的配置和已安装的库。
-
conf/:包含Nginx的默认配置文件模板,如nginx.conf和koi-utf、koi-win、mime.types等文件。
-
contrib/:包含一些可选的补丁和工具,用于增强Nginx的功能。
-
html/:包含Nginx默认的HTML页面,如index.html和50x.html错误页面。
-
man/:包含Nginx的man手册页,提供Nginx命令和配置的详细文档。
-
src/:包含Nginx的源代码文件,这是编译Nginx时最核心的部分。
-
configure:一个脚本,用于配置Nginx的编译选项。运行此脚本后,它会检查你的系统环境,并创建一个Makefile文件,该文件包含了编译Nginx所需的命令和选项。
-
- 插一点课外知识:wget和yum(centos中最常用的包管理工具,还有RPM、DNF、APT等)
-
功能:wget主要用于下载文件,而yum则用于软件包管理。
-
使用场景:wget适用于需要下载文件或网页内容的场景;yum则适用于需要安装、更新或删除软件包的场景。
-
依赖关系:wget下载文件时不涉及依赖关系问题;yum在安装软件包时会自动处理依赖关系。
-
协议支持:wget支持HTTP、HTTPS和FTP协议;yum主要用于处理RPM包,但背后的软件源可能支持多种协议来下载软件包。
-
2. 安装依赖项
-
根据你的Linux发行版,安装Nginx编译所需的依赖项。例如,在基于Debian的系统上,你可以使用apt-get;在基于Red Hat的系统上,使用yum或dnf。
# Debian/Ubuntu sudo apt-get update sudo apt-get install build-essential libpcre3 libpcre3-dev zlib1g-dev libssl-dev # CentOS/RHEL sudo yum install gcc pcre-devel zlib-devel openssl-devel
-
依赖项介绍
- GCC(GNU Compiler Collection)
- 作用:GCC是GNU项目的编译器套件,nginx的源码是用C语言编写的,因此需要GCC来编译这些源码。
- 安装命令:在CentOS中,可以使用yum包管理器来安装GCC。命令如下:
yum install -y gcc gcc-c++
- PCRE(Perl Compatible Regular Expressions)
- 作用:PCRE是一个Per
- GCC(GNU Compiler Collection)