搭建Nginx网站服务器

Nginx (engine x)专为性能优化而开发,其特点是占有内存少,它的稳定性和低系统资源消耗,以及对并发连接的高处理能力,(单台物理服务器可支持5000个并发请求)。事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。同时也提供了IMAP/POP3/SMTP服务。

Nginx的优点:

下图是Nginx、Apache、lighttpd的性能对比:

已上说了那么多都是为了凸显Nginx性能的强大,那么如何基于centos 7搭建Nginx网站服务器(包含虚拟web主机的配置),下面我们继续来讲解Nginx的配置以及在虚拟机上的应用:

  1. centos 7服务器一台;
  2. 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

点赞 0
收藏 0

文章为作者独立观点不代本网立场,未经允许不得转载。