搭建Nginx网站服务器
Nginx (engine x)专为性能优化而开发,其特点是占有内存少,它的稳定性和低系统资源消耗,以及对并发连接的高处理能力,(单台物理服务器可支持5000个并发请求)。事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。同时也提供了IMAP/POP3/SMTP服务。
Nginx的优点:
下图是Nginx、Apache、lighttpd的性能对比:
已上说了那么多都是为了凸显Nginx性能的强大,那么如何基于centos 7搭建Nginx网站服务器(包含虚拟web主机的配置),下面我们继续来讲解Nginx的配置以及在虚拟机上的应用:
- centos 7服务器一台;
- centos 7系统盘一个;
也可以从官网网站 http://www.nginx.org/ 下载.三、开始搭建Nginx网站(挂载系统盘,安装所需的依赖包。):
1、安装所需依赖包,均由系统盘提供:
2、编译安装及配置优化Nginx
以上的优化是基于全局配置实施的,各项优化的含义如下:
- worker_processes :表示工作进程的数量,若服务器由多块CPU或者使用多核处理器,可以参考CPU核心总数来指定工作进程数。具体含义在worker_connections配置项中体现出来,
- worker_connections:这个配置项指定的是每个进程处理的连接,一般在10000以下(默认为1024),与上面工作进程数量的配置项关联,举个栗子:若工作进程数为8,每个进程处理4096个连接,则允许Nginx正常提供服务的连接数已经超过了3万个(4096*8=32768)。当然,具体还要看服务器硬件、网络带宽等物理条件的性能表现。
3、搭建基于域名的虚拟web主机:
1、HTTP配置:
Nginx的配置文件使用“http { }”界定标记用于设定HTTP服务器,包括访问日志、http端口、网页目录、默认字符集、连接保持,以及虚拟web主机、php解析等网站全局设置,其中大部分包含在子界定标记 “ server { }”内。“ server { }”代表一个具体的网站设置。
以上配置只是搭建了一个网站服务,若想运行多个,可复制配置文件最后面提供的模板,粘贴到 “server{ } ”配置上面,因为在配置文件中有太多的 “ { }”,为了避免错误,所以才需复制到原有的 “server{ } ”之上,如下:
至此,虚拟主机搭建已经完成,需重启服务,以服务生效,来验证web服务器的正常运行(DNS需自行设置)四、访问状态统计虚拟主机应用
客户机验证:①访问www.test1.com 的首页:
②访问www.test1.com 的状态统计页:
上述含义如下:
Active connections表示当前的活动连接数为2;server accepts handled requests表示已处理的连接信息,三个数字分别表示已处理连接数3个,成功的握手次数为3个,已处理的请求为6个。①访问www.test2.com 的首页:
②访问www.test2.com 的状态统计页:
已上就是访问状态统计与虚拟主机的应用,感谢阅读。
原文转载于:https://blog.51cto.com/14223370/2445860
分享安装NextCloud私有云盘
1、简介
Nextcloud是一款开源免费的私有云存储网盘项目,可以让你快速便捷地搭建一套属于自己或团队的云同步网盘,从而实现跨平台跨设备文件同步、共享、版本控制、团队协作等功能。它的客户端覆盖了Windows、Mac、Android、iOS、Linux 等各种平台,也提供了网页端以及 WebDAV接口,所以你几乎可以在各种设备上方便地访问你的云盘。
Nextcloud也提供了许多应用安装,包括但不限于Markdown在线编辑、OnlyOffice(需另外部署服务端)、思维导图、日历等,你可以自行选择以丰富个人网盘的功能。
Nextcloud的服务端部署方式有很多种,本文采用基于LNMP环境源码安装。
2、Nextcloud部署
#本文采用的LNMP环境可参考我另一篇文章部署(LNMP环境部署)
1)下载Nextcloud安装包
[root@localhost ~]# wget https://download.nextcloud.com/server/releases/nextcloud-18.0.1.tar.bz2
2)解压Nextcloud安装包
[root@localhost ~]# tar xf nextcloud-18.0.1.tar.bz2
3)拷贝Nextcloud到发布目录
[root@localhost ~]# mv nextcloud /usr/local/nginx/html
4)编辑Nginx.conf配置文件
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
#配置内容如下
5)编辑Nginx.conf配置文件
[root@localhost ~]# mkdir /usr/local/nginx/conf/domains
[root@localhost ~]# vim /usr/local/nginx/conf/domains/nextcloud.conf
6)重启Nginx服务
[root@localhost ~]# /usr/local/nginx/sbin/nginx -t
[root@localhost ~]# /usr/local/nginx/sbin/nginx -s reload
7)创建Nextcloud数据库
[root@localhost ~]# mysql
mysql> create database nextcloud charset=utf8;
mysql> show grant on nextcloud.* to nextcloud@’localhost’ identified by‘123456’;
mysql> flush privileges;
8)创建NextCloud 数据存储目录、并为其设置权限
[root@localhost ~]# mkdir -p /usr/local/nginx/html/nextcloud/data
[root@localhost ~]# chown -R www.www /usr/local/nginx/html/nextcloud
9)确认所有服务都已全部启动
[root@localhost ~]# netstat -lntup
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program nam
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 679/php-fpm: master
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 32182/mysqld
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 16792/nginx: worker
1)初始化 NextCloud
提示:在浏览器中、输入服务器IP(192.168.0.117)即可出现如下界面
2)按照提示输入相关信息
点击安装完成即可
3)安装完成后,会出现以下界面
至此,NextCloud私有网盘部署成功。
这款APP让你的手机瞬间变身服务器,php+mysql,太硬核了!
话不多说,开搞。
舞剑前面介绍了两款 Web 前端编辑神器,一款是 HopWeb, 适合新手开发小型项目,一款是 EasyWeb,适合进阶开发大型项目。
不管是小型项目还是大型项目,最终目的都是为了上线,这两款 APP 说到底都是用来编写代码的,虽然也可以用自器来预览,但功能侧重不同,导致整体效果不佳。
专业的工作,交给专业的工具才安心。
ksweb,一款专业的开源服务器APP。
内置了 lighttpd+nginx+apache+php+sql 等等功能,可以让你的手机瞬间变成服务器,兼容多数主流PHP程序。
它有什么优势?
一键安装,迅速快捷,无需各种操作,充分利用闲置资源,完全适合各种折腾控,兼容主流PHP程序,可以作为直接或间接的生产环境。
它可以干什么?
如果你是新手,
如果你没有经验,
如果你只想在本地测试一些程序,
如果你不想在电脑上装上各种虚拟机或者服务器文件,
如果你手上有闲置的安卓手机,
如果你想体验国内免备案飞一般的速度……
有了它,我们可以最大化的利用闲置资源,有了它,我们可以各种免费的折腾,有了它,你可以把所有的外链都放到手机里,这样既不会担心某一天外链挂掉,也可以让外链的音乐,视频,图片完全瞬间打开,没有任何流量限制。
1. Lighttpd+Nginx+Apache服务器
Ksweb 支持三大主流服务器,尤其是 Nginx和Apache ,可以说是 PHP 必备服务器。
另外,Lighttpd 则更加轻便,更适合手机食用。
2. Mysql
学习网站开发,怎么能少得了数据库?
更新、删除、插入、读取……,庞大的数据频繁变动如果没有数据库来支持,恐怕早已乱成一锅粥了。
Ksweb 内置了 Mysql,这个全世界最流行的关系型数据库管理系统。
有了它,直接本地就能链接数据库。
3. phpMyAdmin + adminer
光有 Mysql 数据库,用黑乎乎的窗口徒手撸代码也不行,这对新手来说简直是噩梦。
Ksweb 很贴心的加入了两款 Web 数据库管理工具,phpMyAdmin 和 Adminer。
有了它们,就不用面对难用的黑窗口,直接打开浏览器:
创建数据库,确定!
插入数据,确定!
删除数据,确定!
……
简单到如同操作 Windows xp 系统,直观,一目了然。
嗯,我个人比较喜欢 phpMyAdmin,虽然比起 Adminer 有些笨重,但可更加直观方便。
4. PHP
Ksweb 内置了 php,而且最高支持 php7.3.3。
当然,它也可以安装低版本的 PHP。
另外,KsWeb 还有 FTP、计划任务等功能,因为我用的不多,就不多说了,可以自行摸索。
使用方法
↓
只需要将源码放入手机内存 /sdcard/htdocs 目录下即可。
KsWeb 是俄罗斯战斗民族开发的APP,正版只有五天的试用期,五天一过就不能用了。
舞剑这里有高级解锁版,想要的小伙伴可以按下方姿势获取。
① 关注:手机编程
② 私信:0011或者ksweb
③ 自动回复下载链接
27.app后端搭建聊天服务器的经历
现在,聊天功能已经成了社交app的标配了。但是,众多web开发出生的程序员对聊天相关的服务的不了解,带来了很多开发上的困扰。在这篇文章中,根据下面3个方面,谈谈聊天服务。
1. 聊天服务的技术选型
2. 开发社交app过程中,实现聊天服务踩过的坑
3. 那些著名app的聊天服务
1. 聊天服务的技术选型
需要开发聊天服务,首先要选择用到的协议,现在,常用的聊天协议有:
(1)xmpp,一个基于xml的消息协议,被广泛应用于Gtalk, Facebook,但缺点也很明显,由于基于xml,会产生大流量。
(2)mqtt,IBM开发的即时通讯协议,一个简单的消息协议,需要自己实现加好友,群聊等IM常见的功能
(3)类ActivitySync,微信实现的协议,省流量,性能高,但由于是私有协议,IM的所有功能都需要自己实现。
Xmpp协议作为一个被广泛使用的消息协议,有大量的网络资料和成熟开源模块,例如在android和ios上,就很方便集成xmpp协议。IM作为一个复杂的系统,有方方面面需要考虑,使用成熟的协议,能帮助我们避免很多问题,提高了开发效率。
同时,xmpp协议的缺点也很明显,基于xml,造成了费流量。
不信,你瞧:
<iq id=\”rosterset1\” type=\”set\”>
<query xmlns=\”jabber:iq:roster\”>
<item jid=\”user@jabbercn.org\” name=\”user\”/>
</query>
</iq>
<presence from=\”contact@rooyee.biz\” to=\”user@jabbercn.org\” type=\”subscribe\”/>
上面是xmpp协议添加好友的内容,看到了吗?这么简单的一个功能,用了多少字节!!!
综合上面所述,对于创业型的公司来说,如果需要在最短时间内实现聊天功能,除了使用环信,融云等第三方IM服务外,最好是选择xmpp协议。
现在主流的实现了xmpp的两个开源项目:
(1)Ejobberd,用erlang语言开发,成熟稳定,集群支持,支持多进程高并发。但由于它是基于小众的erlang,也造成了很高的开发成本,例如,想招个熟悉erlang同时也熟悉聊天服务的人,很难。
(2)openfire, 用java开发,成熟稳定,插件多,但是对内存要求高,并发低,集群支持差,单机的并发就十多万。
在创业公司里,我的建议是使用openfire,毕竟熟悉java的开发人员还是挺多的,而且在初期,也不会有太高的并发,等有钱有人后,再对聊天系统改造。
虽然,作为一名有理想有道德有职业尊严的后端工程师,想把聊天系统做好,但理想是美好的,现实是残酷的。创业初期的环境,决定了没法打造完善的系统,但最起码,使用openfire能先把聊天功能做出来。
2. 开发社交app过程中,实现聊天服务踩过的坑
在做第一个社交app中,使用openfire除了常规的聊天外,还需要实现两个功能:
(1)未读消息数
(2)保存聊天记录
由于当时不具备对openfire进行二次开发的能力(或者说是因为心存恐惧),采用了一个现在看起来无比傻的方案:
接收消息,App端是直接连接openfire服务器;发送消息,用php封装了相关发送消息的api,app端通过调用api来发送消息,在api层来处理”未读消息数”和”保存聊天记录”。
实现”未读消息数”的方法:每次app打开或退出前,调用一个api标识该app是否在线并在redis中记录下来,在调用 发送消息的api时,通过检测一个消息,判断是否未读消息(发送离线的消息就是未读消息)
实现” 保存聊天记录”的方法:在调用 发送消息的api时,把发送的消息异步保存到数据库。
实现了上面两个技术方案,体会到为了解决一个问题引引入了无数的新问题是啥情况了。”未读消息数”功能简直是恶梦,数字根本不准,特别是遇上了app闪退,断网的情况下。这个功能必须要在openfire内部去实现,聊天服务器都有记录相关的用户在线状态的。
在做第二个社交app时,需要实现“发送给ios的离线消息,用apns推送”这个功能。我吸取了第一个社交app的教训,采用了开发openfire插件的方法,把所有发送给ios的离线消息在openfire内部截获下来,并用队列传送到apns系统中,愉快地解决了这个问题。最后,把这个插件开源,放到了我的github中(github.com/newjueqi/sendOfflineMsg)
3.那些著名app的聊天服务
Whatsapp:
初期使用开源Ejabberd服务器,使用Erlang实现。接下来的许多年一直从事Ejabberd的重写和修改,包括从XMPP转换到内部开发协议、调整代码库以及重设计一些核心组件,对Erlang VM做了大量的修改以获得高性能。
陌陌:
最初的一年是使用了xmpp,一年后改为私有的协议。
环信:
对xmpp协议进行了改造:
(1)登录握手的改进
(2)心跳的改进
(3)文件传输
(4)在线状态的改造
(5)把聊天室协议改为适合移动互联网的群聊
陌生人社交应用Whisper中文版“耳语”:
据小道消息,把xmpp协议中的xml改为json。
———————————————–
本文是原创文章,作者:曾健生,公众号ID:appbackend。如果您转载本文,请附上以上信息,尊重原创。
在后台回复”目录”或者按菜单栏中的”目录”,可查看发布过的所有文章。
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。