跳转到内容

Nginx在Linux系统上的安装和部署

课程介绍

接下来我们学习Nginx的安装部署。Nginx是高性能的Web服务器和反向代理服务器,比Apache性能更高,适合做静态资源服务。Rocky Linux 9需要配置dnf仓库来安装Nginx。安装后用systemctl start nginx启动服务,默认监听80端口。Nginx可以用来托管静态网站,也可以做反向代理和负载均衡,是Web服务器的首选工具。

1. Nginx简介

1. 1 什么是Nginx

Nginx是一个高性能的HTTP和反向代理Web服务器,同时也可以提供IMAP、POP3、SMTP等服务。

1. 2 Nginx的主要功能

  • Web应用程序的托管平台
  • 将用户开发的Web应用程序转换为可访问的网站服务
  • 作为流量代理服务器控制流量中转
  • 提供负载均衡和反向代理功能
  • 支持高并发访问

1. 3 Nginx的应用场景

  • Web服务器:替代Apache提供静态资源服务
  • 反向代理:为后端应用提供负载均衡
  • API网关:管理API请求流量
  • 静态资源缓存:提高网站访问速度

2. 安装前准备

2. 1 系统环境

  • 操作系统:Rocky Linux 9
  • 权限要求:需要root权限

2. 2 安装方式

  • 使用dnf命令安装
  • 需要额外配置dnf仓库(系统默认仓库不含Nginx)

3. Nginx安装

3. 1 安装dnf依赖程序

bash
dnf install -y dnf-utils

3. 2 配置Nginx的dnf仓库

3. 2.1 查看当前dnf仓库配置

bash
# 进入dnf仓库配置目录
cd /etc/dnf.repos.d/

# 查看现有仓库配置文件
ls -la *.repo

3. 2.2 创建Nginx仓库配置文件

bash
# 使用vi编辑器创建nginx.repo文件
vi /etc/dnf.repos.d/nginx.repo

在文件中添加以下内容:

ini
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/rocky/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/rocky/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

3. 3 安装Nginx

bash
dnf install -y nginx

说明:安装过程会自动下载并安装Nginx及其依赖程序


4. Nginx服务管理

4. 1 查看Nginx状态

bash
systemctl status nginx

4. 2 启动Nginx服务

bash
systemctl start nginx

4. 3 设置Nginx开机自启

bash
systemctl enable nginx

4. 4 停止Nginx服务

bash
systemctl stop nginx

4. 5 重启Nginx服务

bash
systemctl restart nginx

![Nginx服务状态](screenshot:执行systemctl status nginx命令后的输出,显示active (running)状态)


5. 防火墙配置

5. 1 验证Nginx端口

bash
# 检查80端口是否被Nginx占用
ss -anp | grep 80

预期输出:显示Nginx进程正在监听80端口

5. 2 配置防火墙规则

5. 2.1 方式一:放行80端口

bash
# 放行80端口
firewall-cmd --permanent --add-port=80/tcp

# 重新加载防火墙规则
firewall-cmd --reload

5. 2.2 方式二:关闭防火墙(仅适用于测试环境)

bash
# 停止防火墙服务
systemctl stop firewalld

# 禁用防火墙开机自启
systemctl disable firewalld

安全提示:生产环境不建议关闭防火墙,应使用方式一配置具体规则


6. 1 通过浏览器访问Nginx

在浏览器中访问Nginx服务器:

http://[服务器IP]

说明:80端口是HTTP协议的默认端口,浏览器地址栏中可以省略不写

如果看到Nginx默认页面,表示安装成功

![Nginx默认页面](screenshot:浏览器中访问Nginx默认页面的截图,显示"Welcome to nginx!"标题)

6. 2 验证Nginx版本

bash
nginx -v

预期输出:显示Nginx的版本信息


6. Nginx与Tomcat的区别

特性NginxTomcat
主要功能HTTP服务器、反向代理、负载均衡Servlet容器、JSP支持
性能更高(静态资源处理能力强)适中(动态资源处理能力强)
并发能力更强(支持数万并发连接)一般(支持数千并发连接)
配置复杂度简单相对复杂
适用场景静态网站、反向代理、负载均衡Java Web应用程序托管

7. 常见问题与解决方案

问题现象可能原因解决方案
dnf安装Nginx失败仓库配置错误检查nginx.repo文件内容是否正确
Nginx无法启动端口被占用或配置错误使用lsof -i:80检查端口占用,查看错误日志/var/log/nginx/error.log
浏览器无法访问Nginx防火墙限制或网络配置问题配置防火墙规则或关闭防火墙,检查网络连接
Nginx默认页面不显示Nginx配置错误或服务未启动检查Nginx配置文件和服务状态

课程总结

这节课我们学了Nginx的安装和部署。

安装步骤:

  1. 配置yum/dnf仓库
  2. dnf install nginx - 安装Nginx
  3. systemctl start nginx - 启动服务
  4. systemctl enable nginx - 开机自启

防火墙配置: firewall-cmd --permanent --add-service=http - 开放HTTP firewall-cmd --reload - 重载配置

Nginx是高性能的Web服务器,默认监听80端口,适合做反向代理和静态文件服务。

课后练习

  1. 基础练习:在Linux系统上成功安装Nginx
  2. 进阶练习
    • 配置Nginx开机自启
    • 修改Nginx默认端口号
    • 部署一个简单的静态网站到Nginx
  3. 挑战练习:配置Nginx作为Tomcat的反向代理服务器

评论区

专业的Linux技术学习平台,从入门到精通的完整学习路径