首页 >>  正文

linux做web服务器

来源:baiyundou.net   日期:2024-09-24

【CSDN 编者按】你家是否还有堆在角落积灰的安卓旧手机?给它一个机会,让他变废为宝可好?来看看将其改造成Ruby Web服务器的攻略吧!

原文链接:https://lbrito1.github.io/blog/2020/02/repurposing-android.html

声明:本文为 CSDN 翻译,转载请注明来源。

作者 | Leonardo Brito 译者 | 弯月 责编 | 彭慧中

出品 | CSDN(ID:CSDNnews)

你一定有安卓旧手机吧?每年都有大量的电子垃圾被扔掉,在发达国家,平均每个人每隔几年都要扔掉一台手机,而废弃的手机是最大的电子垃圾来源。

我有一台在角落兜灰的旧摩托罗拉G5 Cedric,所以我决定用它来做点什么。现在,我利用它运行一个Puma Web服务器,上面跑着一个简单的Sinatra应用。

在进一步介绍之前,你也许会想:这有什么实际的用途吗?一台旧的安卓手机可能并不会有太高的性能,但t2.nano的AWS服务器也没有。我还没有在安卓上部署任何“真正”的代码,但即使是最廉价的手机,一般也都有四核甚至八核CPU,至少2GB内存,所以理论上手机性能几乎接近最先进的云服务器(例如t2.nano就只有512MB内存)。当然,手机的处理器是ARM,而云服务器通常是x86;内存管理也完全不同。不过我们这里只是粗略估计一下。

不论如何,这篇文章的目的是介绍如何将安卓设备改造成Web服务器或任何其他东西。

安装Termux

首先我们需要在手机上设置一个Linux环境。Termux是一个运行在安卓上的终端模拟器和Linux环境,可以直接从谷歌应用商店下载。安装完成后不需要任何配置。

设置SSH

你肯定不想在手机的小屏幕上输入大量命令,所以我们来设置一下ssh,这样就可以远程登录Termux了。

方法实现有几种,但我认为最方便的是通过一个名为Dropbear的软件。

首先在安卓上运行:

pkg upgradepkg install dropbear

你可以选择密码认证,也可以选择公钥认证。虽然推荐使用公钥认证,但作为尝试的话,密码认证是最简单的。运行以下命令:

passwdNew password:Retype new password:New password was successfully set.

小贴士:可以安装一个终端复用程序,如tmux或screen。这样通过ssh运行程序时非常方便:

pkg install tmux

接下来,在台式机或笔记本上测试连接:

ssh android-ip-address -p 8022

设置安卓的静态IP地址

进入WiFi设置,禁用DHCP,然后给手机指定一个IP地址。

这一步是有必要的,这样路由器就不会每过几天就给手机分配一个新地址。否则,配置会相当麻烦。

安装Ruby、Bundler、Sinatra和Puma

Sinatra是一个轻量级的Web应用程序框架,而Puma是Web服务器。

Ruby就是Ruby!

当然,Sinatra和Puma只是建议,你甚至可以在手机上运行完整的Rails应用程序。只要别使用默认的Rails开发服务器WEBRick就行,它只有单进程、单线程,因此不适合生产环境。(小型测试环境还是不错的)。

在安卓上运行:

pkg install rubygem install sinatra puma安装nginx

nginx是Web服务器、反向代理和负载均衡器。虽然配置成多服务器是最有效的,它可以给多台服务器分发请求,但在我们的手机服务器上nginx也非常好,它内置了DDoS防范功能,还能为静态文件提供服务。

在安卓上运行:

pkg install nginx

接下来需要一点小技巧,才能让nginx与Puma相互配合。这个配置(https://gist.github.com/ctalkington/4448153)非常好,复制nginx.conf,将appdir改成你的Web应用的根目录。在我的配置中,我将其改成了 /data/data/com/termux/files/home/android-sinatra。

设置端口转发

如果想让Web服务器可以通过互联网访问,就需要给路由器设置端口转发,将进入的请求到新配置好的安卓Web服务器上。

具体做法取决于你的路由器。可以参考这篇文章(https://www.noip.com/support/knowledgebase/general-port-forwarding-guide/)。

配置动态dns

大多数人的公网IP地址都是动态的。因此,设置一个动态dns(DDNS)服务非常有必要,它会给你提供一个静态域名,自动将请求转发到你的动态公网IP地址上。

有几个免费的DDNS服务。我使用的是no-ip,到目前一切都好。只不过你需要每个月去“更新”一下域名。

设置好DDNS之后,你需要配置路由器,让它定期将自己的IP地址通知给DDNS服务。具体做法取决于路由器型号。

运行Hello world!

负载测试

你可以用siege这个HTTP负载测试软件来模拟真实世界中的使用情况。下面是在我的服务器上运行siege的情况,服务器支持3个并发用户(真实世界中应该设置得更大):

截图中数字的意义不大,因为我们的Web应用的响应只不过是时间戳,不超过100个字符,但足够证明,我们的服务器可以处理少量的并发用户了。

番外篇:安全性

互联网非常危险。如果你真的要运行一台服务器,就必须考虑这些问题。

运行这台服务器几个小时后,就已经有各种爬虫进来了。大多数都是无害的搜索引擎爬虫,但有的却是来者不善,比如这两个请求:

所以,务必要保证所有软件都是最新的,随时观察访问日志,并遵循nginx的安全指南。

","force_purephv":"0","gnid":"9a6ca38bc8d186adb","img_data":[{"flag":2,"img":[{"desc":"","height":"80","s_url":"https://p0.ssl.img.360kuai.com/t0186957a1ca5352752_1.gif","title":"","url":"https://p0.ssl.img.360kuai.com/t0186957a1ca5352752.gif","width":"640"},{"desc":"","height":"379","title":"","url":"https://p0.ssl.img.360kuai.com/t0113db6519e166bece.jpg","width":"1080"},{"desc":"","height":"485","title":"","url":"https://p0.ssl.img.360kuai.com/t01e36054aac7b048c5.jpg","width":"1080"},{"desc":"","height":"293","title":"","url":"https://p0.ssl.img.360kuai.com/t01b6e0081a76eaa116.jpg","width":"1080"}]}],"original":0,"pat":"art_src_1,fts0,sts0","powerby":"hbase","pub_time":1657263191000,"pure":"","rawurl":"http://zm.news.so.com/6e73031560a001e7b0c0fec8c40e604c","redirect":0,"rptid":"7889a32e4d60b8ea","s":"t","src":"CSDN","tag":[{"clk":"kdigital_1:安卓","k":"安卓","u":""},{"clk":"kdigital_1:路由器","k":"路由器","u":""}],"title":"旧安卓机别扔了,自制 Web 服务器了解一下!

干伟庙3765linux 下搭建WEB服务器 -
祁些左17526367527 ______ 既然你软件装好了,接下来就要配置一下toncat 了 ,网站很多文章 ,搜一下好了.配置好了 就把你写的编译好的代码放到tomcat下面.至于数据库,那就要看你的代码怎么写的

干伟庙3765如何使用Linux+Oracle+tomcat搭建web服务器? -
祁些左17526367527 ______ 正确安装oracle和tomcat,启动oracle服务把你的应用放在tomcat/webapp下面即可配置应用:配置数据库连接(oracle)运行start.sh,启动tomcat浏览器输入ip+端口号访问你的应用

干伟庙3765如何在ubuntu搭建web服务器 -
祁些左17526367527 ______ 可以参考如下Web服务器的建立过程.示例环境及web服务器软件: Ubuntu 12.04 LAMP(Linux,Apache,Mysql,PHP) 1、安装Apache (1)在安装HTTP Server之前需安装APR(Apache Portable Runtime)和APR-util安装APR $ tar zxvf apr-1.4.6.tar.gz ...

干伟庙3765linux平台web应用如何搭建 -
祁些左17526367527 ______ Web服务器:Tomcat5.0.27 JDBC驱动程序:mysql-connector-java-3.0.14-production-bin.jar1、搭建JAVA的运行环境 (1)到Sun公司下载j2sdk-1_4_2_05-linux-i586-rpm.bin (2)将文件改为可执行文件:[root@eframe62 tuzq]# chmod +x j2sdk-1_...

干伟庙3765linux centOS下怎么配置web服务器 -
祁些左17526367527 ______ 1、apache/nginx/tomcat等等都可以,得看你要部署的页面是什么格式2、用yum安装,例如yum install httpd3、用源码编译安装,例如nginx-1.6.1.gz tar zxf pcre-8.13.tar.gz pushd pcre-8.13./configure;make;make install popd tar zxf nginx-1.6.1.tar....

干伟庙3765用linux怎样建立服务器? -
祁些左17526367527 ______ 装上 web 服务器,一般建议 apache ,以及 php 支持,如果还需要数据库的功能,数据库服务器里面的 mysql 部分. 之后就差不多了.默认网站的地址要看实际选择的系统了,安装方法也要看你的选择的系统. 大部分 Linux 都可以直接安装这些程序,不管是安装盘还是在线软件源里.一般都有.不需要自己从源代码编译的. 而且网上这种文章很多的.

干伟庙3765假如我想建立一个WEB服务器!用Linux如何实现??
祁些左17526367527 ______ 装 apache服务器,可连接人数与系统版本有关

干伟庙3765哪种linux系统比较适合做WEB服务器?
祁些左17526367527 ______ centos是专门致力于做服务器系统的,由于是redhat重编译的,包含有不少redhat的付费功能,具体的优胜之处就说不上来了,就好比windows xp和windows server2003哪个做web服务器好一样

干伟庙3765linux系统怎样简单配置Web服务器??
祁些左17526367527 ______ 安装apache就行了,也就是那个httpd,安装好以后启动服务就是一个简单的静态web服务器了.

干伟庙3765怎样使用Ubuntu作web服务器系统?
祁些左17526367527 ______ Ubuntu 是一个完全以 Gnu/Linux 为基础的操作系统,它是一个基于 Debian的发行版.目前版本是 5.10. 如果你想快速在本地设置web环境的话,可以按照以下方法配置...

(编辑:自媒体)
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图 @ 白云都 2024