[toc]
| 单词 | 词性 | 音标 | 含义 |
|---|---|---|---|
| install | v. | /ɪnˈstɔːl/ | 安装(用 apt 安装软件) |
| status | n. | /ˈsteɪtəs/ | 状态(服务当前运行情况) |
| enable | v. | /ɪˈneɪbl/ | 启用(这里指设置开机自启) |
| reload | v. | /ˌriːˈləʊd/ | 重载(不中断服务地重新加载配置) |
| AppArmor | n. | /ˈæpˌɑːmər/ | Ubuntu 的访问控制模块(限制程序读写路径) |
Lecture02-Nginx-Ubuntu安装与AppArmor放行
1、本节讲什么
在 Ubuntu 上装好 Nginx,掌握启停、查看状态、配置文件位置。装完能用浏览器/curl 访问到 Nginx 默认欢迎页,就算成。
2、照着做(命令逐步来)
① 更新软件源并安装
sudo apt update
sudo apt install nginx -y
② 查看安装版本和状态
nginx -v # 看版本,装成功的第一步
sudo systemctl status nginx # 看运行状态(active (running) 才对)
③ 启动、开机自启、重载配置
sudo systemctl start nginx # 启动
sudo systemctl enable nginx # 设置开机自启(服务器重启后自动起来)
sudo systemctl reload nginx # 改了配置后重载(不中断服务)
sudo systemctl restart nginx # 重启(会短暂中断,改了端口等才用)
④ 验证能访问
curl http://localhost # 返回 Nginx 欢迎页 HTML 就成功
浏览器打开 http://服务器IP 看到 "Welcome to nginx!" 页面即可。
⑤ 认识配置文件位置(后面所有配置都在这里改)
| 路径 | 作用 |
|---|---|
/etc/nginx/nginx.conf | 主配置文件(全局配置 + 引入其他配置) |
/etc/nginx/sites-available/ | 站点配置的"草稿区" |
/etc/nginx/sites-enabled/ | 站点配置的"启用区"(软链接到 available) |
/etc/nginx/conf.d/ | 额外的 .conf 配置片段 |
/var/log/nginx/ | 日志目录(主题 6 会讲) |
3、补充:AppArmor 对 Nginx 的限制与放行
正常用默认配置(80 端口、默认日志 / 站点路径),AppArmor 全放行,不用管。只有当你改了 Nginx 读写文件的自定义路径(如自定义
access_log/error_log目录、自定义root静态目录)时,才可能被 AppArmor 拦。 注意:改监听端口(如listen 8080)AppArmor 一般不拦(网络规则已放行),重点留意的是文件路径。
① 怎么判断是不是 AppArmor 拦的
sudo dmesg | grep -i 'denied' | tail # 或 journalctl -xe | grep -i apparmor
# 看到 apparmor="DENIED" ... profile="nginx" ... 就是它拦的
② 看 Nginx 的 profile 状态
sudo apt install apparmor-utils -y # 提供 aa-status / aa-complain 等工具
sudo aa-status | grep -i nginx # 看 nginx 是 enforce(强制)还是 complain
③ 放行自定义路径(编辑 profile)
sudo vim /etc/apparmor.d/usr.sbin.nginx # 在 { } 里加允许规则
在文件里追加(例:允许自定义日志和静态目录):
/data/logs/*.log w, # 允许写自定义日志
/data/www/** r, # 允许读自定义静态目录
④ 重载 profile 生效
sudo apparmor_parser -r /etc/apparmor.d/usr.sbin.nginx
⑤ 排查用 complain 模式(只警告、不拦截)
sudo aa-complain /usr/sbin/nginx # 临时只记不拦,看日志确认到底需要哪些路径
sudo aa-enforce /usr/sbin/nginx # 排查完切回强制模式
正确 vs 误区:别一上来 aa-disable 把整个防护关掉;先看 DENIED 日志确认是哪个路径,再精准放行;用 complain 模式排查最安全。
4、常见疑问
- Q:改完配置怎么生效?
A:先
sudo nginx -t测语法(见下),通过后sudo systemctl reload nginx。改配置不用重启,reload 就行。 - Q:端口被占用 / 启动失败怎么办?
A:
sudo systemctl status nginx看报错;常是 80 端口被别的程序占用。改 Nginx 监听端口(/etc/nginx/sites-available/default里的listen 80)再 reload。 - Q:改了配置但没生效?
A:八成是没
nginx -t通过,或改错了文件没被 include。先测语法:sudo nginx -t # 显示 syntax is ok 且 test is successful 才对
5、本节验证
- 会用 apt 安装 Nginx 并查看状态 ✅
- 会启停、开机自启、重载配置 ✅
- 认识配置文件位置(nginx.conf / sites-available / sites-enabled / conf.d)✅
- 会用 dmesg / aa-status 判断 AppArmor 拦截并精准放行 ✅