Mostrando entradas con la etiqueta servidor. Mostrar todas las entradas
Mostrando entradas con la etiqueta servidor. Mostrar todas las entradas

martes, 3 de febrero de 2026

SERVIDOR WEB ORANGEPI PC - Debian 10 Buster

  Página principal

SERVIDOR WEB
ORANGE PI PC
Debian 10  Buster




Después de 2 años de funcionar el servidor en TVBOX X96, empezó a fallar, era hora de cambiar.
He vuelto a instalar el servidor en una placa ORANGEPI PC.
Para esta ocasión he creado un vídeo de como realizo la puesta a punto del servidor.

VÍDEO


-------   geany /etc/apt/sources.list ----

#deb https://legacy.raspbian.org/raspbian/ buster main contrib non-free rpi

deb https://legacy.raspbian.org/raspbian/ buster main contrib non-free


----------------
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 9165938D90FDDD2E
----------------
apt-get update

orangepi@orangepipc:~$ sudo apt-get install dillo ssh x11vnc vsftpd nginx xfe mc
----------------
/usr/sbin/adduser seta

/usr/sbin/usermod -a -G www-data seta
--------------------------------------
dip:x:30:
www-data:x:33:seta
backup:x:34:
---------------
chown -R seta:seta   /var/www/html
chmod  ugo+rx    /var/www/html



----------------IP FIJA----------------------------------
geany /etc/network/interfaces

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
  address 192.168.1.70
  netmask 255.255.255.0
  gateway 192.168.1.1
dns-nameservers 8.8.8.8
post-up echo "Interface eth0 levantada con exito"
post-down echo "Interface eth0 bajada con exito"

-----------------SERVIDOR FTP-----------------------------
geany /etc/vsftpd.conf

listen=NO
listen_ipv6=YES

anonymous_enable=NO
local_enable=YES
write_enable=YES

dirmessage_enable=YES

use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES

local_umask=022

secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd

rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO


------------------------

----------SERVIDOR VNC---------------------
--ESTO SE HACE COMO USUARIO NORMAL--
CONTRASEÑA
     x11vnc -storepasswd

En Xfce añadir un arraque automático:
  
Exec=x11vnc -forever -usepw -display :0 -ultrafilexfer



---------Para  utilizar el terminal serie---------------------
apt-get install python-serial
apt-get install python3-matplotlib
apt install python3-pip
apt install python-serial python3-serial


chmod 777 /dev/ttyUSB0
usermod -a -G dialout seta
/usr/sbin/usermod -a -G dialout seta

sudo apt install xterm





Saludos.
Juan Galaz



Bibliografía:

http://seta43.duckdns.org/serora.html
http://seta43.duckdns.org/x96mini.html


lunes, 8 de septiembre de 2025

CLIENTE HTTP CON ESP32 , CONTROL VARIOS SERVIDORES IoT

  Página principal

CLIENTE HTTP CON ESP32
CONTROL VARIOS SERVIDORES IoT
ESP-01 (esp8266)


En marzo de 2022 se realizó un diseño de Server HTTP con el ESP-01 que lleva integrado un ESP8266, cuyo tamaño y pines son adecuados para controlar el encendido y apagado de los focos de iluminación de diferentes áreas, incluso para echar a andar a apagar algunos aparatos domésticos, como ventiladores, calefactores, etc. El proyecto se puede consultar en la siguiente liga: http://seta43.blogspot.com/search?q=esp-01

El control podía hacerse desde un Smartphone, tablet, PC o laptop, ingresando la dirección web de cada servidor ESP-01, por ejemplo http://192.168.0.195 apareciendo una página con 3 botones, 2 de ellos para encender y apagar el foco o dispositivo en la zona donde tal servidor estuviera instalado.

Sin embargo este método, aunque efectivo, tiende a ser lento considerando que hay que encender el Smartphone, teclear la dirección o link del que se quiere tener control, y finalmente oprimir el botón “ENCENDER” para que aquella zona se ilumine o se active. Resulta algo que se lleva un tiempo y es engorroso.

En el proyecto actual se ha seleccionado un ESP32, el cual ya armado consta únicamente de 6 botones tipo push-button (y posiblemente 6 LEDs) para que de manera inmediata el operador presione el que corresponde a la zona desee activar, con un toque rápido. Cuando se desea desactivar dicha zona, por ejemplo apagar la iluminación, el mismo botón ha de presionarse, pero dilatando algo más de 2 segundos. Es decir, se pensó en la urgencia de encender cierta zona, y de apagarla ya sin prisas y con el menor esfuerzo posible o tiempo dedicado a tal fin.

El ESP32 montado en el protoboard se muestra a continuación, con su adaptador que permite el uso de más conexiones (ver: http://seta43.blogspot.com/search?q=adaptador)

Para aquellos que les guste este proyecto, lo pueden modificar, incluso colocarle los respectivos LEDs y su código correspondiente, para indicar cual zona está activada (Encendida), por lo que se proporciona el programa respectivo de Arduino IDE.

Alfredo Segura, México. Agosto de 2025.


PROGRAMA

Saludos.
Alfredo Segura, México. Agosto de 2025.



lunes, 26 de febrero de 2024

Gráficas de datos metereológicos. Python. Generar página web. II

Página principal

Gráficas de datos metereológicos.
Python.
Generar página web.
II


Buscando chip para hacer un control remoto, encontré este par de chip TX2 y RX2.
Hace unos años hice webgra.html para generador de gráficos con datos de un sensor, funcionaba bien, hasta que el sensor dejo de funcionar.
No tenía un sensor comercial exterior con detección de humedad, por lo que lo he modificado para que solo funcione con el sensor de temperatura. Utilizo este sensor que ya tengo funcionando mas de 19 años sin problemas.

El desarrollo de la comunicación con el arduino está explicado en: ard433.html rec433.html
La conexión con el servidor se hace mediante un puerto USB, por donde se recibe los datos del sensor.






Visor en tiempo real.

ARCHIVOS


Saludos.
Juan Galaz


Bibliografía:

webgra.html
camtem.html

ard433.html



 

sábado, 17 de septiembre de 2022

X96mini Instalar Linux + Servidor WEB

  Página principal

X96mini
Instalar Linux + Servidor WEB



Anteriormente:

01/11/2021 -  Instalar en la raspberry Pi servidores. RaspServer
11/04/2019 - Servidor WEB con Orange PI (raspberry pi) y NGINX - SERVIDOR_Orangepi
28/03/2019 - Servidor DELL R200. SERVIDOR

Ahora instalo el servidor en un TV-BOX modelo X96mini, con la distribución ARMBIAN.
Los primeros pasos son los particulares de X96mini.
La instalación de los servidores WEB, FTP, VNC, SSH estan explicados mejor en los anteriores artículos.

Descargar Armbian de:
        https://users.armbian.com/balbes150/arm-64/
    La imagen utilizada es:
        Armbian_20.10_Arm-64_bullseye_current_5.9.0_desktop.img.xz  
    Ejecutar balena grabador o grabador de imagenes de disco en Linux.
       
       
        En mi caso el programa balena era mucho más rápido en Windows.
    Grabar imagen de Armbian en tarjeta microSD
    Retire la microSD de forma segura y vuelva a insertarla

Configurar la tarjeta MicroSD para Armbian

    Abra la partición legible de la tarjeta microSD en Explorer
    Cambie el nombre del archivo apropiado de abajo a u-boot.ext en la raíz de la tarjeta SD

    u-boot-s905 (para s905)
    u-boot-s905x-s912 (para s905x y s912)
    u-boot-s905x2-s922 (para s905x2 y s922)

    En mi caso hago una copia de u-boot-s905x-s912 (para s905x y s912) y lo renombro a u-boot.ext.
   
    Edite /extlinux/extlinux.conf en un editor de texto
        Comente las líneas rk-3399 agregando #
        Descomente las líneas aml s9xx FDT y APPEND eliminando #
        Actualice la línea FDT para que apunte a un archivo .dtb que funcione para su dispositivo
    Para el X96mini:
        # aml s9xxx
        #FDT /dtb/amlogic/meson-g12a-x96-max-no-cvbs.dtb
        #FDT /dtb/amlogic/meson-g12b-ugoos-am6-no-cvbs.dtb
        #FDT /dtb/amlogic/meson-g12b-odroid-n2.dtb
        FDT /dtb/amlogic/meson-gxl-s905w-p281.dtb
        APPEND=root=LABEL=ROOTFS rootflags=data=writeback rw console=ttyAML0,115200n8 console=tty0 no_console_suspend consoleblank=0 fsck.fix=yes fsck.repair=yes net.ifnames=0

    Salvar y expulsar de forma segura
 
Inserte la tarjeta microSD en la caja de Android TV
   
Arrancando a Armbian por primera vez:
     Con un palillo o similar, se introduce en la conexión AV y se pulsa un botón interior.
     A la vez se conecta el adaptador de corriente a la caja de Android TV.
       
     Esto solo hay que hacerlo la primera vez que arranca Armbian.


Configurando los servidores.
apt-get update
apt-get install console-data console-setup  keyboard-configuration
/sbin/dpkg-reconfigure  keyboard-configuration
/sbin/dpkg-reconfigure  locales

apt-get install mc xfe x11vnc vsftpd nginx ssh dillo

-----------------SERVIDOR WEB----------------------------
mkdir  /var/www
chown -R seta:seta   /var/www/html
chmod  ugo+rx    /var/www/html
geany /etc/vsftpd.conf

----------------IP FIJA----------------------------------

geany /etc/network/interfaces

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
  address 192.168.1.50
  netmask 255.255.255.0
  gateway 192.168.1.1
dns-nameservers 8.8.8.8
post-up echo "Interface eth0 levantada con exito"
post-down echo "Interface eth0 bajada con exito"

-----------------SERVIDOR FTP-----------------------------

Editar:
    geany /etc/vsftpd.conf
Cambiar a:
    anonymous_enable=NO
    local_enable=YES
    write_enable=YES


----------SERVIDOR VNC---------------------
--ESTO SE HACE COMO USUARIO NORMAL--

CONTRASEÑA
     x11vnc -storepasswd

En Xfce añadir un arraque automático:
   

Exec=x11vnc -forever -usepw -display :0 -ultrafilexfer


VÍDEO



Revisión 1

Características:
TV Box Status Information Template Version 1.0
TV Box Name (example: TX3 mini): X96 mini
CPU (example: amlogic s905w): amlogic s905w
Armbian build file name: Armbian_20.10_Arm-64_focal_current_5.9.0_desktop.img.xz
DTB file used: meson-gxl-s905w-gxl-s905w-p281.dtb
Kernel Version: 5.9.0
Distribution Installed (focal, buster, etc): focal
Working Ethernet (Yes/No): Yes
Max Ethernet Speed that works (100/1000): 100
Does wifi work (Yes/No): No
Does bluetooth work (Yes/No): No
Does HDMI audio work (Yes/No): No
Additional Comments (provide any additional information you feel is important): HDMI was unstable during boot and when connected to a 4K monitor.  Once I connected to a 1080p monitor the display was stable after booting, still had issues during the boot. Como vemos no funciona el audio por HDMI. Lo soluciono con un convertidor de USB a audio, son baratos 2€
La tarjeta wifi interna no funciona. Puedes colocar una mediante USB , antes tienes que añadir el firmware, la mayoría funciona.

Tarjeta Bluetooth y Wifi tipo USB funcionando.


Para cambiar la resolución cuando arranca ARMBIAN hay que hacer algunos cambios en /extlinux/extlinux.conf.
1024x768
LABEL Armbian
LINUX /zImage
INITRD /uInitrd

# aml s9xxx
#FDT /dtb/amlogic/meson-gxbb-p200.dtb
#FDT /dtb/amlogic/meson-gxl-s905x-p212.dtb
#FDT /dtb/amlogic/meson-gxm-q200.dtb
#FDT /dtb/amlogic/meson-g12a-x96-max.dtb
#FDT /dtb/amlogic/meson-g12b-odroid-n2.dtb
FDT /dtb/amlogic/meson-gxl-s905w-p281.dtb
APPEND root=LABEL=ROOTFS rootflags=data=writeback rw console=ttyAML0,115200n8 console=tty0 no_console_suspend consoleblank=0 fsck.fix=yes fsck.repair=yes net.ifnames=0 drm_kms_helper.edid_firmware=HDMI-A-1:edid/1024x768.bin video=HDMI-A-1:1024x768@60

1280x720 (HD)
LABEL Armbian
LINUX /zImage
INITRD /uInitrd

# aml s9xxx
#FDT /dtb/amlogic/meson-gxbb-p200.dtb
#FDT /dtb/amlogic/meson-gxl-s905x-p212.dtb
#FDT /dtb/amlogic/meson-gxm-q200.dtb
#FDT /dtb/amlogic/meson-g12a-x96-max.dtb
#FDT /dtb/amlogic/meson-g12b-odroid-n2.dtb
FDT /dtb/amlogic/meson-gxl-s905w-p281.dtb
APPEND root=LABEL=ROOTFS rootflags=data=writeback rw console=ttyAML0,115200n8 console=tty0 no_console_suspend consoleblank=0 fsck.fix=yes fsck.repair=yes net.ifnames=0 drm_kms_helper.edid_firmware=HDMI-A-1:edid/1280x720.bin video=HDMI-A-1:1280x720@60

Si entramos en modo remoto , y no hemos conectado ningún monitor HDMI, veremos que la resolución es del tipo PAL.
Esta resolución es baja 720x576, en algún caso es difícil manejar el entorno gráfico.
Si estamos empeñados en utilizar el modo remoto en modo gráfico, deberemos comprar una especie de adaptador HDMI que engaña y hace ver que tenemos al PC-BOX un monitor HDMI enchufado.
En algún artículo he visto que existe la forma de mediante configuraciones hacer creer que está enchufado un HDMI, yo no lo he conseguido.


El consumo del X96mini es de entre 1.7W y 2.7W dependiendo de los aparatos que tengamos conectados al USB.
También varía el consumo dependiendo de la velocidad que pongamos en los procesadores, además también variara el calor desprendido.



Con el emulador DOSBOX ejecutando el antiguo Windows 3.1


Ejecutando un decodificador de SDR (radio definida por software) ávido de recursos.


VIDEO2 en resolución de 1024x768

domingo, 31 de octubre de 2021

Instalar en la raspberry Pi servidores.

 Comandos para instalar en la raspberry Pi una serie de servidores.

  • WEB
  • SSH
  • FTP
  • VNC


La raspberry utilizada es el modelo 2 con 512 M de memoria RAM.
Debido a la antiguedad de la placa he instalado raspbian 7 (DEBIAN 7) 2014.





https://youtu.be/DA1EaQWcYQU

http://downloads.raspberrypi.org/raspbian/images/
http://downloads.raspberrypi.org/raspbian_lite/images/

RASPBERRY- configuracion /boot/config.txt
=========================================
hdmi_force_hotplug=1

framebuffer_width=1280
framebuffer_height=720


REPOSITORIO
===========

7.0 -- wheezy
echo deb http://legacy.raspbian.org/raspbian/ wheezy main contrib non-free rpi >> /etc/apt/sources.list
apt-get update

IP_STATICA 192.168.1.50
=======================
/etc/network/interfaces

nano /etc/network/interfaces

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
  address 192.168.1.50
  netmask 255.255.255.0
  gateway 192.168.1.1
dns-nameservers 8.8.8.8
post-up echo "Interface eth0 levantada con exito"
post-down echo "Interface eth0 bajada con exito"


SERVIDOR SSH
============

ssh 192.168.1.50 -l seta


SERVIDOR VNC
============

CONTRASEÑA
     x11vnc -storepasswd
    
cd .config
 mkdir autostart
 cd autostart
 nano x11vnc.desktop

Pegar el siguiente texto:

[Desktop Entry]
Encoding=UTF-8
Type=Application
Name=X11VNC
Comment=
Exec=x11vnc -forever -usepw -display :0 -ultrafilexfer
StartupNotify=false
Terminal=false
Hidden=false


    
SERVIDOR FTP
============

apt-get install vsftpd
/etc/init.d/vsftpd status

Editar:
    nano /etc/vsftpd.conf
Cambiar a:
    anonymous_enable=NO
    local_enable=YES
    write_enable=YES


SERVIDOR WEB
============

sudo apt-get install nginx
sudo service nginx status

Editar:
    nano /etc/nginx/sites-enabled/default

Cambiar a:
    root /var/www;
    
SERVIDOR WEB_CONFIGURACION
--------------------------
mkdir  /var/www
chown -R seta:seta   /var/www
chmod  ugo+rx    /var/www

mkdir  /var/www/seta
chown -R seta:seta   /var/www/seta
chmod  ugo+rx    /var/www/seta

mkdir  /home/seta/www
chown -R seta:seta   /home/seta/www
chmod  ugo+rx    /home/seta/www

echo "/home/seta/www     /var/www/seta   none    bind    0    0" >> /etc/fstab

editar:
    nano /etc/nginx/sites-enabled/default
cambiar a:
        root /var/www;
        
Copiar los ficheros de la página principal en:
        /var/www
Los fichero de cada usuarios en;
        /home/usuario/www    

CAMARA
======

sudo modprobe bcm2835-v4l2
sudo sed -i '$a bcm2835-v4l2' /etc/modules

fswebcam -r "800x600" -S 5 --flip h,v  --no-banner  --jpeg 50 d1.jpg

Si error:  failed to open vchiq instance
    sudo chmod 777 /dev/vchiq
        o
    sudo usermod -a -G video seta
    
Configurar tarea:
=================
 nano /home/seta/www/webcam/tareaWeb
 
crontab -e
    */2  * * * * /home/seta/www/webcam/tareaWeb > /dev/null 2>&1
    
De esta forma el script se ejecutara cada 2 minutos.


APAGAR
======
shutdown -h now

REINICIAR
=========
reboot

    
PROGRAMAS RECOMENDADOS
======================

apt-get install mc
apt-get install xfe

viernes, 23 de abril de 2021

ESP32 - SENSORES - OLED SSD1306Z - Servidor WEB

ESP32-  SENSORES

OLED  SSD1306Z
Servidor WEB
Temperatura/Humedad  DHT 22  (AM2302)
Temperatura 18B20
LUZ LDR


Este proyecto está realizado para poner en práctica un montón de montajes juntos, y practicar con el ESP32.
Está formado por 3 sensores, luz (LDR), temperatura y humedad ( DHT 22  (AM2302) ), sensor de temperatura (18B20).
Los datos se representan en un OLED (SSD1306Z) , además de tener un servidor WEB donde también se visualizan los datos en cualquier navegador.

Esquema eléctrico.


Circuito montado.


Pantalla OLED.


Datos en un navegador.

La construcción de este montaje fue  añadiendo y rediseñando montajes anteriores realizados con placas de arduino.

El primer paso era colocar la pantalla OLED 
SSD1306Z utilizando una librería propia que se añade con:
    #include "olex.h"
    #include <Wire.h>

El primer contacto con esta pantalla la tuve en el montaje arolet.html donde cree la librería.

Seguí añadiendo una LDR, que solo se necesita un conversor A/D . He utilizado el PIN34 (ADC6) , aunque probé con otros pins, pero cuando añadí el servidor web, funcionaban mal. Este funciona PIN perfectamente.

Como primer sensor de temperatura he utilizado el DHT 22  (AM2302) , además proporciona porcentaje de humedad. Para esto utilizo la librería  #include "DHT.h"  de   https://learn.adafruit.com/dht   .
Este sensor lo he empleado bastante por su bajo precio. ar433.html   raspb.html.

Como segundo sensor de temperatura he utilizado el 18B20 , muy barato y fácil de usar, junto con la posibilidad de poner varios en la misma línea de comunicaciones. Para su funcionamiento he utilizado una función creada por mi hace varios años int getTemp(void) . Este sensor lo he utilizado en varios montajes:  colorl.html , arwifi.html .

Como también quiero tener un reloj con la hora, he aprovechado el ejemplo que viene con el ESP32, SimpleTime.
En este ejemplo se toma la fecha y hora del servidor de internet pool.ntp.org , para luego ajustarnos a nuestra zona horaria. En el caso de la zona horaria de España  es +1h , o 3600 segundos.
En este caso también he añadido algo mio, los días de la semana.
En el ejemplo SimpleTime utilizaba en su configuración la IP dinámica que proporciona el router. Como a mi no me gustaba que cambiase la IP cada vez que se conectase, la he cambiado a IP estática, en mi caso 192.168.1.150
Si se quiere seguir utilizando la IP dinámica, comentar la línea:  #define IP_STATIC

Una vez montados todos los sensores, y ver que sus datos se representan bien en el OLED, nos toca crear el servidor WEB.
En un montaje anterior con el ESP8266  espb.html , había creado un servidor para encender y apagar LED.
En este caso lo he adaptado para visualizar los datos de sensores en un navegador.

Este proyecto me ha servido para ponerme en contacto con el ESP32, y ver todas sus posibilidades.
Espero que les haya gustado.


PROGRAMAS Y LIBRERÍAS

Saludos.
Juan Galaz

Bibliografía:
https://randomnerdtutorials.com/esp32-dht11-dht22-temperature-humidity-sensor-arduino-ide/
https://randomnerdtutorials.com/installing-the-esp32-board-in-arduino-ide-windows-instructions/
https://www.profetolocka.com.ar/2020/07/09/programando-el-esp-32-con-el-arduino-ide/
https://www.prometec.net/presentando-el-esp32/


 

lunes, 14 de diciembre de 2020

SERVIDOR-Gráfico de datos de temperaturas -JavaScript

SERVIDOR

Gráfico de datos de temperaturas

JavaScript


Hace un año que tengo en mi servidor de Gráficas de datos meteorológicos realizado en Python haciendo uso de la librería matplotlib.
Se puede ver el gráfico de temperaturas diaria de Palencia en http://seta43.duckdns.org/seta/webcam/gradia.html.
En este caso, a nivel de programación, la gráfica se realiza en el servidor que crea los ficheros de imagen, los cuales se insertan en la página WEB.

Gráficos utilizando la librería matplotlib.

Existe otra forma de generar gráfica de datos, y esta es utilizando JavaScript.
Haciendo uso de la librería http://www.jqplot.com/ podemos hacer gráficas bastante vistosas.


Gráficos utilizando la librería jqplot.

index.html
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="content-type" content="text/html; charset=UTF-8">
        <title>TEMPERATURA PALENCIA</title>
        <link class="include" rel="stylesheet" type="text/css" href="jquery.jqplot.min.css" />
        <script class="include" type="text/javascript" src="jquery.min.js"></script>
        <script class="include" type="text/javascript" src="jquery.jqplot.min.js"></script>
    </head>
    <body>  
        <div align="left"> <h2><font color="#990000">Temperaturas Palencia</font></h2> </div> <br>
        <div id="ejemplo1" style="height:400px; width:700px;"></div>
        <script class="code" type="text/javascript">
            $(document).ready(function(){
              var lineaY = [];

//_________________________
var lineaYs = [9.4,9.2,9.2,9.2,9.2,9.3,9.1,9.1,9.1,9.1,9.0,8.9,8.8,8.8,8.8,8.7,8.7,8.7,8.8,8.8,8.8,8.9,
8.9,9.0,9.0,9.0,9.1,9.0,9.0,9.0,9.0,8.9,8.8,8.7,8.5,8.4,8.3,8.3,8.4,8.4,8.7,9.0,9.3,9.4,9.7,10.1,10.2,10.6,
10.8,11.1,11.3,12.2,12.3,12.3,11.8,11.8,12.1,12.0, ,11.6,11.5,11.2,10.8,10.8,10.9,10.8,10.7,10.8,11.0,
 , , , , , , , , , , , , , , , , , , , , , , , , , , ,]

//____________________________
var z=0;
for (var i=0; i<24; i+=0.25){    lineaY.push([i, lineaYs[z] ]);  z++; }
              var puntos = $.jqplot('ejemplo1', [lineaY],
                { 
                  title: 'GRÁFICO POR HORAS',                 
                  seriesDefaults:
                        {
                            showMarker: false,
                            rendererOptions:
                                {
                                smooth: true,
                                animation: { show: true    }
                                },                           
                        },   
                  series:
                      [
                        {showMarker:false},
                      ],
                  axes:
                        {
                            xaxis:{ label:'HORA', pad: 0 }, 
                            yaxis:{  label:'Temp.'  }
                        }
                });
            });
        </script>
     </body>
</html>
prugra.sh
#!/bin/bash
datecreated=`date`
echo "GENERANDO GRAFICOS JavaScript"
cp $HOME/www/webcam/datos.txt $HOME/www/prugra/datos.txt
cd $HOME/www/prugra
cat parte1.txt datos.txt parte3.txt > index.html

Después de muchas pruebas no he conseguido que javaScript cargue automática los datos desde un fichero.
He optado por una opción poco ortodoxa, unir mediante el comando cat 3 ficheros, la cabecera, los datos y el final de fichero, y de esta forma creamos el fichero index.html. Este fichero con código javaScript se ejecuta en el navegador, creando la gráfica.
El problema  de crear la gráfica con una librería de javaScript, es que se tiene que cargar la librería jqplot, y el tamaño de esta librería es de 260Kbytes. En estos tiempos no es mucho, pero debemos tener en cuenta el consumo  de datos.
Para hacer bonita la gráfica utilizo la opción animation: { show: true } que genera una animación en la creación de la gráfica.

El fichero de datos.txt se crea en el programa de python que obtiene los datos del sensor  gratem.py.
Podemos ver funcionando la página en:
    http://seta43.duckdns.org/seta/prugra/index.html

Espero que les haya gustado este artículo sobre creación de gráficos en una página web.


Saludos.
Juan Galaz

Bibliografía:

Gráficas de datos metereológicos
http://seta43.duckdns.org/seta/webcam/gradia.html.
http://www.jqplot.com/

martes, 23 de abril de 2019

Servidor WEB con Cámara en Orange PI

Volver

Servidor WEB con Cámara
Orange PI


En el anterior artículo había realizado y probado un servidor WEB con la placa Orange PI y el servidor  NGINX.
En este artículo añado un componente mas a Orange PI, una cámara.
A través de la página web se podrá ver la imagen de la calle, esta imagen se actualizará cada 2 minutos.
http://seta43.duckdns.org/seta/webcam/index.html


Imagen vista desde un navegador.

Para este proyecto hemos utilizado una webcam  Logitech, Inc., aunque sirve cualquiera que funcione en Linux.

Cámara colocada en la ventana.

Como base de la página web tenemos el fichero index.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <meta http-equiv="refresh" content="115">
    <title>miweb</title>
  </head>
  <body alink="#EE0000" bgcolor="#ffff99" link="#0000EE" text="#000000"
    vlink="#551A8B">
    <i><big><b>Mi_Cámara</b></big></i><br>
    <hr size="2" width="100%"><big><big style="font-weight: bold;"><img
          alt="" src="web.jpg" height="480" width="640"><br>
        <br>
mar abr 23 20:26:01 CEST 2019
      </big></big>
  </body>
</html>



Lo primero que debemos hacer es utilizar un programa que capture una imagen de la webcam para colocarla en la página web.
_____VERSIÓN___ANTIGUA CAMBIADA_________
El programa utilizado es vgrabbj , este programa se maneja vía comandos, que es lo que nos interesa.

vgrabbj -U -R -i vga  -z 50  -f /home/seta/www/webcam/web.jpg


Con esta orden capturamos una imagen en /home/seta/www/webcam/web.jpg , es donde alojaremos la página web de la webcam.
En mi caso coloco mi webcam boca-abajo para mejor sujección, por lo cual debo utilizar las opciones -U -R para dejar la imagen bien.
El tamaño será de 640x480, con la orden -i vga capturo  ese tamaño.
En algunas webcam se necesita ciertas imágenes para que se estabilice la luz, yo espero 50 imágenes, opción -z 50.
El script queda de la siguiente manera.


#!/bin/bash
datecreated=`date`

vgrabbj -U -R -i vga  -z 50  -f /home/seta/www/webcam/web.jpg
sed -i '14d' /home/seta/www/webcam/index.html
sed -i "14i${datecreated}" /home/seta/www/webcam/index.html


Después de funcionar perfectamente la webcam durante 1 semana, se me ocurrió reiniciar la placa Orange PI.
Resultaba que la webcam no se llegaba a ver. Probando y probando me dí cuenta que el programa vgrabbj no funcionaba a veces cuando se lanzaba por primera vez.
Para solucionar el problema he cambiado el programa que captura imagenes, y ahora es fswebcam.
Ahora funciona todo bien cuando re reinicia el servidor.

#!/bin/bash
datecreated=`date`

#echo "$datecreated" >> /home/seta/web.txt
#vgrabbj -U -R -i vga  -z 50  -f /home/seta/www/webcam/web.jpg
#uvccapture -x640 -y480 -m -o"/home/seta/www/webcam/web.jpg"
fswebcam -r "640x480" -S 40 --flip h,v  --no-banner  --jpeg 70  /home/seta/www/webcam/web.jpg
sed -i '14d' /home/seta/www/webcam/index.html
sed -i "14i${datecreated}" /home/seta/www/webcam/index.html


Con el comando sed borro la línea 14, e inserto la hora y la fecha en la página web.

Para que la página web se actualize automáticamente coloco en la cabecera de la página web:

 <meta http-equiv="refresh" content="115">

Esto hace que se actualice cada 115 segundos.

Ya tenemos el script creado, pero nos falta que el script se ejecute cada 2 minutos.
Para esta tarea utilizaremos cron.  El comando cron es un administrador regular de procesos en segundo plano que viene de serie en linux.
Para añadir el comando que se debe ejecutar en segundo plano, utilizaremos el comando crontab -e  .
Y editaremos de la siguiente forma:

*/2  * * * * /home/seta/www/webcam/tareaWeb > /dev/null 2>&1

De esta forma el script se ejecutara cada 2 minutos.

Como veis es una forma bastante sencilla de crear una webcam en tu página web.


Saludos
Juan Galaz

Bibliografía:

servi.html
wpa.html
wpb.html
orange.html
https://orangepiweb.es/
http://www.orangepi.org/orangepibbsen/forum.php?gid=38



jueves, 11 de abril de 2019

Servidor WEB con Orange PI y NGINX

Volver

Servidor WEB

con

Orange PI y NGINX


En el anterior artículo había realizado y probado un servidor DELL R200.
El modelo DELL R200  tiene el procesador Xeon X3360 de 4 núcleos. El servidor está configurado con dos discos 250G en modo RAID, controlados por una tarjeta.
El resultado era bueno, pero el consumo 77W era alto debido a su potencia. Solo el coste de electricidad por año llegaba a 90€.
Para mantener un servicio comercial de varias páginas web es ideal, pero para un uso particular resulta un tanto costoso.
Hace años que había realizado un estudio de Orange PI PC ,es un clónico de la Raspberry Pi, pero algo mas barato y mas potente (en su día).
En este artículo realizo un servidor WEB con esta placa. Todos los pasos se pueden realizar en una Raspberry Pi, pero esto no lo he probado.
He de confesar que todos los pasos los realicé antes en un ordenador normal (PC) con Debian 9, y luego los he reproducido en la Orange PI PC con Debian 8, funcionando a la perfección.

Lo primero es ir a la página http://www.orangepi.org/downloadresources/ y bajar la versión de Debian que corresponda a vuestra placa, en mi caso (Orange Pi Pc)Debian XFCE Desktop .
Esta imagen está comprimida, y tenemos dos opciones para instalarla en una SD en linux.
La fácil es utilizar el programa gnome-disks desde root.
La segunda opción es descomprimir la imagen.gz que no creará un archivo con extensión .img.
Ahora instalamos la imagen.img a la SD con la orden:
    dd if=OrangePI_Jessie_Xdfce.img of=/dev/sdx bs=1M oflag=direct
donde /dev/sdx es el lugar donde se encuentra la SD. Para saber donde se encuentra la SD se teclea  fdisk -l y nos mostrará los diferentes discos y su localización.
Todo esto lo debemos hacer siendo root, tener paciencia, tarda tiempo en escribir la SD dependiendo de la clase que sea (4) (10).
En esta página del foro se puede encontrar algo en español:
http://www.orangepi.org/orangepibbsen/forum.php?mod=viewthread&tid=33
En ingles:
http://www.orangepi.org/orangepibbsen/forum.php?mod=viewthread&tid=342
Una vez instalada la imagen en la SD nos creará dos particiones:
BOOT donde se instalan las imágenes uImage del kernel y los script.bin (configuraciones)
Linux donde se encuentra el propio sistema operativo.
Antes debíamos de seleccionar el script.bin apropiado a nuestra placa, ahora ya viene instalado el script apropiado y no hay que hacer nada.

Todo preparado para el primer arranque, hdmi conectado a la Tv, SD con el sistema operativo instalado, teclado y ratón conectado al USB ,y red conectada. Conectamos la alimentación y esperamos como salen los primeros caracteres de arranque de linux.
Nos encontramos ante la petición de usuario y contraseña. Existen dos usuarios ya creados.
orangepi    contraseña: orangepi
root        contraseña: orangepi
Entramos con el usuario orangepi y nos encontramos con un escritorio Xfce.
Lo primero es cambiar la configuración del teclado, entramos en Settings->Keyboard , cambiamos la localización del teclado.

Si queremos cambiar la configuración del teclado en los terminales gráficos, tecleamos como root, la orden:
dpkg-reconfigure locales
Aquí me he encontrado que no funciona el cambio de locales, yo lo he solucionado como indica la página:
    https://enavas.blogspot.com/2015/01/configurar-locales-y-eliminar-el-aviso.html
Yo he editado el fichero  /etc/default/locale y lo he puesto de la siguiente forma:

LANG=es_ES.UTF-8
LANGUAGE=es_ES.ISO-8859-15@euro
LC_ALL=es_ES.UTF-8
LC_CTYPE=es_ES.UTF-8
LC_MESSAGES=es_ES.UTF-8
LC_TIME=es_ES.UTF-8
LC_PAPER=es_ES.UTF-8
LC_MEASUREMENT=es_ES.UTF-8
LC_MONETARY=es_ES.UTF-8
LC_NUMERIC=es_ES.UTF-8

De todas formas puedes manejar el teclado si sabes como está el teclado americano.

Lo primero y mas conveniente es cambiar las contraseñas de root y orangepi con la orden passwd usuario.
El usuario seta es desde donde voy a trabajar, este usuario entrara automáticamente en forma gráfica, se podrá manejar a distancia con ssh, VNC y ftp. Vamos que una vez configurado todo, no hace falta tener ni teclado, ratón y monitor en la placa Orange PI.
Creamos el  usuario con la orden adduser seta , y  colocamos la contraseña con passwd seta.
Para que inicie automáticamente un usuario, debemos configurar el gestor de arranque  lightdm .
Entramos en consola como root  y editamos el fichero de configuración con la orden:
pluma /etc/lightdm/lightdm.conf
y editamos las líneas siguientes:
autologin-user=seta
autologin-user-timeout=20
Donde seta es el usuario que se inicia automáticamente, y 20 son los segundos que tarda en iniciarse automáticamente.

Debemos configurar la red para que sea la IP estática, en nuestro caso le vamos a dar la IP 192.168.1.70 .


Veremos que cuando entramos en la consola como root o orangepi , nos salda la opción de poder utilizar toda la SD para el sistema. Cuando se instala la imagen en la SD se crea una partición de solo 2 o 3 Gb, si tenemos una SD de 16Gb desaprovecharíamos 13Gb, con la orden sudo fs_resize ,se redimensiona la partición para utilizar toda la SD.

Como pienso que instalar un servidor de páginas dinámicas en esta placa es un tanto pretencioso, no digo que no funcione, no he añadido los paquetes PHP, ni MySQL. El servidor solo servirá páginas estáticas para ser mas rápido.

Con el instalador de aplicaciones Synaptic, o con la orden apt install paquete,  instalamos los paquetes:
ssh    - acceso remoto a un servidor por medio de un canal seguro.
vsftpd    -Servidor ftp
x11vnc    -Servidor VNC
nginx    -Servidor WEB, es algo mas ligero que apache.
Además a mi me gusta instalar: dillo, xfe.

Otra cosa que me gusta hacer es instalar un servidor de escritorios remotos. Con el instalador de aplicaciones Synaptic instalamos x11vnc. Ahora  desde consola indicamos la contraseña del servidor de escritorio remoto, x11vnc  -storepasswd .
Para lanzar el escritorio remoto desde consola , x11vnc -forever -usepw -display :0 -ultrafilexfer


Ahora vamos a configurar el servidor ftp.
Editamos el fichero /etc/vsftpd.conf y colocamos esto:

listen=YES
listen_ipv6=NO
anonymous_enable=NO
local_enable=YES
write_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
allow_writeable_chroot=YES
secure_chroot_dir=/var/run/vsftpd/empty
xferlog_enable=YES
vsftpd_log_file=/var/log/vsftpd.log    
xferlog_std_format=YES
xferlog_file=/var/log/xfer.log
dual_log_enable=YES
pam_service_name=vsftpd
ssl_enable=NO

Con esto enjaulamos a todos lo usuarios en su propio directorio.
Editamos el fichero /etc/vsftpd.chroot_list y colocamos esto: seta
Indicamos que el único usuario que no estará enjaulado será seta.

Para que las configuraciones se actualicen deberemos reiniciar la placa o actualizarlas una por una, mejor reiniciamos la placa.
Ahora mismo ya no nos hace falta ni ratón, teclado y monitor.
Podremos manejar la placa Orange PI de forma remota, lo podéis comprobar desde otro PC.

La forma de entrar desde otro ordenador a la placa Orange PI mediante ssh es:
ssh seta@192.168.1.70
También existe la posibilidad de ejecutar un programa gráfico con ssh,  ejemplo:
ssh -X -p 22 seta@192.168.1.70 pluma
Es una forma bastante más rápida que utilizar  VNC.

Para transferir ficheros utilizamos ftp, cualquier programa como gftp o Filezilla sirve.
Recordar que solo hemos autorizado la usuario seta a moverse por todos los directorios de la placa Orange PI.

También podemos entrar mediante VNC a manejar el escritorio del usuario seta.

Ya nos toca empezar ha configurar todos los parámetros del servidor WEB, que es el objetivo de este artículo.
Desde cualquier ordenador de nuestra red interna, teclearemos en nuestro navegador la dirección 192.168.1.70 .
Si todo fue bien nos aparecerá la página por defecto del servidor NGINX, el fichero es : /var/www/html/index.nginx-debian.html .
Este fichero será el de por defecto, si no encuentra el fichero index.html.
Normalmente esto serviría si solo tenemos un usuario, pero como yo suelo crear varías páginas que gestionan diferentes usuarios, debo hacer diferentes cambios.
Lo primero es crear un directorio www en el directorio de cada usuario, donde se alojará la página web de cada usuario.
mkdir   /home/seta/www
chown  -R seta:seta    /home/seta/www
chmod  u+rwx      /home/seta/www
chmod  ugo+rx      /home/seta/www
Hemos creado el directorio ww y dado todos los permisos para el buen funcionamiento.

Le damos as seta los permisos para editar todos los fichero web
chown -R seta:seta   /var/www/html
chmod  ugo+rx    /var/www/html

Como root creamos otro directorio:
mkdir  /var/www/html/seta
chown -R seta:seta   /var/www/html/seta
chmod  ugo+rx    /var/www/html/seta

Ahora hacemos un montaje, no enlace, donde los los ficheros que se encuentran en /home/seta/www , el servidor pensará que están en /var/www/html/seta.
echo "/home/seta/www     /var/www/html/seta   none    bind    0    0" >> /etc/fstab
Desde el navegador tecleamos la dirección 192.168.1.70/seta , y nos aparecerá la página almacenada en el directorio /home/seta/www.
Esto es muy útil, podemos crear usuarios enjaulándolos en su directorio www y que puedan tener su página. Ejemplo: http://seta43.duckdns.org/usuario

En mi caso he creado un script de comandos bash donde se crean usuarios con su pagina web desde 4 estilos diferentes en menos de 7 segundos. Los usuarios creados mediante este método están enjaulados en su propio directorio. Además tienen su directorio www, donde alojan su página que pueden actualizar mediante ftp.
Recordar que cuando subáis ficheros a vuestra página, estar seguro que ponéis los permisos adecuados para que se puedan leer,  a mi me paso, hasta que me di cuenta.

Si queréis ver mi página funcionando está en:
http://seta43.duckdns.org

Existe una utilidad en Apache tools para testear el servidor.
Con la orden: ab -c 5 -t 60 http://192.168.1.70/  chequeamos la velocidad del servidor WEB.
Petición desde HP A6_5400 hacia ORANGE PI
Petición desde HP A6_5400 hacia DELL R200
Server Software:        nginx/1.6.2
Server Hostname:        192.168.1.70
Server Port:            80

Document Path:          /
Document Length:        813 bytes

Concurrency Level:      5
Time taken for tests:   21.551 seconds
Complete requests:      50000
Failed requests:        0
Total transferred:      52250000 bytes
HTML transferred:       40650000 bytes
Requests per second:    2320.07 [#/sec] (mean)
Time per request:       2.155 [ms] (mean)
Time per request:       0.431 [ms] (mean, across all concurrent requests)
Transfer rate:          2367.65 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.1      0       4
Processing:     0    2   0.7      2      25
Waiting:        0    2   0.7      2      25
Total:          1    2   0.6      2      26
Server Software:        Apache/2.4.25
Server Hostname:        192.168.1.60
Server Port:            80

Document Path:          /
Document Length:        1112 bytes

Concurrency Level:      5
Time taken for tests:   4.606 seconds
Complete requests:      50000
Failed requests:        0
Total transferred:      69200000 bytes
HTML transferred:       55600000 bytes
Requests per second:    10855.19 [#/sec] (mean)
Time per request:       0.461 [ms] (mean)
Time per request:       0.092 [ms] (mean, across all concurrent requests)
Transfer rate:          14671.47 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.0      0       4
Processing:     0    0   0.1      0       4
Waiting:        0    0   0.1      0       4
Total:          0    0   0.1      0       4

El consumo del DELL R200 es de 77W con un coste anual de 90€
El consumo de la placa Orange PI es de 1,7W con un coste anual de 2,5€.

Como podéis observar el coste anual es mínimo, es una solución muy valida para tener unas pocas páginas sin demasiado tráfico.
Me ha sorprendido lo bien que responde a las peticiones desde internet, funciona bastante bien.

Como es tan pequeña la placa Orange PI la tengo metida debajo de la mesa, no mete ruido, consume poco, y se calienta poco (yo tengo la caja abierta para que no se acumule el calor).
Recordar que para que se pueda ver vuestro servidor desde internet, se tiene que configurar el router para que redireccione los puertos a la placa Orange PI, de la misma forma pasa con el ftp.

Si ahora intentas acceder a la página web desde internet, fuera de nuestra red, veremos que ya funciona nuestro servidor WEB.
Para poder verse a uno mismo como si estuviésemos en el exterior, debemos emplear un truco.
Existe una página web que permite hacer esto: http://anonymouse.org/anonwww.html
Aunque inserta un pequeño anuncio funciona perfectamente.
Otra forma utilizar nuestro móvil con conexión a internet, pero claro gastaremos datos.

Para los que no tengan dominio y quieran experimentar, yo utilizo un subdominio tipo NO-IP.
En mi caso es  http://seta43.duckdns.org/
En la página http://www.duckdns.org/ podéis conseguir el vuestro, funciona bastante bien, además te explican como instalarlo en vuestro servidor para que se actualice la dirección IP dinámica que ha dado el operador.



Saludos
Juan Galaz

Bibliografía:

servi.html
wpa.html
wpb.html
orange.html
https://orangepiweb.es/
http://www.orangepi.org/orangepibbsen/forum.php?gid=38

jueves, 28 de marzo de 2019

Servidor DELL R200

Página principal


Servidor
DELL R200



El otro día vi un anuncio en páginas de segunda mano sobre un servidor DELL R200 por 25€.
La tentación era enorme, nunca había trasteado con equipos servidores en forma de rack.

Imagen interna del equipo DELL R200


R200
1U Rack 2010 Intel 3200 1 LGA 775 Xeon processors 3000
4GB Four unbuffered PC2-5300/6400 (DDR2 667/DDR2 800) ECC SDRAM, 2 channels × 2 sockets 2 × 3.5" non-hot-swap SATA or SAS and 1 × 5.25" removable CD/DVD

El modelo DELL R200 que compré tiene el procesador Xeon X3360 de 4 nucleos.
El vendedor me dijo que se había quitado funcionando, pero claro, por algo se retiraron.
El servidor está configurado con dos discos 250G en modo RAID, controlados por una tarjeta
    Dell YK838 SAS 6IR Controller (Raid 0 or 1) UCS-61 JW065
Lo primero que suelo hacer es comprobar el estado de los discos mirando los datos que proporciona el propio disco con S.M.A.R.T.
Esto suele dar una indicación del uso dado por el servidor.

Los datos ofrecidos por SMART dan un disco en estado de BAD (malo)
El otro disco duro espejo también ofrecen datos parecidos y disco MALO.
De tal forma, que el propio servidor te avisa del estado del disco duro, y hasta que no confirmas este error el servidor no continua.
Esto es una cualidad importante en los servidores, antes de que falle por completo el disco duro te avisa para que lo cambies.
Al estar duplicados los discos duros en forma RAID, cuando fallan los datos en un disco duro, el otro disco duro dispone los mismo datos pero correctos.
El cambio de los discos duros es fácil, no hace falta ningún destornillador, en apenas 5 minutos puedes cambiar los discos duros.

Como solo lo quiero para hacer pruebas y montar un miniservidor, no necesito 2 discos duros en RAID.
Quito la controladora junto con sus cables, y conecto un solo disco duro a la controladora integrada en la placa base.

La controladora retirada.



 Panel posterior.


Panel fontal.

En el panel fronta existe una segunda salida de video VGA para poder conectar un monitor sin tener que desmontar el servidor.
También se puede ver el lector de DVD , salida serie, 2 USB y el boton de encendido.
Existe un botón de acceso a información, y 4 LED que nos muestran algún tipo de problema.
Dispone de dos puertos de RED  de 1 Gigabit, que se pueden configurar en la BIOS.
Al ser ordenador diseñado para ser un servidor, existe multitud de opciones en la BIOS que no formarían parte de un PC normal.
Hay un manual de 180 pag. que explican todas las opciones y configuración.

A modo de prueba instalo un WindowsXP, que se instala sin problemas.
Instalo un segundo sistema operativo, Debian 9.5 , que es con el cual realizo las pruebas de servidor.
Instalo en Linux el servidor  Apache, servidor SSH, MariaDB, PHP y Perl.
También instalo WordPress para hacer todo tipo de pruebas.
Para el control en remoto instalo X11vnc, y para actualizar las páginas web el servidor ftpd.
Con todos los programas anteriormente instalados y configurados, ya no hace falta tener conectado el monitor, teclado y ratón.

El funcionamiento del R200 es bastante bueno, el único pero que encuentro es el ruido que hacen los ventiladores.
Cuando arranca desde el pulsador de encendido o cuando se alimenta por primera vez,  parecen los ventiladores  de un avión, solo dura 3 segundos.
En funcionamiento normal, el ruido de los ventiladores se hace notar. Lo mas curioso es que aunque esté apagado con alimentación, los ventiladores siguen funcionando.

Para hacer una prueba de la potencia de del procesador Xeon de 4 núcleos, codifiqué una película con el programa HandBrake.

Comparación del AMD A6 frente al Xeon.

La ejecución del programa se realizó en remoto mediante la orden:
    ssh -X -p 22 seta@192.168.1.60 ghb
Es una foma bastante más rápida que utilizar  VNC.
La comparación es de 169 fps en el A6 frente a los 273 fps en el Xeon.

Existe una utilidad en Apache tools para testear el servidor.
Con la orden: ab -c 5 -t 60 http://192.168.1.60/  chequeamos la velocidad del servidor apache.
Petición desde HP A6_5400 hacia DELL R200 Petición desde HP A6_5400 hacia HP A6_5400
Server Software:        Apache/2.4.25
Server Hostname:        192.168.1.60
Server Port:            80

Document Path:          /
Document Length:        1112 bytes

Concurrency Level:      5
Time taken for tests:   4.606 seconds
Complete requests:      50000
Failed requests:        0
Total transferred:      69200000 bytes
HTML transferred:       55600000 bytes
Requests per second:    10855.19 [#/sec] (mean)
Time per request:       0.461 [ms] (mean)
Time per request:       0.092 [ms] (mean, across all concurrent requests)
Transfer rate:          14671.47 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.0      0       4
Processing:     0    0   0.1      0       4
Waiting:        0    0   0.1      0       4
Total:          0    0   0.1      0       4
Server Software:        Apache/2.4.25
Server Hostname:        192.168.1.120
Server Port:            80

Document Path:          /
Document Length:        1215 bytes

Concurrency Level:      5
Time taken for tests:   6.785 seconds
Complete requests:      50000
Failed requests:        0
Total transferred:      74350000 bytes
HTML transferred:       60750000 bytes
Requests per second:    7368.79 [#/sec] (mean)
Time per request:       0.679 [ms] (mean)
Time per request:       0.136 [ms] (mean, across all concurrent requests)
Transfer rate:          10700.57 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.1      0       2
Processing:     0    0   0.3      0       7
Waiting:        0    0   0.2      0       7
Total:          0    1   0.3      1       7
Server Software:        Apache/2.4.25
Server Hostname:        192.168.1.60
Server Port:            80

Document Path:          /myblog2
Document Length:        314 bytes

Concurrency Level:      5
Time taken for tests:   3.966 seconds
Complete requests:      50000
Failed requests:        0
Non-2xx responses:      50000
Total transferred:      27100000 bytes
HTML transferred:       15700000 bytes
Requests per second:    12607.66 [#/sec] (mean)
Time per request:       0.397 [ms] (mean)
Time per request:       0.079 [ms] (mean, across all concurrent requests)
Transfer rate:          6673.20 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.3      0      33
Processing:     0    0   0.2      0      33
Waiting:        0    0   0.2      0      33
Total:          0    0   0.4      0      33
Server Software:        Apache/2.4.25
Server Hostname:        192.168.1.120
Server Port:            80

Document Path:          /myblog
Document Length:        315 bytes

Concurrency Level:      5
Time taken for tests:   6.444 seconds
Complete requests:      50000
Failed requests:        0
Non-2xx responses:      50000
Total transferred:      27150000 bytes
HTML transferred:       15750000 bytes
Requests per second:    7759.65 [#/sec] (mean)
Time per request:       0.644 [ms] (mean)
Time per request:       0.129 [ms] (mean, across all concurrent requests)
Transfer rate:          4114.74 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.1      0       3
Processing:     0    0   0.2      0      10
Waiting:        0    0   0.2      0       9
Total:          0    1   0.2      1      10


Petición desde R200 hacia  R200 Petición desde R200 hacia HP A6_5400
Server Software:        Apache/2.4.25
Server Hostname:        192.168.1.60
Server Port:            80

Document Path:          /
Document Length:        1112 bytes

Concurrency Level:      5
Time taken for tests:   2.949 seconds
Complete requests:      50000
Failed requests:        0
Total transferred:      69200000 bytes
HTML transferred:       55600000 bytes
Requests per second:    16953.36 [#/sec] (mean)
Time per request:       0.295 [ms] (mean)
Time per request:       0.059 [ms] (mean, across all concurrent requests)
Transfer rate:          22913.52 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.0      0       1
Processing:     0    0   0.0      0       2
Waiting:        0    0   0.0      0       2
Total:          0    0   0.0      0       2
Server Software:        Apache/2.4.25
Server Hostname:        192.168.1.120
Server Port:            80

Document Path:          /
Document Length:        1215 bytes

Concurrency Level:      5
Time taken for tests:   5.304 seconds
Complete requests:      50000
Failed requests:        0
Total transferred:      74350000 bytes
HTML transferred:       60750000 bytes
Requests per second:    9427.30 [#/sec] (mean)
Time per request:       0.530 [ms] (mean)
Time per request:       0.106 [ms] (mean, across all concurrent requests)
Transfer rate:          13689.85 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.0      0       1
Processing:     0    0   0.2      0      11
Waiting:        0    0   0.2      0       8
Total:          0    1   0.2      0      11
En esta comparativa se puede ver la diferencia entre un servidor y un PC normal


Consumo del R200 comparándolo con otros dispositivos.


Como podemos observar el costo anual llega a los 90€, por lo que debemos sopesar si nos interesa para un servidor doméstico.
Para un servidor doméstico nos podría servir un ordenador HP con procesador A6, suficiente para instalar servidores de páginas web tanto estáticas como dinámicas, y que apenas mete ruido ni se calienta, consumiendo la mitad.
Si solo tenemos páginas estaticas nos puede servir un router  retirado, o una raspberry. Lo cual nos produciría un ahorro importante de energía y como consecuencia de dinero.
Os recomiento esta página de Vicente Navarro donde explica las formas y costes de montar un servidor. Es un poco antigua pero nos ayudará a tener una idea de los problemas y necesidades.
http://www.vicente-navarro.com/blog/2008/03/09/hosting-casero-howto/

Esta claro que el servidor DELL R200 está especializado en servir de forma segura al disponer de dos discos duros conectados en RAID.
Por lo que se puede emplear en llevar varios servicios de páginas a nivel profesional.



Saludos
Juan Galaz

Bibliografía:

http://www.vicente-navarro.com/blog/2008/03/09/hosting-casero-howto/