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
|
% TODO: finish
|
||||||
|
|
||||||
Entre los programas de servidores HTTP existen dos candidatos principales: Nginx
|
Entre los programas de servidores HTTP existen dos candidatos principales: Nginx
|
||||||
y Apache.
|
y Apache. Aunque si quisiésemos instalar nuestra solución en una máquina de
|
||||||
% TODO: finish
|
{\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
|
Finalmente, precisamos un lenguaje de programación por el cual podemos enviar un
|
||||||
correo al administrador de la red con la información pertinente.
|
correo al administrador de la red con la información pertinente del intento de
|
||||||
% TODO: finish
|
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:
|
% Software Dependencies:
|
||||||
% - Bind9/Named [PowerDNS,MaraDNS,NSD,KnotDNS]
|
% - Bind9/Named [PowerDNS,MaraDNS,NSD,KnotDNS]
|
||||||
% https://en.wikipedia.org/wiki/Comparison_of_DNS_server_software
|
% 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}
|
\subsection{Diseño de Solución}
|
||||||
\section{Pruebas y Despliegue}
|
\section{Pruebas y Despliegue}
|
||||||
|
@ -12,11 +12,11 @@
|
|||||||
\contentsline {subsection}{\numberline {4.1}Análisis de Requisitos}{4}{subsection.4.1}%
|
\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.1}Requisitos Hardware}{4}{subsubsection.4.1.1}%
|
||||||
\contentsline {subsubsection}{\numberline {4.1.2}Requisitos Software}{6}{subsubsection.4.1.2}%
|
\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 {subsection}{\numberline {4.2}Diseño de Solución}{10}{subsection.4.2}%
|
||||||
\contentsline {section}{\numberline {5}Pruebas y Despliegue}{9}{section.5}%
|
\contentsline {section}{\numberline {5}Pruebas y Despliegue}{10}{section.5}%
|
||||||
\contentsline {subsection}{\numberline {5.1}Plan de Pruebas}{9}{subsection.5.1}%
|
\contentsline {subsection}{\numberline {5.1}Plan de Pruebas}{10}{subsection.5.1}%
|
||||||
\contentsline {subsection}{\numberline {5.2}Manuales Técnicos y de Usuario}{9}{subsection.5.2}%
|
\contentsline {subsection}{\numberline {5.2}Manuales Técnicos y de Usuario}{10}{subsection.5.2}%
|
||||||
\contentsline {subsection}{\numberline {5.3}Plan de Despliegue}{9}{subsection.5.3}%
|
\contentsline {subsection}{\numberline {5.3}Plan de Despliegue}{10}{subsection.5.3}%
|
||||||
\contentsline {section}{\numberline {6}Conclusiones y Propuestas de Mejora}{9}{section.6}%
|
\contentsline {section}{\numberline {6}Conclusiones y Propuestas de Mejora}{10}{section.6}%
|
||||||
\contentsline {section}{\numberline {7}Bibliografía}{9}{section.7}%
|
\contentsline {section}{\numberline {7}Bibliografía}{10}{section.7}%
|
||||||
\contentsline {section}{\numberline {8}Derechos de Autor y Licencia}{10}{section.8}%
|
\contentsline {section}{\numberline {8}Derechos de Autor y Licencia}{11}{section.8}%
|
||||||
|
Loading…
Reference in New Issue
Block a user