一 安装nginx
- rpm包安装
bash
sudo apt install nginx -y
- 验证
bash
sudo systemctl start nginx
sudo systemctl enable nginx # 设置开机自启
sudo systemctl status nginx
二 配置反向代理
假设需要将http://your_domain.com/api反向代理到后端服务(如http://localhost:3000)
- 创建Nginx配置文件
bash
sudo nano /etc/nginx/sites-available/your_proxy.conf
- 写入配置内容 nginx
bash
server {
listen 80;
server_name your_domain.com; # 替换为你的域名或服务器IP
# 反向代理配置
location /api/ {
proxy_pass http://localhost:3000/; # 后端服务地址(结尾的/需保持一致)
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
# 可选:配置静态资源代理(如前端页面)
location / {
root /var/www/html; # 前端文件目录
index index.html;
try_files $uri $uri/ /index.html; # 支持SPA路由
}
}
- 启用配置文件
bash
sudo ln -s /etc/nginx/sites-available/your_proxy.conf /etc/nginx/sites-enabled/
- 检查配置语法
bash
sudo nginx -t
- 重启Nginx
bash
sudo systemctl restart nginx
- 测试
访问http://your_domain.com/api,Nginx 会将请求转发到http://localhost:3000,并返回后端服务的响应。
示例:
Nginx 反向代理视频流与 tcpdump 抓包
步骤 1:选择公网视频流(示例:B 站公开视频流)
以 B 站某公开视频流为例(实际可替换为任意公网视频流地址),假设公网视频流地址为https://example.com/video/stream。
步骤 2:配置 Nginx 反向代理
(1)创建 Nginx 代理配置文件
bash
arduino
sudo vim /etc/nginx/sites-available/video-proxy.conf
(2)写入反向代理配置
nginx
ini
server {
listen 80;
server_name 服务器IP;
location / {
proxy_pass https://example.com/video/stream; # 替换为公网视频流实际地址
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
(3)启用配置并重启 Nginx
bash
bash
sudo ln -s /etc/nginx/sites-available/video-proxy.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
步骤 3:使用 tcpdump 抓包
(1)执行抓包命令(替换ens33为实际网卡)
bash
css
sudo tcpdump -i ens33 -w video_stream.pcap tcp -nn -s 0
(2)触发视频流访问
在 PC 播放器中输入http://服务器IP(通过 Nginx 代理访问视频流),播放一段时间后按Ctrl+C停止抓包。
步骤 4:提交文件
- 转换出的视频文件:
output.flv - 抓包文件:
video_stream.pcap将上述两个文件按考官要求提交即可。