nginx配置oss代理
工作中会有一些时候需要将图片,视频,音频等文件放到oss这种对象存储中进行存储,实现高性能的访问,这种情况叫做动静分离.这里只做了图片的配置,视频以及音频的配置是一样的.
以下是nginx.conf的配置信息,其中还有ssl的加密配置,以及后端服务器的代理模块配置,(这里不用的话可以忽略)
以下是nginx.conf的配置信息,
# 不指定运行Nginx的工作进程用户,默认使用安装时设定的用户
#user nobody;
worker_processes 1; # 设置工作进程的数量为1
events {
worker_connections 1024; # 每个工作进程允许的最大连接数为1024
}
http { # HTTP服务的相关配置
include mime.types; # 包含MIME类型定义文件
default_type application/octet-stream; # 默认的MIME类型
sendfile on; # 开启高效文件传输模式
keepalive_timeout 65; # 客户端连接保持活动状态的超时时间设置为65秒
upstream httpds { # 定义一个名为httpds的上游服务器组
server 192.168.59.31:8080 weight=6; # 第一台后端服务器,权重为6
server 192.168.59.31:8081 weight=2; # 第二台后端服务器,权重为2
server 192.168.59.31:8082 weight=2; # 第三台后端服务器,权重为2
}
server { # 配置一个虚拟主机
listen 80; # 监听80端口
#server_name localhost; # 注释掉了默认的服务器名
server_name www.mfzz.xyz; # 设置服务器名为www.mfzz.xyz
return 301 https://$host$request_uri; # 将所有HTTP请求重定向到HTTPS
error_page 500 502 503 504 /50x.html; # 自定义错误页面位置
location = /50x.html { # 当出现500、502、503或504错误时显示此页面
root html; # 错误页面位于html目录下
}
}
server { # HTTPS服务配置
listen 443 ssl; # 监听443端口,并启用SSL
server_name www.mfzz.xyz; # 设置服务器名为www.mfzz.xyz
ssl_certificate /etc/ssl/nginx_certs/mfzz.xyz.pem; # SSL证书路径
ssl_certificate_key /etc/ssl/nginx_certs/mfzz.xyz.key; # SSL证书密钥路径
# SSL安全配置
ssl_protocols TLSv1.2 TLSv1.3; # 使用的协议版本
ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256'; # 加密套件
ssl_prefer_server_ciphers on; # 优先使用服务器指定的加密套件
# 图片文件处理 (OSS)
location ~* \.(jpg|jpeg|png|gif|webp)$ { # 对图片文件进行匹配(不区分大小写)
proxy_pass https://oss-cn-beijing.aliyuncs.com; # OSS访问地址,请替换为你的实际OSS地址(就是endpoint地址)
proxy_set_header Host images.oss-cn-beijing.aliyuncs.com; # 设置请求头中的Host字段为目标OSS域名
proxy_set_header X-Real-IP $remote_addr; # 设置真实的客户端IP地址
proxy_hide_header x-oss-request-id; # 隐藏特定响应头
proxy_hide_header x-oss-object-type; # 隐藏特定响应头
expires 30d; # 设置缓存过期时间为30天
add_header Cache-Control "public"; # 添加Cache-Control头部,指示资源可以被公共缓存
}
location / { # 处理所有其他请求
proxy_pass http://httpds; # 反向代理至httpds上游服务器组
proxy_set_header Host $host; # 设置请求头中的Host字段
proxy_set_header X-Real-IP $remote_addr; # 设置真实的客户端IP地址
proxy_set_header X-Forwarded-Proto https; # 设置转发协议为https
}
}
}
上面的就是nginx配置文件中的动静分离场景,