热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

lnamp服务器的搭建笔记

为什么80%的码农都做不了架构师?1.nginx配置(nginx可以设置proxy_cache缓存模块来替代squid缓存)。查看c

为什么80%的码农都做不了架构师?>>>   hot3.png

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

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

cat /proc/cpuinfoprocessor n cpu个数cpu family cpu核心数

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

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

#假如软件的安装目录是/usr/local/bin/lrzcd /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



推荐阅读
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 本文讨论了在Spring 3.1中,数据源未能自动连接到@Configuration类的错误原因,并提供了解决方法。作者发现了错误的原因,并在代码中手动定义了PersistenceAnnotationBeanPostProcessor。作者删除了该定义后,问题得到解决。此外,作者还指出了默认的PersistenceAnnotationBeanPostProcessor的注册方式,并提供了自定义该bean定义的方法。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
    本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ... [详细]
author-avatar
北京超凡传媒
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有