TFC: Complete HTTP server & programming language sections
Signed-off-by: Nicolás Ortega Froysa <nicolas@ortegas.org>
This commit is contained in:
parent
16c48af913
commit
77d275f05a
BIN
TFC/imgs/ss-lang-stats.png
Normal file
BIN
TFC/imgs/ss-lang-stats.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 19 KiB |
Binary file not shown.
@ -268,21 +268,59 @@ nuestra disposición, como podrían ser PowerDNS, MaraDNS, NSD, KnotDNS, y Bind9
|
||||
% TODO: finish
|
||||
|
||||
Entre los programas de servidores HTTP existen dos candidatos principales: Nginx
|
||||
y Apache.
|
||||
% TODO: finish
|
||||
y Apache. Aunque si quisiésemos instalar nuestra solución en una máquina de
|
||||
{\it Microsoft Windows} se podría contemplar {\it Microsoft Internet Information
|
||||
Services} (IIS), pero esta opción no esta disponible en Debian GNU/Linux -- o
|
||||
realmente cualquier sistema operativo que no sea {\it Microsoft Windows}. Para
|
||||
lo poco que hará nuestro servidor HTTP local, tanto Nginx como Apache podrán
|
||||
cumplir con los requisitos: servir páginas HTML y pasar peticiones (i.e.\ {\it
|
||||
requests}) HTTP a un {\it script} para gestionarla; así que la elección es
|
||||
arbitraria. Es verdad que, en cuestión de gestión de contenidos estáticos, Nginx
|
||||
tiene una ventaja sobre Apache, pero en cuanto a la gestión de contenidos
|
||||
dinámicos (i.e.\ páginas dinámicas que se gestionan a partir de {\it scripts})
|
||||
apenas hay diferencia entre las dos opciones. Escogeremos a Nginx simplemente
|
||||
por el criterio de mayor conocimiento y experiencia con su uso y administración.
|
||||
% SRC: https://hackr.io/blog/nginx-vs-apache
|
||||
|
||||
|
||||
\begin{figure}[h]
|
||||
\centering
|
||||
\includegraphics[width=0.4\textwidth]{imgs/ss-lang-stats.png}
|
||||
\caption{Estadísticas de uso de lenguajes de \\ programación en el lado
|
||||
servidor.}
|
||||
\label{fig:ss-lang-stats}
|
||||
\end{figure}
|
||||
|
||||
Finalmente, precisamos un lenguaje de programación por el cual podemos enviar un
|
||||
correo al administrador de la red con la información pertinente.
|
||||
% TODO: finish
|
||||
correo al administrador de la red con la información pertinente del intento de
|
||||
acceso a un sitio web prohibido (i.e.\ pornográfico). Para esto existen varias
|
||||
alternativas hoy en día, las principales siendo PHP, Ruby, Python, y JavaScript
|
||||
(por medio de NodeJS). De estas opciones la más utilizada en servidores, sin
|
||||
competición alguna -- ocupando un 77,5\% del mercado -- es PHP (figura
|
||||
\ref{fig:ss-lang-stats}). Es muy fácil de incorporar a un servidor HTTP, la
|
||||
mayoría (como Nginx) tienen formas de incorporarlo como un módulo, y otros
|
||||
servidores lo tienen directamente incorporado (como el caso de Apache). Tiene
|
||||
también un interprete ligero, y es muy estable. Por estos motivos, el lenguaje
|
||||
que utilizaremos será PHP.
|
||||
% SRC: https://w3techs.com/technologies/overview/programming_language/
|
||||
|
||||
Con el lenguaje de programación PHP existen varios métodos de enviar correos, y
|
||||
aunque existe la función por defecto de PHP, {\tt mail()}, no queremos
|
||||
utilizarlo ya que es demasiado simple y no soporta el protocolo SMTP, que sería
|
||||
útil para enviar correos a una dirección personal sin que aparecieran como {\it
|
||||
spam}. Lo que quiere decir que tendremos que utilizar un módulo de terceros para
|
||||
gestionar el envío de correos. Para esto conviene un módulo que esté disponible
|
||||
y de fácil instalación en nuestro sistema. En esto la opción más conveniente
|
||||
sería {\it PHPMailer}. Aunque {\it Symfony Mailer} sería otra opción que se
|
||||
utiliza mucho con PHP, no esta disponible en los repositorios de Debian
|
||||
GNU/Linux, como PHPMailer, y por lo tanto sería más difícil de instalar y
|
||||
actualizar, sobre todo el proceso de una actualización automática.
|
||||
% SRC: https://mailtrap.io/blog/php-email-sending/
|
||||
% SRC: https://www.debian.org/distrib/packages
|
||||
|
||||
% Software Dependencies:
|
||||
% - Bind9/Named [PowerDNS,MaraDNS,NSD,KnotDNS]
|
||||
% https://en.wikipedia.org/wiki/Comparison_of_DNS_server_software
|
||||
% - Nginx [Apache]
|
||||
% https://kinsta.com/blog/nginx-vs-apache/
|
||||
% - PHP [Ruby,Python]
|
||||
% - PHPMailer [mail() function, Symfony Mailer]
|
||||
% https://mailtrap.io/blog/php-email-sending/
|
||||
|
||||
\subsection{Diseño de Solución}
|
||||
\section{Pruebas y Despliegue}
|
||||
|
@ -12,11 +12,11 @@
|
||||
\contentsline {subsection}{\numberline {4.1}Análisis de Requisitos}{4}{subsection.4.1}%
|
||||
\contentsline {subsubsection}{\numberline {4.1.1}Requisitos Hardware}{4}{subsubsection.4.1.1}%
|
||||
\contentsline {subsubsection}{\numberline {4.1.2}Requisitos Software}{6}{subsubsection.4.1.2}%
|
||||
\contentsline {subsection}{\numberline {4.2}Diseño de Solución}{9}{subsection.4.2}%
|
||||
\contentsline {section}{\numberline {5}Pruebas y Despliegue}{9}{section.5}%
|
||||
\contentsline {subsection}{\numberline {5.1}Plan de Pruebas}{9}{subsection.5.1}%
|
||||
\contentsline {subsection}{\numberline {5.2}Manuales Técnicos y de Usuario}{9}{subsection.5.2}%
|
||||
\contentsline {subsection}{\numberline {5.3}Plan de Despliegue}{9}{subsection.5.3}%
|
||||
\contentsline {section}{\numberline {6}Conclusiones y Propuestas de Mejora}{9}{section.6}%
|
||||
\contentsline {section}{\numberline {7}Bibliografía}{9}{section.7}%
|
||||
\contentsline {section}{\numberline {8}Derechos de Autor y Licencia}{10}{section.8}%
|
||||
\contentsline {subsection}{\numberline {4.2}Diseño de Solución}{10}{subsection.4.2}%
|
||||
\contentsline {section}{\numberline {5}Pruebas y Despliegue}{10}{section.5}%
|
||||
\contentsline {subsection}{\numberline {5.1}Plan de Pruebas}{10}{subsection.5.1}%
|
||||
\contentsline {subsection}{\numberline {5.2}Manuales Técnicos y de Usuario}{10}{subsection.5.2}%
|
||||
\contentsline {subsection}{\numberline {5.3}Plan de Despliegue}{10}{subsection.5.3}%
|
||||
\contentsline {section}{\numberline {6}Conclusiones y Propuestas de Mejora}{10}{section.6}%
|
||||
\contentsline {section}{\numberline {7}Bibliografía}{10}{section.7}%
|
||||
\contentsline {section}{\numberline {8}Derechos de Autor y Licencia}{11}{section.8}%
|
||||
|
Loading…
Reference in New Issue
Block a user