nginxのproxy_pass使用$ホスト変数

親族のSAAS会社は、電子ビジネスシステムをやっている、需要があり、顧客はOSSのドメインフォルダ内のドメインホストアリクラウドリソースによってアクセスする必要があります。
たとえば、ユーザアクセス
http://mall.shop.com/base.css、実際には、アクセス http://aliyun-oss.aliyuncs.com/mall.shop.com/base.css
HTTP://www.mall。 COM / banner.jpg、実際には、http://aliyun-oss.aliyuncs.com/www.mall.com/banner.jpgを訪問することです

upstream sh_aliyun {
        server aliyun-oss.aliyuncs.com:80 weight=10 max_fails=3 fail_timeout=10s;
}

server {
        listen 0.0.0.0:80;
        server_name _;
        location / {
             proxy_redirect off ;
             proxy_set_header Host  aliyun-oss.aliyuncs.com;   #填写OSS访问域名
             proxy_set_header X-Real-IP $remote_addr;
             proxy_set_header X-Real-Port $remote_port;
             proxy_set_header REMOTE-HOST $remote_addr;
             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
             client_max_body_size 50m;
             client_body_buffer_size 256k;
             proxy_connect_timeout 30;
             proxy_send_timeout 30;
             proxy_read_timeout 60;
             proxy_buffer_size 256k;
             proxy_buffers 4 256k;
             proxy_busy_buffers_size 256k;
             proxy_temp_file_write_size 256k;
             proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_404;
             proxy_max_temp_file_size 128m;
             proxy_pass http://sh_aliyun/$host$request_uri;     #这里填写变量$host,是访问的主机名,$request_uri完整的请求参数
        }
}

段ピット:
直接の使用は
proxy_pass http://aliyun-oss.aliyuncs.com/$host$request_uri、すべてが502要求した
proxy_pass http://106.14.228.198/$host$request_uriこれが可能です。

したがって、結論:
proxy_pass変数が存在する場合、唯一の上流で、ドメイン名の形態で使用することができません

おすすめ

転載: blog.51cto.com/fengwan/2416851