Nginx是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。
以下是 Nginx 的一些核心功能和特点:
- 高性能的 Web 服务器:
Nginx 被设计为处理高并发连接,具有非常高的性能和稳定性。 - 反向代理:
作为反向代理服务器,Nginx 可以将客户端的请求转发到后端的多个服务器上,实现负载均衡。 - 静态内容缓存:
Nginx 可以缓存静态内容,减少服务器的负载,加快静态资源的加载速度。 - SSL/TLS 支持:
Nginx 支持 SSL/TLS 协议,可以为网站提供安全的加密连接。 - URL 重写:
通过使用 Nginx 的重写模块,可以对请求的 URL 进行重写,实现 URL 重定向或伪静态。 - 负载均衡:
Nginx 支持多种负载均衡策略,如轮询、最少连接、IP 哈希等。 - 模块化设计:
Nginx 的模块化设计允许用户根据需要添加或移除功能模块。 - 缓存代理:
Nginx 可以作为缓存代理服务器,缓存来自后端服务器的内容,减少对后端服务器的请求。 - 访问控制:
通过配置文件,可以对访问者进行访问控制,例如限制特定 IP 地址的访问。 - 日志记录:
Nginx 提供了详细的访问日志记录功能,可以记录访问者的请求信息。 - 状态监控:
Nginx 可以通过状态监控模块提供实时的状态信息,如当前的连接数、请求处理情况等。 - 邮件代理:
Nginx 可以作为 IMAP/POP3/SMTP 代理服务器,处理邮件的接收和发送。 - WebSockets 支持:
Nginx 支持 WebSockets 协议,可以用于实现实时通信。 - 配置灵活性:
Nginx 的配置文件结构清晰,易于理解和修改,支持细粒度的配置。 - 跨平台:
Nginx 可以在多种操作系统上运行,包括 Linux、BSD、macOS 和 Windows。 - 社区和商业支持:
拥有活跃的社区和商业支持,提供持续的更新和安全补丁。
Nginx 的灵活性和高性能使其成为现代 Web 应用和基础设施中广泛使用的服务器软件之一。
操作系统:CentOS 7.*
-
更新系统包:
sudo yum update
-
安装依赖:
Nginx 需要编译工具和一些库
sudo yum install -y gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel
-
下载 Nginx:
访问 Nginx 官网下载 Nginx 1.26.1 源码包
wget http://nginx.org/download/nginx-1.26.1.tar.gz
-
解压源码包
cd /opt tar -zxvf nginx-1.26.1.tar.gz cd nginx-1.26.1
-
配置 Nginx
使用 ./configure 脚本来配置 Nginx 编译选项
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-http_gzip_static_module
参数说明:
- --prefix=/usr/local/nginx 指定了 Nginx 安装的路径。
- --with-http_ssl_module 启用 SSL 模块。
- --with-http_stub_status_module 启用状态监控模块。
- --with-http_gzip_static_module 启用静态文件的 Gzip 压缩。
-
编译 Nginx
make
-
安装 Nginx
将编译好的 Nginx 安装到指定的目录
sudo make install
-
配置 Nginx 服务
创建一个 systemd 服务文件来管理 Nginx
sudo vi /etc/systemd/system/nginx.service
写入以下内容:
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=network.target remote-fs.target nss-lookup.target[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecStop=/usr/local/nginx/sbin/nginx -s quit
ExecReload=/usr/local/nginx/sbin/nginx -s reload
PrivateTmp=true[Install]
WantedBy=multi-user.target
- 启动 Nginx 服务
启动 Nginx 服务,并设置开机启动
sudo systemctl start nginxsudo systemctl enable nginx
-
检查 Nginx 状态
检查 Nginx 服务是否成功启动
sudo systemctl status nginx
-
访问 Nginx测试页
在浏览器中访问 http://your_server_ip,能看到 Nginx 的欢迎页面了,至此,nginx已正常运行了
-
根据业务需求来修改 Nginx 配置文件
通过编辑 /usr/local/nginx/conf/nginx.conf 文件,根据需要配置服务器、日志路径、虚拟主机等。 -
重启 Nginx 服务
保存nginx.conf配置文件更改后,重启 Nginx 服务以应用更改sudo systemctl restart nginx
- 添加防火墙规则(可选)
如果开启了firewalld防火墙,则需要添加规则允许外部访问# 方式1:通过服务名称(http服务默认端口号:80)添加 sudo firewall-cmd --permanent --zone=public --add-service=http # 方式2:通过端口号添加 sudo firewall-cmd --permanent --zone=public --add-port=80/tcp # 立即应用规则,使其生效 sudo firewall-cmd --reload