1 背景:
· 有防火墙的或希望使用固定IP方式访问OBS的客户:
华为云OBS 是基于Restful API对外提供服务。一般情况下终端用户会通过OBS服务默认的域名或者绑定的自定义域名来访问(ex:https://bucket.obs.cn-north-1.myhuaweicloud.com) 。这样就可以进行服务访问了,但是华为云OBS出于安全保护考虑,桶对应的域名通过DNS解析的IP是会发生变化的。所以,您无法获取某个Bucket对应的长期有效IP地址。但是在一些企业公司,也同样出于安全考虑对于可访问的外部地址需要设置黑白名单,而这个时候对于OBS的访问则需要一个固定的IP。
· 客户希望从OBS下载对象按照带宽来使用和计费:
在使用 华为云OBS作为网站 网盘等数据源提供数据下载能力时候,OBS 当前是基于流量进行计费,在经常性下载使用情况下,费用过高。那么这个时候可以使用ECS购买固定带宽的EIP,通过此ECS在内网从OBS下载数据再代理下载至终端用户。
· 客户使用专线条件下,解决内网访问可能出现的地址冲突:
部分专属云客户或者使用专线客户在将线下IDC和线上公有云打通访问OBS时候,可能因为IDC的内网地址规划为100.125.0.0/16,此时会和OBS服务在内网访问地址100.125.0.0/16产生冲突;这个时候访问OBS通过一个代理则可以解决此类问题。
配置Nginx
# For more information on configuration, see:
# * Official English Documentation: http://nginx.org/en/docs/
# * Official Russian Documentation: http://nginx.org/ru/docs/
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
# Load dynamic modules. See /usr/share/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;
events {
worker_connections 1024;
}
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
underscores_in_headers on;
include /etc/nginx/mime.types;
default_type application/octet-stream;
client_body_buffer_size 2048k;
client_max_body_size 100M; #设定下载上传时候单个http请求的数据量大小,建议在客户端上传下载使用分段,过大会导致Nginx负载过高
fastcgi_buffer_size 1024k;
fastcgi_buffers 6 256k;
fastcgi_busy_buffers_size 1024k;
# Load modular configuration files from the /etc/nginx/conf.d directory.
# See http://nginx.org/en/docs/ngx_core_module.html#include
# for more information.
include /etc/nginx/conf.d/*.conf;
#使用固定地址代理 OBS访问
server {
listen 80 default_server;
listen 443;
listen [::]:80 default_server;
server_name 114.115.168.79;
root /usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
allow 192.168.160.151; # 可以配置允许访问的主机地址
#deny all; #根据需要打开
location / {
proxy_pass http://obs.cn-north-1.myhuaweicloud.com; # OBS 桶所在Region的域名
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host obs.cn-north-4.myhuaweicloud.com;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
#访问OBS区域域名的配置
server {
listen 80;
listen 443;
server_name obs.cn-north-1.myhuaweicloud.com;
location / {
proxy_pass http://obs.cn-north-1.myhuaweicloud.com/;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host obs.cn-north-1.myhuaweicloud.com;
}
}
#访问OBS全局域名的配置
server {
listen 80;
listen 443;
server_name obs.myhuaweicloud.com;
location / {
proxy_pass http://obs.cn-north-1.myhuaweicloud.com/;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host obs.cn-north-1.myhuaweicloud.com;
}
}
#以虚拟主机方式访问OBS全局域名的配置
server {
listen 80;
listen 443;
server_name ~^((?<subdomain>.*).)obs.myhuaweicloud.com$;
if ($subdomain = "") {
set $subdomain "_";
}
location / {
proxy_pass http://$subdomain.obs.cn-north-1.myhuaweicloud.com;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $proxy_host;
}
resolver 100.125.1.250; #具体的值填入 华为云不同区域 内网DNS地址
}
#以虚拟主机方式访问OBS区域域名的配置
server {
listen 80;
listen 443;
server_name ~^((?<subdomain>.*).)obs.cn-north-1.myhuaweicloud.com$;
access_log /var/log/nginx/th_access.log main;
if ($subdomain = "") {
set $subdomain "_";
}
proxy_connect_timeout 600;
proxy_read_timeout 600;
proxy_send_timeout 600;
location / {
proxy_pass http://$subdomain.obs.cn-north-1.myhuaweicloud.com;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $proxy_host;
}
resolver 100.125.1.250; #具体的值填入 华为云不同区域 内网DNS地址
}
版权属于:LCQ(除特别注明外)
原文链接:https://bbs.huaweicloud.com/blogs/119627
本站文章采用 知识共享署名4.0 国际许可协议 进行许可,请在转载时注明出处及本声明!
本文由 admin 创作,采用 知识共享署名4.0 国际许可协议进行许可。
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。