5分钟内构建用于ONTAP的FabricPool的Nginx代理的方法(包括示例的nginx.conf配置文件)

聊天

使用Nginx作为ONTAP透明代理时的安装和配置方法如下。
如果要在ONTAP中使用vserver http-proxy create显式地指定非透明的代理服务器,则无法使用此步骤。(非透明类型要求ONTAP通过http连接层发送CONNECT请求到代理服务器,但是按照以下步骤创建的Nginx没有安装处理CONNECT请求的模块,因此需要单独添加模块或者使用Squid等其他方法。)

目录

    1. FabricPool功能和优点

 

    1. 什么情况下需要使用代理?

 

    1. 代理安装位置的操作系统设置

 

    1. Nginx安装和配置

 

    相关信息

1. FabricPool的功能和优势

NetApp公司的ONTAP操作系统具有数据层次化功能(从ONTAP 9.2版本开始)。 它可以在本地磁盘上以4KB的块为单位判断数据是否为冷数据,然后将数据透明地移动到对象存储中,以减少本地存储的容量。

这个功能的详细细节将在“6.相关信息”的文章中提供,但是由于存储在本地环境的数据无法直接发送到对象存储,可能存在需要通过代理服务器来建立中间路径的情况。因此,在本文章中将提供有关如何构建代理服务器的方法。

关于为NetApp CBS(云备份服务)配置代理设置,将在另一篇文章中进行说明。

2. 什么情况下需要使用代理?

在写出需要代理的情况之前,我们先整理一下与对象存储的三种通信方法。

    1. 互联网连接

 

    1. (通过SSL/TLS对ONTAP和对象存储之间的加密)

 

    1. 互联网虚拟专用网

 

    1. (通过VPN对本地路由器和云之间的加密)

 

    1. 私有连接线路

 

    (如AWS Direct Connect、Azure Express Route、GCP Partner Interconnect等。不加密)

无论是第2种模式还是第3种模式,无论路径是否加密,ONTAP都会默认启用SSL/TLS与对象存储进行通信。

image.png

3. 配置Proxy在CentOS上的设置。

基于CentOS,我将总结一些要点。(根据需要可能会添加附注。)

    • /etc/resolv.confが正しく設定され、yumコマンドが使えること(インターネット側の名前解決)

 

    • データ階層化先のオブジェクトストレージの名前解決が意図したIPに解決できること

 

    • クラウド上のインスタンスは、オブジェクトストレージのプライベートエンドポイントを内部IPに名前解決できることが多いのですが、うまういかない場合には必要に応じてhostsを使って宛先IPを曲げることも検討。

 

    • SELinuxが正しく設定されていること。

 

    • (検証用途であればOFFにしてしまいましょう。)

 

    • # vi /etc/selinux/config

 

    • SELINUX=disabledに変更して、shutdown -r now

 

    • # getenforceで確認

 

    https://qiita.com/mattsun/items/470581ff34f87c7eb21d

4. Nginx的安装和设置。

(1)安装OpenSSL
假设以root权限执行。

安装新软件:yum install openssl openssl-libs
进行更新:yum clean all
yum update openssl openssl-libs
(2) 创建加密密钥和自签名证书

mkdir /etc/nginx
mkdir /etc/nging/ssl
openssl req -new -x509 -sha256 -newkey rsa:2048 -days 2190 -nodes -out /etc/nginx/ssl/nginx.pem -keyout /etc/nginx/ssl/nginx.key
(-daysは365日 x 6年=2190日で指定)
chown root:root -R /etc/nginx/ssl/ sudo chmod 600 /etc/nginx/ssl/* 
chmod 700 /etc/nginx/ssl

(3) 安装 yum-utils
执行命令 yum install yum-utils

在中文中重新表述如下:
(4) 创建Repo文件
使用vi编辑器打开/etc/yum.repos.d/nginx.repo文件。

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

(5)安装和配置自动启动 Nginx

yum install nginx
systemctl enable nginx
systemctl start nginx

(6)组成文件
访问/错误日志 /var/log/nginx/*
NGINX二进制文件 /usr/sbin/nginx
配置文件
/etc/nginx/nginx.conf
/etc/nginx/conf.d/default.conf

(7)修改nginx.conf文件
使用vi命令打开/etc/nginx/nginx.conf文件

server {
    listen       443 ssl;
    server_name  nginx;
    ssl_certificate /etc/nginx/ssl/nginx.pem;
    ssl_certificate_key /etc/nginx/ssl/nginx.key;

    keepalive_timeout    70;
    sendfile             on;
    client_max_body_size 30720M;
    client_body_buffer_size 5m;

    location / {
      proxy_pass  https://s3.endpoint.domain.com:443/;
      proxy_pass_header Server;
    }
}
    • listen 443 ssl; でNginxがTCPポート443でSSL/TLSをListen。

 

    • client_max_body_size でこのNginxが受け付けるデータの最大サイズを指定。

 

    • (FabricPoolの場合、4KBのブロックを1000個まとめて約4MBのオブジェクトにしてデータを階層化するため、少なくとも5M程度を指定する必要あり。これを行わないと、データがNginxで捨てられる。)

 

    •  Nginxマニュアル→ http://nginx.org/en/docs/http/ngx_http_core_module.html#client_max_body_size

 

    • client_body_buffer_size でNginxが扱うデータのメモリバッファを調整する。この値が少ないと急激なデータ送受信が発生した際にNginxサーバ内のディスクに一時的にデータを書き出すため、性能が遅くなる場合がある。メモリを多めに積んでいる場合は大きくすることを検討。

 

    •  Nginxマニュアル→ http://nginx.org/en/docs/http/ngx_http_core_module.html#client_max_body_size

 

    • proxy_passでFabricPoolの階層化先のオブジェクトストレージのFQDNとポート番号を指定。

 

    • proxy_pass_headerにServer;を指定することで、オブジェクトストレージがHTTPヘッダー内に付与するServer;ヘッダーをNginxはそのままONTAP OSにパスするようになる。これを付けないとServer;ヘッダーにNginxのバージョンなどが付与されることがあり、対向のオブジェクトストレージが何かONTAPが判断できなくなることがあるので、特にオブジェクトストレージにNetApp StorageGRIDなどを使っている場合には必須。

 

     Nginxマニュアル→ http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass_header

除了这个设置之外,可能也可以考虑使用worker_processes auto;等方式来确保Nginx正确地使用多核心。

完成设置后,请重新启动服务。
systemctl start nginx

由于在/var/log/nginx/目录下会生成访问日志,因此在进行ONTAP的FabricPool设置时,需要监控日志。
tail -f /var/log/nginx/access.log
tail -f /var/log/nginx/error.log

请提供参考信息

以下是两个有关nginx的链接:

1. http://nginx.org/en/linux_packages.html
2. http://vdeep.net/nginx-oreore-ssl

5. 相关信息

    関連情報

“在进一步补充说明中,只说明了代理的设置方式,但将通过代理传输到FabricPool的配置将另行说明。”

    FabricPoolの関連技術情報
广告
将在 10 秒后关闭
bannerAds