请选择 进入手机版 | 继续访问电脑版
查看: 625|回复: 0

nginx反向代理(适用于隐藏主服务器)

[复制链接]

28

主题

29

帖子

172

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
172
发表于 2019-8-29 01:20:36 | 显示全部楼层 |阅读模式
网站www.a.com是放在国外的,想让这个站的图片用国内的服务器(img.b.com),如果单纯用NGINX的反向代理功能,用户每次访问这个站的时候,缓存服务器(img.b.com)就会每次都去国外的站点上取出图片,这样反而会让图片打开的速度很慢,所以后来完善NGINX的反向代理,把访问过的图片都保存到缓存服务器上,这样第一次会比较慢,但以后用户访问图片的时候,都是从国内服务器上调用的,而不会再去国外服务器上了。在缓存服务器上具体NGINX的配置如下:
  1. server {
  2.         include /usr/local/nginx/conf/port.conf;
  3.         server_name  img.b.com;

  4.         root   /www/img.b.com;

  5.         location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
  6.         {
  7.         expires       7d;
  8.         root /data/www/img.b.com;
  9.         proxy_store on;
  10.         proxy_store_access user:rw group:rw all:r;
  11.         proxy_temp_path /www/img.b.com;
  12.         proxy_redirect          off;
  13.         proxy_set_header        X-Real-IP $remote_addr;
  14.         proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
  15.         client_max_body_size    10m;
  16.         client_body_buffer_size 1280k;
  17.         proxy_connect_timeout   900;
  18.         proxy_send_timeout      900;
  19.         proxy_read_timeout      900;
  20.         proxy_buffer_size       40k;
  21.         proxy_buffers           40 320k;
  22.         proxy_busy_buffers_size 640k;
  23.         proxy_temp_file_write_size 640k;
  24.         if (!-e $request_filename)
  25.                 {
  26.                 proxy_pass  http://img.a.com; #后端服务器ip地址或域名
  27.                 }
  28.         }

  29.         error_page   500 502 503 504  /50x.html;
  30.         location = /50x.html {
  31.             root   html;
  32.         }

  33.     log_format  img.411c.comlog  '$remote_addr – $remote_user [$time_local] "$request" '
  34.               '$status $body_bytes_sent "$http_referer" '
  35.               '"$http_user_agent" $http_x_forwarded_for';
  36.     access_log  logs/img.411c.com.log  img.411c.comlog;
  37.     }
复制代码
设置完了,保存img.b.com.conf文件,并重启NGINX,这样,img.b.com就会在用户第一次访问www.a.com网站图片的时候自动去[url]www.a.com[/url]的服务器上去抓去图片并保存到缓存服务器上了。
另外在宝塔bt.cn 的nginx中就直接有反向代理,可以根以上代码对比做图片缓存。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站长统计
快速回复 返回顶部 返回列表