nginx大道至简之反向代理

20 篇文章 0 订阅
本文详细介绍了如何配置Nginx作为反向代理和负载均衡器,以保护Web服务器并提高网站访问速度。配置包括设置worker_processes、proxy缓冲区大小、负载均衡策略等,并展示了域名conf中关于缓存管理和负载均衡的配置。通过示例,解释了如何通过清除缓存和请求特定路径来验证配置效果。
摘要由CSDN通过智能技术生成

  • 优点:
  1. 保护了真实的web服务器,web服务器对外不可见,外网只能看到反向代理服务器,而反向代理服务器上并没有真实数据,因此,保证了web服务器的资源安全。
  2. 反向代理为基础产生了动静资源分离以及负载均衡的方式,减轻web服务器的负担,加速了对网站访问速度
  3. 节约了有限的IP地址资源,企业内所有的网站共享一个在internet中注册的IP地址,这些服务器分配私有地址,采用虚拟主机的方式对外提供服务

nginx.conf 配置

#cpu核心
worker_processes 1;
#event
events {
    worker_connections 2048;
    multi_accept on;
    use epoll;
}
# proxy
proxy_connect_timeout 10;
proxy_read_timeout 180;
proxy_send_timeout 5;
proxy_buffer_size 16k;
proxy_buffers 4 16k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 96k;
proxy_cache_path /var/www/vhosts/xxxxx/www/assets levels=1:2 keys_zone=cache_ming:10m inactive=1d max_size=10g use_temp_path=off;
#负载均衡 单机测试
upstream ming {
    server 127.0.0.1:10089 weight=1;
}

域名conf配置

#负载均衡 + 反向代理
server {
    listen       80 ;
    server_name   xxx.com;
    #gzip
    gzip on;
    gzip_min_length 2k;
    gzip_buffers   4 32k;
    gzip_http_version 1.1;
    gzip_comp_level 2;
    gzip_types text/plain text/css text/javascript application/json application/x-javascript application/xml image/png image/jpeg;
    gzip_vary on;
    #utf8
    charset utf-8;
    #字体缓存代理
    location /font/ {
        proxy_pass  http://ming;
        proxy_redirect off;
        proxy_cache_revalidate on;
        proxy_cache_min_uses 1;
        proxy_set_header Host $host;
        proxy_cache cache_one;
        proxy_cache_valid 200 302 1h;
        proxy_cache_valid 301 304 1h;
        proxy_cache_valid any 1h;
        proxy_cache_use_stale error timeout http_500 http_502 http_503 http_504;
        proxy_cache_background_update on;
        proxy_cache_lock on;
        proxy_cache_key  $scheme$host$uri$args;  #设置缓存的key
        # proxy_cache_methods GET HEAD POST;  #允许缓存post请求
        proxy_cache_methods GET HEAD; 
        proxy_set_header  X-Real-IP $remote_addr;
        proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
        expires 1h; #选填
        add_header wall  "Hi, Guys. My name is Ming GeGe."; #查看缓存命中与否
        add_header X-Cache-Status $upstream_cache_status;  #查看缓存命中状态
    }
    #清除nginx缓存
    location ~ /purge(/.*) {
        allow 127.0.0.1;    #只允许本机访问
        deny all;   #拒绝外部访问
        proxy_cache_purge cache_one $scheme$host$uri$args;
    }
    #网站路径
    root /var/www/vhosts/xxxx.com/www;
    location / {
        try_files $uri $uri /index.php?$args;
    }
    #php
    location ~ .php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index /index.php;
        include /etc/nginx/fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_read_timeout 300;
    }
}
#源服务
server {
    listen       10089;
    server_name  127.0.0.1;
    #指向路径
    root   /var/www/vhosts/xxxx.com/www/assets;
}

效果:

  1. 请求:xxx.com/font/xxx
  2. 删除: font/下文件
  3. 请求:xxx.com/font/xxx,没变化表示缓存成功
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值