nginx 前端加速 proxy_cache, 能否将原网站使用的图床图片缓存,地址改成现在反向代理后网站地址。

2018-04-21 22:43:42 +08:00
 liuyinltemp
小白用户,反向代理一个网站 aaa.combbb.comaaa.com 为加密,bbb.com 升级到 https。
aaa.com 内容使用图床<img src="http://***.jpg",由于网络环境不好,移动宽带无法打开这些图片。因此使用前端加速 proxy_cache 希望把对应的图片文件缓存,并将对应的图片地址变成 bbb.com 下地址,不知道可不可以?谢谢大家!
3158 次点击
所在节点    NGINX
13 条回复
liuyinltemp
2018-04-21 22:48:58 +08:00
贴一下配置
user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
worker_connections 128;
multi_accept on;
use epoll;
}

http {

##
# Basic Settings
##

sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 60;
types_hash_max_size 2048;
# server_tokens off;

# server_names_hash_bucket_size 64;
# server_name_in_redirect off;

include /etc/nginx/mime.types;
default_type application/octet-stream;


##
# Logging Settings
##

access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;

proxy_connect_timeout 600;
proxy_read_timeout 600;
proxy_send_timeout 600;
proxy_buffer_size 64k;
proxy_buffers 4 64k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 128k;
proxy_temp_path /etc/nginx/cache/temp;
proxy_cache_path /etc/nginx/cache/path levels=1:2 keys_zone=cache_one:32m inactive=1d max_size=1g;

##
# Gzip Settings
##

gzip on;
gzip_disable "msie6";

gzip_vary on;
gzip_proxied any;
gzip_comp_level 5;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

##
# nginx-naxsi config
##
# Uncomment it if you installed nginx-naxsi
##

#include /etc/nginx/naxsi_core.rules;

##
# Virtual Host Configs
##

include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;

server {
listen 80;
server_name bbb.com;
return 301 https://$host$request_uri;
}

server {
listen 443 ssl;
server_name bbb.com;
ssl on;
ssl_certificate cert/shss.crt;
ssl_certificate_key cert/shss.key;
ssl_session_timeout 8m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256::!MD5;
ssl_prefer_server_ciphers on;
}

location / {
sub_filter aaa.com bbb.com;
proxy_pass http://aaa.com;
proxy_http_version 1.1;
proxy_redirect off;
proxy_cache_key "$scheme://$host$request_uri";
proxy_cache cache_one;
proxy_cache_valid 200 304 10m;
proxy_cache_valid 301 1h;
proxy_cache_valid any 10s;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Referer http://aaa.com;
proxy_set_header Host $proxy_host;
proxy_set_header Accept-Encoding "";
}

}

}
linearsky
2018-04-21 22:55:12 +08:00
xiaoz
2018-04-22 00:16:40 +08:00
subsfilter 模块了解下
Love4Taylor
2018-04-22 00:28:09 +08:00
subs_filter 批量替换吧

Loyalsoldier
2018-04-22 09:45:43 +08:00
@Love4Taylor #4

如果源站本身走 HTTPS 协议,怎么破?
liuyinltemp
2018-04-22 10:56:34 +08:00
图床<img src="http://***.jpg" ,这个图床的地址不是固定的,看发帖人选择,有通用的吗?
superhan
2018-04-22 19:52:17 +08:00
@Love4Taylor 这是啥软件
Love4Taylor
2018-04-22 19:56:39 +08:00
@superhan #7 JuiceSSH
@Loyalsoldier #5 反代不用太在意 原站协议...
Loyalsoldier
2018-04-22 19:59:24 +08:00
@Love4Taylor #8 subs_filter 好像是不支持 HTTPS 协议的啊
Love4Taylor
2018-04-22 20:05:27 +08:00
@Loyalsoldier #9 这俩没关系.... 倒是反代的时候关 gzip 倒是真的... 不然没法替换
liuyinltemp
2018-04-22 20:13:11 +08:00
关闭 gzip,问题怎么写代码?谢谢!小白,虽然学过计算机,现已转行。
Love4Taylor
2018-04-22 20:26:10 +08:00
你需要
1. aaa.com 的反代并且使用 subs_filter 的正则来替换你需要替换的 img 标签
2. 图床的反代

关 gzip 就是 proxy_set_header Accept-Encoding " ";
liuyinltemp
2018-04-23 16:56:42 +08:00
@Love4Taylor 图床不是固定的,看用户用那个?怎么处理。我想将<img src=对应的图片缓存下来变成现在网站的相对地址,然后替换,不知道可不可行?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/448782

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX