lnamp服务器的搭建笔记

1. nginx配置(nginx可以设置proxy_cache缓存模块来替代squid缓存)。

查看cpu个数,每个cpu的核数

cat /proc/cpuinfo

processor n  cpu个数

cpu family cpu核心数

wget工具,先切换到/tmp目录、、

安装的软件不在/usr/bin目录下,所以无法直接用命令,可以做个软连接

#假如软件的安装目录是/usr/local/bin/lrz

cd /usr/bin  #切换到命令目录下

ln -s /usr/local/bin/lrz rz  #建立软连接


nginx配置文件详解:


#启动进程,通常设置成和cpu的数量相等
worker_processes  1;

events {
    worker_connections  1024;  #单个worker_processes最大并发数
    #如果这个值超过1024就要出警告,此时要设置 worker_rlimit_nofile   xxxxx; 设置的worker_connections还是不能超过worker_rlimit_nofile的值,否则还会警告
}

# 计算该设置可承受的最大并发  worker_connections * worker_processes,如果是反向代理 worker_connections * worker_processes / 4


#gzip的设置

gzip  on;
    gzip_min_length 1k;
    gzip_buffers 4 16k;
    gzip_comp_level 2;
    gzip_types text/plain application/x-javascript text/css application/xml image/gif image/jpg image/jpeg image/png image/x-png image/pjpeg;
    gzip_vary on;



	#设置代理缓存模块儿的参数
	
	proxy_connect_timeout 600;
	proxy_read_timeout 600;
	proxy_send_timeout 600;
	proxy_buffer_size 16k;
	proxy_buffers 4 32k;
	proxy_busy_buffers_size 64k;
	proxy_temp_file_write_size 64k;
	proxy_temp_path temp_path;

#定义各个缓存空间,以便后面配置各个网站的时候用
	proxy_cache_path /disk1/nginx_cache/cache_path levels=2:2 keys_zone=cache_one:1000m inactive=1d max_size=10M;
proxy_cache_path /disk1/nginx_cache/cache_path levels=2:2 keys_zone=cache_static:1000m inactive=1d max_size=10M;

/*levels设置目录层次 
keys_zone设置缓存名字和共享内存大小 
inactive在指定时间内没人访问则被删除在这里是1天 
max_size最大缓存空间*/ 

负载均衡和proxy_cache的设置

upstream www_aaa_com {
#设置负载均衡的权重
        server 127.0.0.1:81 weight=6;
        server 10.28.7.66:81 weight=2;
}

server {
        listen       80;
        server_name  www.aaa.com; 

        location /
        {
	        //nginx直接访问的路径,这里存储静态页面,所以不让它通过apache,可以直接访问

                root /disk1/www/aaa/frontweb/front/Html;
                index index.html;
                if (!-f $request_filename) {
			            #如果静态页面不存在,就转到apache,生成相关静态页面
                         proxy_pass http://127.0.0.1:81;
                }
                proxy_set_header Host $host;
                proxy_set_header X-Forwarded-For $remote_addr;
                proxy_connect_timeout 300;
                proxy_read_timeout  300;
                proxy_send_timeout  300;

        }
	location ~ /deleteallpic(/.*) {   
           	proxy_cache_purge cache_static $host$1$is_args$args;  
        }  
        location ~ .*\.(jpeg|jpg|png|gif)?$ {
                expires 30d;
                proxy_cache cache_one;
                proxy_cache_valid 200 304 301 302 10d;
                proxy_cache_valid any 1d;
                proxy_cache_key $host$uri$is_args$args;
                proxy_set_header Host $host;
                proxy_set_header X-Forwarded-For $remote_addr;
                proxy_pass http://www_aaa_com; 
        }
         location ~ .*\.(js|css)?$ {
                expires 30d;
                proxy_cache cache_static;  //根keys_zone后的内容对应
                proxy_cache_valid 200 304 301 302 10d; //哪些状态缓存多长时间
                proxy_cache_valid any 1d; //其他的缓存多长时间
                proxy_cache_key $host$uri$is_args$args;  //通过key来hash,定义KEY的值  
                proxy_set_header Host $host;
                proxy_set_header X-Forwarded-For $remote_addr;
                proxy_pass http://www_aaa_com;
        } 
        access_log  logs/www.aaa.com.access_log.log;
        error_log  logs/www.aaa.com.error_log.log;
}

nginx upstream的几种配置方式

nginx 的upstream目前支持4种方式的分配

1、轮询(默认)

每个请求按时间顺序逐一分配到不同的后端服务器 ,如果后端服务器down掉,能自动剔除。

2、weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。  
例如:
    upstream bakend {
         server 192.168.0.14 weight=10;
         server 192.168.0.15 weight=10;
    }

2、ip_hash 
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session 的问题。
例如:
    upstream bakend {
         ip_hash;
         server 192.168.0.14:88;
         server 192.168.0.15:80;
    }

3、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstream backend {
    server server1;
    server server2;
    fair;
}

4、url_hash(第三方)

按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。

例:在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用的hash算法

upstream backend {
    server squid1:3128;
    server squid2:3128;
    hash   $request_uri;
    hash_method crc32;
}

注意:

upstream bakend{

     #定义负载均衡 设备的Ip及设备状态
     ip_hash;
    server 127.0.0.1:9090 down;
    server 127.0.0.1:8080 weight=2;
    server 127.0.0.1:6060;
    server 127.0.0.1:7070 backup;
}

每个设备的状态设置为:
1.down 表示单前的server暂时不参与负载
2.weight 默认为1.weight越大,负载的权重就越大。
3.max_fails :允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误
4.fail_timeout:max_fails次失败后,暂停的时间。
5.backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻

转载于:https://my.oschina.net/shyl/blog/711350

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值