如何通过Nginx反向代理在Ubuntu上优化网站性能并增强安全性?
- 内容介绍
- 文章标签
- 相关推荐
痛点揭示在 Ubuntu 程序上部署 Nginx 时常见的痛点包括权限不足导致无法安装或开启服务配置错误导致跨域请求被阻断还有网站响应慢、安全隐患高。下面将一步步演示如何通过 Nginx 反向代理来明显提高网站性能并提高安全性
确保以
1. 前置准备与权限确认
sudo权限登录 Ubuntu,避免因权限不足导致的安装失败或无法编辑配置文件。
2. 安装 Nginx
sudo apt update
sudo apt install nginx -y
注意安装过程会自动开放 HTTP端口。若使用防火墙,请确保允许 HTTP/HTTPS 流量。
3. 启动并设置开机自启动
sudo systemctl start nginx
sudo systemctl enable nginx
如果程序开启了防火墙。执行以下命令确保 Nginx 能够正常工作:
sudo ufw allow 'Nginx Full'
4. 验证 Nginx 是否正常运行
在浏览器中访问服务器的公网 IP(如 http://11.112.113.114),应能看到 Nginx 的默认欢迎页面。若看不到,可执行语法检查并重新加载:
sudo nginx -t
sudo systemctl reload nginx
5. 配置反向代理
痛点**:跨域访问受同源策略限制。前端页面无法调用后端 API。使用 Nginx 作为反向代理可以轻松绕过此限制。
/etc/nginx/sites-available/my_proxy.conf
server {
listen 80;server_name example.com;location / {
# 把所有请求转发到内部实际服务器
proxy_pass http://192.168.1.10:8080;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;# 开启跨域支持
add_header Access-Control-Allow-Origin "*";}
}
5.1 启用新配置文件
创建符号链接至 /etc/nginx/sites-enabled/,让 Nginx 加载该配置:
sudo ln -s /etc/nginx/sites-available/my_proxy.conf /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
6️⃣ 性能调整技巧 – 提高响应速度与并发能力
- -gzip 压缩在 {http}{ } 块中开启 gzip 压缩可显著减小传输体积。
- -keepalivetimeout:调大 keepalivetimeout 减少 TCP 握手次数。话说回来,
- -workerprocesses & workerconnections根据 CPU 核数和内存容量合理设定 workerprocesses 和 workerconnections。 提高并发处理上限,老实说,
- -缓存静态资源:使用 {location}{~* .$}{ expires 30d;} 指定长期缓存,
- -upstream 负载均衡*:当有多台后端服务器时利用 upstream 模块实现轮询或连接数均衡。
- 这些设置都需要根据实际流量和硬件资源进行微调。* \end{enumerate}
7️⃣ 安全提高措施 – 防止攻击与泄露
- - HTTPS 加密推荐使用 Let’s Encrypt 或公司证书,并在 server 块中强制 redirect HTTP → HTTPS。
- - 隐藏底层服务器信息:在 proxyresponse 中去除 Server 首部,防止暴露后端软件版本。说起来,
- - 防篡改头部字段添加 X-Frame-Options、X-Content-Type-Options、Referrer-Policy 提高点击劫持和 MIME 跳蛋防御。怎么说呢,
- - IP 黑白名单控制访问:通过 allow/deny 指令仅允许可信 IP 调用反向代理。
- - 动态率 limiting** :limitreqzone 和 limitreq 控制请求频率,防止 DDoS 攻击。
- 安全是一个程序化过程,每一步都需要结合实际业务场景进行评估。 \end{enumerate}
8️⃣ 验证与排错
tail -f /var/log/nginx/error.log
curl -I http://example.com/api/status
如果返回值正常且状态码为 200则说明反向代理已成功工作。
🔚 小结 – 用好 Nginx 实现性能与安全双飞
这样就可以在 Ubuntu 上利用 Nginx 作为高效的反向代理显著调整网站的响应速度而且在多大程度上减少问题。祝你玩得愉快,
。
痛点揭示在 Ubuntu 程序上部署 Nginx 时常见的痛点包括权限不足导致无法安装或开启服务配置错误导致跨域请求被阻断还有网站响应慢、安全隐患高。下面将一步步演示如何通过 Nginx 反向代理来明显提高网站性能并提高安全性
确保以
1. 前置准备与权限确认
sudo权限登录 Ubuntu,避免因权限不足导致的安装失败或无法编辑配置文件。
2. 安装 Nginx
sudo apt update
sudo apt install nginx -y
注意安装过程会自动开放 HTTP端口。若使用防火墙,请确保允许 HTTP/HTTPS 流量。
3. 启动并设置开机自启动
sudo systemctl start nginx
sudo systemctl enable nginx
如果程序开启了防火墙。执行以下命令确保 Nginx 能够正常工作:
sudo ufw allow 'Nginx Full'
4. 验证 Nginx 是否正常运行
在浏览器中访问服务器的公网 IP(如 http://11.112.113.114),应能看到 Nginx 的默认欢迎页面。若看不到,可执行语法检查并重新加载:
sudo nginx -t
sudo systemctl reload nginx
5. 配置反向代理
痛点**:跨域访问受同源策略限制。前端页面无法调用后端 API。使用 Nginx 作为反向代理可以轻松绕过此限制。
/etc/nginx/sites-available/my_proxy.conf
server {
listen 80;server_name example.com;location / {
# 把所有请求转发到内部实际服务器
proxy_pass http://192.168.1.10:8080;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;# 开启跨域支持
add_header Access-Control-Allow-Origin "*";}
}
5.1 启用新配置文件
创建符号链接至 /etc/nginx/sites-enabled/,让 Nginx 加载该配置:
sudo ln -s /etc/nginx/sites-available/my_proxy.conf /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
6️⃣ 性能调整技巧 – 提高响应速度与并发能力
- -gzip 压缩在 {http}{ } 块中开启 gzip 压缩可显著减小传输体积。
- -keepalivetimeout:调大 keepalivetimeout 减少 TCP 握手次数。话说回来,
- -workerprocesses & workerconnections根据 CPU 核数和内存容量合理设定 workerprocesses 和 workerconnections。 提高并发处理上限,老实说,
- -缓存静态资源:使用 {location}{~* .$}{ expires 30d;} 指定长期缓存,
- -upstream 负载均衡*:当有多台后端服务器时利用 upstream 模块实现轮询或连接数均衡。
- 这些设置都需要根据实际流量和硬件资源进行微调。* \end{enumerate}
7️⃣ 安全提高措施 – 防止攻击与泄露
- - HTTPS 加密推荐使用 Let’s Encrypt 或公司证书,并在 server 块中强制 redirect HTTP → HTTPS。
- - 隐藏底层服务器信息:在 proxyresponse 中去除 Server 首部,防止暴露后端软件版本。说起来,
- - 防篡改头部字段添加 X-Frame-Options、X-Content-Type-Options、Referrer-Policy 提高点击劫持和 MIME 跳蛋防御。怎么说呢,
- - IP 黑白名单控制访问:通过 allow/deny 指令仅允许可信 IP 调用反向代理。
- - 动态率 limiting** :limitreqzone 和 limitreq 控制请求频率,防止 DDoS 攻击。
- 安全是一个程序化过程,每一步都需要结合实际业务场景进行评估。 \end{enumerate}
8️⃣ 验证与排错
tail -f /var/log/nginx/error.log
curl -I http://example.com/api/status
如果返回值正常且状态码为 200则说明反向代理已成功工作。
🔚 小结 – 用好 Nginx 实现性能与安全双飞
这样就可以在 Ubuntu 上利用 Nginx 作为高效的反向代理显著调整网站的响应速度而且在多大程度上减少问题。祝你玩得愉快,
。
