首页 文章 精选 留言 我的

精选列表

搜索[单体架构],共10000篇文章
优秀的个人博客,低调大师

LNMP架构(架构介绍,mysql安装,php安装,nginx介绍)

一、LNMP建构介绍 和LAMP不同的是,提供web服务的是Nginx 并且php是作为一个独立服务存在的,这个服务叫做php-fpm Nginx直接处理静态文件请求,动态请求会转发给php-fpm apache和nginx的区别;https://www.cnblogs.com/huangye-dream/p/3550328.html nginx相对于apache的优点: 轻量级,同样起web 服务,比apache 占用更少的内存及资源抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能高度模块化的设计,编写模块相对简单社区活跃,各种高性能模块出品迅速啊 apache 相对于nginx 的优点:rewrite ,比nginx 的rewrite 强大模块超多,基本想到的都可以找到少bug ,nginx 的bug 相对较多 异步和同步: 同步:你打电话问书店老板有没有《分布式系统》这本书,如果是同步通信机制,书店老板会说,你稍等,”我查一下",然后开始查啊查,等查好了(可能是5秒,也可能是一天)告诉你结果(返回结果)。 异步:书店老板直接告诉你我查一下啊,查好了打电话给你,然后直接挂电话了(不返回结果)。然后查好了,他会主动打电话给你。在这里老板通过“回电”这种方式来回调。 阻塞和非阻塞: 你打电话问书店老板有没有《分布式系统》这本书,你如果是阻塞式调用,你会一直把自己“挂起”,直到得到这本书有没有的结果,如果是非阻塞式调用,你不管老板有没有告诉你,你自己先一边去玩了, 当然你也要偶尔过几分钟check一下老板有没有返回结果。 在这里阻塞与非阻塞与是否同步异步无关。跟老板通过什么方式回答你结果无关。 二、mysql的安装 [root@lnmp mysql]# cd /usr/local/src/ [root@lnmp mysql]# wgethttp://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz [root@lnmp mysql]# tar zxvf mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz (解压mysql tar包) [root@lnmp mysql]# mv mysql-5.6.36-linux-glibc2.5-x86_64 /usr/local/mysql (移动解压包并改名) [root@lnmp mysql]# mkdir /data (创建储存的/data目录) [root@lnmp mysql]# useradd mysql (创建mysql用户) [root@lnmp mysql]# vim /etc/my.cnf (修改/etc/my.cnf文件) datadir=/data/mysql socket=/tmp/mysql.sock [root@lnmp mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql (初始化MySQL,并且指定用户和数据库目录,第一次安装时会报错,安装下面2个包就好) [root@lnmp mysql]# yum install autoconf -y [root@lnmp mysql]# yum install -y libaio [root@lnmp mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql [root@lnmp mysql]# cp support-files/mysql.server /etc/init.d/mysqld (复制启动脚本) [root@lnmp mysql]# vim /etc/init.d/mysqld (修改启动脚本里的basedir和datadir) 46 basedir=/usr/local/mysql 47 datadir=/data/mysql [root@lnmp mysql]# /etc/init.d/mysqld start (启动mysql) [root@lnmp mysql]# chkconfig --add mysqld (添加mysql到服务列表) [root@lnmp mysql]# chkconfig mysqld on (设置MySQL开机启动) 添加到服务列表后,就可以使用以下命令: [root@lnmp mysql]# service mysqld stop (启动MySQL) Shutting down MySQL.. SUCCESS! [root@lnmp mysql]# service mysqld start (关闭MySQL) Starting MySQL. SUCCESS! 三、PHP安装 [root@lnmp ~]#cd /usr/local/src (把源码包下载到指定目录) [root@lnmp ~]#wgethttp://cn2.php.net/distributions/php-5.6.30.tar.gz [root@lnmp ~]#tar zxf php-5.6.30.tar.gz [root@lnmp ~]# useradd -s /sbin/nologin php-fpm (添加php-fpm用户,-s指定不能登录) [root@lnmp ~]# cd php-5.6.30 [root@lnmp ~]# ./configure --prefix=/usr/local/php-fpm --with-config-file-path=/usr/local/php-fpm/etc --enable-fpm --with-fpm-user=php-fpm --with-fpm-group=php-fpm --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql=/usr/local/mysql --with-mysql-sock=/tmp/mysql.sock --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-ftp --enable-mbstring --enable-exif --with-pear --with-curl --with-openssl (编译php包,过程中可能有需要安装的包,导致的错误) [root@lnmp ~]# make && make install [root@lnmp ~]# cp php.ini-production /usr/local/php-fpm/etc/php.ini (复制目录并改名字) [root@lnmp ~]# vi /usr/local/php/etc/php-fpm.conf (修改php配置文件,以下内容) [global] 定义全局参数 pid = /usr/local/php-fpm/var/run/php-fpm.pid error_log = /usr/local/php-fpm/var/log/php-fpm.log [www] 一个模块的名字 listen = /tmp/php-fcgi.sock 监听的地址 listen.mode = 666 定义sock文件的权限 user = php-fpm 用户 group = php-fpm 用户组 pm = dynamic pm.max_children = 50 pm.start_servers = 20 pm.min_spare_servers = 5 pm.max_spare_servers = 35 pm.max_requests = 500 rlimit_files = 1024 [root@lnmp ~]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm (复制启动脚本到以下位置) [root@lnmp ~]# chmod 755 /etc/init.d/php-fpm [root@lnmp ~]# chkconfig --add php-fpm (添加php到服务) [root@lnmp ~]# chkconfig php-fpm on (设置开机启动php服务) [root@lnmp ~]# service php-fpm start (启动php服务) 四、nginx的介绍 •Nginx官网 nginx.org,最新版1.13,最新稳定版1.12 •Nginx应用场景:web服务、反向代理、负载均衡 •Nginx著名分支,淘宝基于Nginx开发的Tengine,使用上和Nginx一致,服务名,配置文件名都一样,和Nginx的最大区别在于Tenging增加了一些定制化模块,在安全限速方面表现突出,另外它支持对js,css合并 •Nginx核心+lua相关的组件和模块组成了一个支持lua的高性能web容器openresty 参考http://jinnianshilongnian.iteye.com/blog/2280928 本文转自 小新锐 51CTO博客,原文链接:http://blog.51cto.com/13407306/2056617,如需转载请自行联系原作者

优秀的个人博客,低调大师

MCollective架构篇2-MCollective+MQ架构的部署

零基础学习Puppet自动化配置管理系列文档 1 Mcollective介绍 MCollective 是一个构建服务器编排(Server Orchestration)和并行工作执行系统的框架。 首先,MCollective 是一种针对服务器集群进行可编程控制的系统管理解决方案。在这一点上,它的功能类似:Func,Fabric 和 Capistrano。 其次,MCollective 的设计打破基于中心存储式系统和像 SSH 这样的工具,不再仅仅痴迷于 SSH 的 For 循环。它使用发布订阅中间件(Publish Subscribe Middleware)这样的现代化 工具和通过目标数据(meta data)而不是主机名(hostnames)来实时发现网络资源这样的现代化理念。提供了一个可扩展的而且迅速的并行执行环境。 MCollective 工具为命令行界面,但它可与数千个应用实例进行通信,而且传输速度惊人。无论部署的实例位于什么位置,通信都能以线速进行传输,使用的是一个类似多路传送 的推送信息系统。MCollective 工具没有可视化用户界面,用户只能通过检索来获取需要应用的实例。Puppet Dashboard 提供有这部分功能。 2 安装和配置RabbitMQ 2.1 安装和配置RabbitMQ 2.1.1 安装RabbitMQ [root@puppetserverrpms]#yuminstallerlang#RabbitMQ依赖erlang语言,需要安装大概65个左右的erlang依赖包 [root@puppetserverrpms]#yuminstallrabbitmq-server [root@puppetserverrpms]#ll/usr/lib/rabbitmq/lib/rabbitmq_server-3.1.5/plugins/#默认已经安装了stomp插件,老版本需要下载安装 -rw-r--r--1rootroot242999Aug2417:42amqp_client-3.1.5.ez -rw-r--r--1rootroot85847Aug2417:42rabbitmq_stomp-3.1.5.ez … 2.1.2 启动rabbitmq-server [root@puppetserverrpms]#/etc/rc.d/init.d/rabbitmq-serverstart#启动rabbitmq服务 Startingrabbitmq-server:SUCCESS rabbitmq-server. [root@puppetserverrpms]#/etc/rc.d/init.d/rabbitmq-serverstatus#查看rabbitmq状态 Statusofnoderabbit@puppetserver... [{pid,43198}, {running_applications,[{rabbit,"RabbitMQ","3.1.5"}, {mnesia,"MNESIACXC13812","4.5"}, {os_mon,"CPOCXC13846","2.2.7"}, {xmerl,"XMLparser","1.2.10"}, {sasl,"SASLCXC13811","2.1.10"}, {stdlib,"ERTSCXC13810","1.17.5"}, {kernel,"ERTSCXC13810","2.14.5"}]}, {os,{unix,linux}}, {erlang_version,"ErlangR14B04(erts-5.8.5)[source][64-bit][rq:1][async-threads:30][kernel-poll:true]\n"}, {memory,[{total,27101856}, {connection_procs,2648}, {queue_procs,5296}, {plugins,0}, {other_proc,9182320}, {mnesia,57456}, {mgmt_db,0}, {msg_index,21848}, {other_ets,765504}, {binary,3296}, {code,14419185}, {atom,1354457}, {other_system,1289846}]}, {vm_memory_high_watermark,0.4}, {vm_memory_limit,838362726}, {disk_free_limit,1000000000}, {disk_free,15992676352}, {file_descriptors,[{total_limit,924}, {total_used,3}, {sockets_limit,829}, {sockets_used,1}]}, {processes,[{limit,1048576},{used,122}]}, {run_queue,0}, {uptime,4}] ...done. [root@puppetserverrpms]#netstat-nlp|grepbeam#默认监听端口为5672 tcp000.0.0.0:444220.0.0.0:*LISTEN43198/beam tcp00:::5672:::*LISTEN43198/beam 2.1.3 配置RabbitMQ 2.1.3.1 加载amqp_client和rabbit_stomp插件 [root@puppetserversbin]#ln-s/usr/lib/rabbitmq/lib/rabbitmq_server-3.1.5/sbin/rabbitmq-plugins/usr/sbin/rabbitmq-plugins#创建命令rabbitmq-plugins的软连接 [root@puppetserversbin]#ln-s/usr/lib/rabbitmq/lib/rabbitmq_server-3.1.5/sbin/rabbitmq-env/usr/sbin/rabbitmq-env#创建命令rabbitmq-env的软连接 [root@puppetserversbin]#rabbitmq-pluginsenablerabbitmq_stomp#开启rabbitmq_stomp插件 Thefollowingpluginshavebeenenabled: amqp_client rabbitmq_stomp Pluginconfigurationhaschanged.RestartRabbitMQforchangestotakeeffect. [root@puppetserversbin]#/etc/rc.d/init.d/rabbitmq-serverrestart Restartingrabbitmq-server:SUCCESS rabbitmq-server. [root@puppetserverrabbitmq]#tailf/var/log/rabbitmq/rabbit\@puppetserver.log#可以从日志看到stomp插件加载成功 =INFOREPORT====3-Oct-2013::20:25:18=== startedSTOMPTCPListeneron[::]:61613 =INFOREPORT====3-Oct-2013::20:25:18=== Serverstartupcomplete;2pluginsstarted. *amqp_client *rabbitmq_stomp 2.1.3.2 创建rabbitmq.config配置文件,修改监听端口为61613 [root@puppetserver rpms]# vim /etc/rabbitmq/rabbitmq.config [ {stomp,[{tcp_listeners,[61613]}]}#设置connector为stomp,监听端口为61613 ]. [root@puppetserver rpms]# /etc/rc.d/init.d/rabbitmq-server restart Restarting rabbitmq-server: SUCCESS rabbitmq-server. [root@puppetserver rpms]# netstat -nlp | grep beam #默认监听端口为61613 tcp 0 0 0.0.0.0:56532 0.0.0.0: LISTEN 1906/beam.smp tcp 0 0 :::61613 ::: LISTEN 1906/beam.smp tcp 0 0 :::5672 :::* LISTEN 1906/beam.smp 2.1.3.3 删除默认账户guest,为MCollective创建账户“mcollective”并设置密码为“secret”,然后设置权限。 [root@puppetserverrpms]#rabbitmqctldelete_userguest Deletinguser"guest"... ...done. [root@puppetserverrpms]#rabbitmqctladd_usermcollectivesecret Creatinguser"mcollective"... ...done. [root@puppetserverrpms]#rabbitmqctlset_permissions-p"/"mcollective".*"".*"".*" Settingpermissionsforuser"mcollective"invhost"/"... ...done. [root@puppetserversbin]#rabbitmqctllist_users#查看监听用户 Listingusers... mcollective[] ...done. 备注:RabbitMQ拥有一个默认的guest账户,它默认对消息队列拥有全部权限。出于安全方面的考虑,建议删除这个账户。 更多详细配置信息请参考http://www.rabbitmq.com/admin-guide.html 更多详细配置信息请参考:http://docs.puppetlabs.com/mcollective/reference/plugins/connector_rabbitmq.html 3 安装和配置MCollective 3.1 安装MCollective 3.1.1 测试端安装MCollective客户端 [root@puppetserverrpms]#yuminstallmcollective-commonmcollective-client#依赖包rubygem-stomp 3.1.2 节点安装MCollective服务端 [root@agent1~]#yuminstallmcollectivemcollective-common#依赖rubygem-stomp、rubygems和ruby相关包 3.2 配置MCollective 3.2.1 测试端配置MCollective客户端 [root@puppetserverrpms]#vim/etc/mcollective/client.cfg topicprefix=/topic/ main_collective=mcollective collectives=mcollective libdir=/usr/libexec/mcollective logger_type=console loglevel=warn #Plugins securityprovider=psk plugin.psk=a36cd839414370e10fd281b8a38a4f48#MCollective通信共享密钥,和MCollective服务端保持一致 connector=stomp#通信协议 plugin.stomp.host=192.168.100.110#Middleware地址 plugin.stomp.port=61613#Middleware监听端口 plugin.stomp.user=mcollective#Middleware通信账号 plugin.stomp.password=secret#Middleware通信密码 #Facts factsource=yaml plugin.yaml=/etc/mcollective/facts.yaml 3.2.2 节点配置MCollective服务端 [root@agent1rpms]#vim/etc/mcollective/server.cfg topicprefix=/topic/ main_collective=mcollective collectives=mcollective libdir=/usr/libexec/mcollective#存放plugins的位置 logfile=/var/log/mcollective.log loglevel=info daemonize=1 #Plugins securityprovider=psk plugin.psk=a36cd839414370e10fd281b8a38a4f48#MCollective通信共享密钥,和MCollective客户端保持一致 connector=stomp#通信协议 plugin.stomp.host=192.168.100.110#Middleware地址 plugin.stomp.port=61613#Middleware监听端口 plugin.stomp.user=mcollective#Middleware通信账号 plugin.stomp.password=secret#Middleware通信密码 #Facts factsource=yaml plugin.yaml=/etc/mcollective/facts.yaml [root@agent1~]#/etc/rc.d/init.d/mcollectivestart Startingmcollective:[OK] [root@agent1~]#chkconfigmcollectiveon [root@agent1~]# 3.3 测试Mcollective与Middleware通信 [root@puppetserverrpms]#mcoping#检查所有存活的节点 agent2.kisspuppet.comtime=119.98ms agent1.kisspuppet.comtime=159.31ms ----pingstatistics---- 2repliesmax:159.31min:119.98avg:139.64 [root@puppetserverrpms]#mcofind agent1.kisspuppet.com agent2.kisspuppet.com 本文转自凌激冰51CTO博客,原文链接:http://blog.51cto.com/dreamfire/1566372,如需转载请自行联系原作者

优秀的个人博客,低调大师

基于大数据的舆情分析系统架构 - 架构篇

前言 互联网的飞速发展促进了很多新媒体的发展,不论是知名的大V,明星还是围观群众都可以通过手机在微博,朋友圈或者点评网站上发表状态,分享自己的所见所想,使得“人人都有了麦克风”。不论是热点新闻还是娱乐八卦,传播速度远超我们的想象。可以在短短数分钟内,有数万计转发,数百万的阅读。如此海量的信息可以得到爆炸式的传播,如何能够实时的把握民情并作出对应的处理对很多企业来说都是至关重要的。大数据时代,除了媒体信息以外,商品在各类电商平台的订单量,用户的购买评论也都对后续的消费者产生很大的影响。商家的产品设计者需要汇总统计和分析各类平台的数据做为依据,决定后续的产品发展,公司的公关和市场部门也需要根据舆情作出相应的及时处理,而这一切也意味着传统的舆情系统升级成为大数据舆情采集和分析系统。分析完舆情场景后,我们再来具体细化看下大数据舆情系统,对我

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册