超实用的Nginx常见配置合集分享
超实用的Nginx常见配置合集分享
1. 静态文件服务
1.1 实现原理
在 Nginx 中配置一个虚拟主机,并将静态文件所在目录的路径配置到该虚拟主机下。当访问该虚拟主机的某个文件时,Nginx 会对该文件进行直接返回。
1.2 实现步骤
- 编辑 Nginx 配置文件
/etc/nginx/nginx.conf
,在 http{} 节点下添加 server{} 节点:
server {
# 监听 80 端口,可以根据需要更改端口号
listen 80;
# 服务器名称,可以使用域名或IP地址
server_name example.com;
# 静态文件所在目录路径
root /path/to/static/files;
# 静态文件访问路径
location / {
# 使 Nginx 直接返回文件,提高访问速度
try_files $uri =404;
}
}
- 保存配置文件并重启 Nginx 服务:
sudo service nginx restart
- 测试访问:
curl http://example.com/file.html
2. 反向代理
2.1 实现原理
将客户端的请求转发给内部的另一个网站或服务器处理,并将处理结果返回给客户端。在 Nginx 中配置一个虚拟主机,并将该虚拟主机的地址配置为反向代理服务器的地址,同时将需要代理的站点或服务器的地址配置为该虚拟主机下的一个 location,即可实现反向代理功能。
2.2 实现步骤
- 编辑 Nginx 配置文件
/etc/nginx/nginx.conf
,在 http{} 节点下添加 server{} 节点:
server {
# 监听 80 端口,可以根据需要更改端口号
listen 80;
# 服务器名称,可以使用域名或IP地址
server_name example.com;
# 反向代理服务器地址和端口号
proxy_pass http://internal.site.com:8080/;
# location 的 URI 与要被代理的网站 URI 相同
location / {
# 生成代理服务器地址的 URL,$uri 为当前请求的 URI
proxy_set_header Host $host;
# 生成代理服务器地址的 URL,$uri 为当前请求的 URI
proxy_set_header X-Real-IP $remote_addr;
# 将客户端地址设置到 “X-Forwarded-For” 头中,方便后端服务器获取客户端 IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
- 保存配置文件并重启 Nginx 服务:
sudo service nginx restart
- 测试访问:
curl http://example.com