Está en la página 1de 60

Microsoft Learning

Instalación Y Configuración
Servidores Web

Preparada para
MINISTERIO DE DEFENSA

COSAM

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,
Contenido
Tipo de servidores Web existentes. .................................................................................................... 3
Cómo configurar ASP.NET Core 2.1 en Linux ...................................................................................... 9
Instalación y configuración de Web Deploy en IIS 8.0 o posterior ................................................... 13
Instalar y configurar Web Deploy para implementaciones de administrador .................................. 24
Instalar y configurar Web Deploy para implementaciones de administrador .................................. 29
Cómo instalar y configurar IIS en Windows Server 2012 R2 ............................................................. 30
Publique una aplicación web en Azure App Service mediante Visual Studio ................................... 38
Publique una aplicación web en un sitio web mediante Visual Studio ............................................. 41
Implementar una aplicación en una carpeta local con Visual Studio ............................................... 44
Hospedar ASP.NET Core en Linux con Apache .................................................................................. 48

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,
Tipo de servidores Web existentes.
En el mundo del web hosting se suele hablar mucho sobre los servidores, servidores web,
servidores de ftp, servidores de bases de datos.
Esto algunas veces puede generar confusiones, por eso hoy nos vamos a enfocar en explicar
qué es un servidor web, para luego profundizar en los tipos de servidores web que existen.
Anteriormente hablamos sobre las diferencias entre servidor y hosting, y hoy vamos a ver
cuáles son los servidores web más populares, y daremos respuesta a la interrogante de si
realmente existe un «mejor» servidor web a nivel general.
Los servidores web son los pilares del Hosting, permiten a los clientes alquilar
almacenamiento en servidores para alojar sus archivos.
Un servidor HTTP, conocido como servidor web, es un software que se instala, corre y
procesa información desde el lado del server.
El servidor web es el encargado de despachar archivos por los protocolos HTTP y HTTPS hacia
un cliente que solicita dicha información.
Los servidores HTTP suelen almacenar por lo general páginas web, que incluyen archivos
HTML, PHP, ASP, etc, así como imágenes, vídeos y audio.
Son los encargados de servir todo lo que se pide desde una computadora cuando alguien
visita tu web, a ellos les debemos la evolución de la web tal como la vemos hoy.
En resumen, un servidor web es un equipo informático que satisface peticiones de otras
máquinas (clientes) de forma remota que trabaja usando el modelo cliente servidor.
Cuando hablamos de un servidor nos referimos a un hardware conectado a una red. El
hardware que usa justamente es una de las características de los servidores web en las que
difiere de los equipos hogareños, pues poseen potentes CPUs, muchísima memoria RAM,
discos SSD de alto rendimiento y enlaces a Internet de 1Gbps o más.
Como vemos, existen diferentes servidores web para diferentes tipos de necesidades, ahora
vamos a explorar cuáles son las clases de servidores web más conocidos hoy en día a nivel
de software.
Ejemplos de Tipos de Servidores Web
En Infranetworking hemos hablado anteriormente sobre la definición de hosting, servidores,
planes y tipos de hosting que existen.

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,
Pero nunca nos habíamos adentrado a discutir los diferentes tipos de servidores web que se
usan en Internet.
Así que manos a la obra, te mostraremos un resumen de los diferentes tipos de servidores
web más usados.

Apache
Es el web server de referencia para Internet. Apache HTTP server nació en Abril de 1996 y
hasta el día de hoy sigue vigente. Durante los pasados 25 años fue el líder indiscutido de los
servidores web, hasta que comenzó a perder popularidad frente a Microsoft IIS y Nginx.
Entre sus ventajas encontramos que es código abierto, es además software gratuito, y
multiplataforma (Windows, Linux y Unix). El stack LAMP (Linux, Apache, MySQL y PHP) lo
popularizó muchísimo durante el auge de las aplicaciones hechas en PHP desde el año 2000
en adelante.
Entre sus desventajas está su bajo rendimiento cuando se reciben miles de requests
simultáneos en procesamiento de pedidos de contenido dinámico o archivos estáticos,
quedando rezagado por su arcaica arquitectura versus nuevas y mejores opciones como
Nginx.

Nginx
Se le conoce como Nginx (pronunciado en inglés como «engine ex»), es un servidor web de
open source y gratuito (aunque también existe una versión comercial) que se destaca por su
alto rendimiento. Incluye además funciones como servidor proxy reverso HTTP, balanceador
de carga, así como POP3 y IMAP. Está disponible para Windows, Linux y Unix.
Entre sus beneficios encontramos una configuración simple, pero al mismo tiempo poderosa,
permitiendo configurarlo para integrarse nativamente con casi cualquier tecnología y
lenguaje de programación moderno. Es ideal para despachar archivos estáticos y también
dinámicos.
Además se destaca por consumir muy pocos recursos bajo entornos de muchas visitas
simultáneas, ideal no sólo para despachar visitas rápidamente, sino también para evitar
agregar nuevo hardware cuando no es necesario realmente.
Contras podemos encontrar solo una, y es que no soporta los archivos .htaccess del clásico
Apache, aunque incluye su propio lenguaje de rewrites.

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,
LiteSpeed
El servidor LiteSpeed es un software de despacho HTTP desarrollado por LiteSpeedTech, una
empresa que se ha enfocado en desarrollar una de las mejores alternativas a Apache para
entornos Linux.
Existen una versión open source y también una versión comercial que incluye diferentes
tipos de licencia.
Soporta grandes cantidades de conexiones simultáneas con un consumo de recursos
realmente bajo, incluso con aplicaciones demandantes como las que utilizan PHP. A nivel de
archivos estáticos también está a la altura de Nginx.
Se integra nativamente con paneles de control de web hosting como Plesk y cPanel, por lo
que su adopción por diferentes proveedores de alojamiento web ha sido tremendamente
exitosa. Nosotros en Infranetworking de hecho lo usamos ampliamente tanto para servidores
compartidores como dedicados.
Incluye también un sistema de cache nativo para aplicaciones como WordPress y Magento,
que lo hacen aún más rápido al despachar información desde estos populares CMS. Y lo
mejor es que a diferencia de Nginx, soporta lectura de datos desde archivos .htaccess.
Una de sus pocas contras es que la versión full es comercial, es decir, debes pagar por él,
pero salvo eso es una de las mejores opciones, aunque no tan popular como Nginx entre la
comunidad de webmasters y desarrolladores.

Microsoft IIS
Internet Information Services, también conocido como IIS, es un tipo de servidor web creado
por Microsoft específicamente para su plataforma de sistemas operativos Windows. Tuvo su
origen en el viejo «Option Pack» que corría en Windows NT, pero luego dada su creciente
popularidad se integraría con Windows Server 2003, Windows Server 2008 y en posteriores
ediciones.
Permite el procesamiento y despacho de páginas desarrolladas en tecnología ASP / ASP.NET,
aunque también vale aclarar que sirve para interpretar páginas programadas en Perl o PHP.
No es sólo un servidor web, sino también una suite de servicios para la web, ya que ofrece
también servicios de SMTP y FTP por ejemplo. Hoy se integra naturalmente con Microsoft
Azure.
Tiene como gran desventaja que es un servidor web propietario exclusivo de Windows, y por
lógica carece de integración para tantas tecnologías y lenguajes como otros servidores. Salvo
uses ASP o ASP.NET con MSSQL, siempre será mejor ir por Linux + Nginx o LiteSpeed.

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,
Lighttpd
Hace unos 10 años atrás (cuando Nginx era apenas un niño que comenzaba a dar sus
primeros pasos) al momento de buscar un servidor ligero alternativo a Apache que soportara
mejor las conexiones concurrentes de miles de usuarios simultáneos, siempre pensabas en
Lighttpd.
Lighttpd es un software escrito en C por Jan Kneschke, se distribuye bajo la licencia BSD y
está disponible para Unix y Linux.
Una de las características del servidor web es que consume realmente pocos recursos a nivel
de RAM y CPU, haciéndolo especialmente útil para VPS o Dedicados de bajos recursos,
además de que es ideal para balancear cargas por RRDNS.
Soporta comunicación e integración con FastCGI, SCGI y CGI, por lo que es capaz de servir
requests de páginas hechas en cualquier lenguaje de programación.
Lo usamos durante años, y nos «salvó» literalmente de tener que expandir infraestructuras
web de forma fácil y rápida.
Una de las desventajas de lighttpd es que no soporta .htaccess, así como que carece de
documentación extensiva y una comunidad que lo haya adoptado masivamente, a diferencia
de sus rivales Apache y Nginx.

Caddy
Hace poco tiempo descubrimos Caddy, pero nos encontramos con que es un servidor web
que está creciendo bastante.
Creado por Matt Holt y escrito en Go, es un tipo de servidor web similar a Apache pues
apunta a ser funcional, fácil de instalar y configurar por el público medio técnico.
Se destaca también por ser uno de los primeros servidores web que ofrece HTTPS de forma
automática cada vez que activas un host. Al hacerlo, tratará de validar tu sitio contra los
servidores de Let’s Encrypt con el fin de encriptar la conexión.
También soporta integración con FASTCGI, IPV6, WebSockets y HTTP2. Trae consigo un modo
de proxy inverso, soporta compresión Gzip y hosts virtuales.
Entre sus contras o desventajas encontramos que si bien ofrece un rendimiento similar a
Apache, es casi tres veces más lento al manejar conexiones concurrentes en sitios que
requieren de alto rendimiento a la hora de procesar consultas.

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,
GWS
Seguramente muchos de ustedes no conocen Google Web Server (abreviado como GWS), y
es normal, pues no se puede descargar desde ningún lugar, ya que no está disponible para
el público.
Se trata de un servidor web privado escrito en C++, que es utilizado por Google para la
mayoría de su infraestructura web. Por propios dichos de Matt Cutts de Google en un post
del año 2007, está basado en Linux.
Cuando muchas veces analizas los headers de una página web de Google, si prestas atención
verás que dice «GWS», esta es una clara indicación de que está corriendo Google Web
Server.
Se le ha visto presente potenciando servicios de búsquedas más que nada en el sitio
google.com

Cherokee
¿Has oido hablar de Cherokee? Se trata de un web server open source y alternativo a Apache
escrito por Álvaro López Ortega, que se caracteriza por ser fácil de instalar y configurar.
Suele ser una buena opción si no eres un usuario muy técnico, y buscas una interfaz pulida,
fácil de manejar y sin muchas complicaciones. Ojo, esto no quiere decir que no pueda usarse
en entornos de alta demanda, pues soporta despacho de aplicaciones con muchas
conexiones concurrentes de forma natural.
Soporta integración con tecnologías modernas como PHP, FastCGI, SCGI, CGI, uWSGI, LDAP,
así como encriptación con certificados de seguridad SSL/TSL y HTTP proxy.
Lo mejor es que además es multiplataforma pues corre en Linux, Mac OS X, Solaris, y BSD.
Durante un breve tiempo Cherokee parecía ser un serio competidor contra el clásico Apache,
pero luego fue perdiendo fuerza, hasta llegar al día de hoy donde casi nadie lo recuerda.
Sus contras: si estás acostumbrado a .htaccess encontrarás que no lo soporta (es lógico si es
un server enfocado en la performance), además de que no parece estar activo a nivel de
desarrollo últimamente. En su changelog se ven pocos commits de cambios en el último año.

NodeJS
El famoso NodeJS, también conocido simplemente como Node, es un entorno de desarrollo
open source para javascript basado en eventos que corre desde el lado del servidor.

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,
Utilizando como base el motor V8 de Javascript desarrollado por Google en Chrome, logra
ejecutar javascript del lado del servidor de forma eficiente, logrando resultados realmente
increíbles.
Se caracteriza por ser ágil y rápido para crear aplicaciones que demandan sobre todo rápida
interacción con el usuario.
Si bien muchos opinan que no es un web server en si, por sus capacidades para despachar
contenido directo por el puerto 80 (justamente como servidor web) gracias a su módulo
nativo Node HTTP module es que hemos decidido incluirlo en esta lista.
Sun Java System Web Server
Si alguna vez programaste algo en java en entornos empresariales, seguramente te habrás
topado con Sun Java System Web Server.
También conocido como SJSAS, es un tipo de servidor web con licencia BSD que está
enfocado en brindar despacho a aplicaciones hechas en Java.
Soporta integración nativa con Sun Java Studio Enterprise, Sun Java Studio Creator y
NetBeans.
Otras características incluyen soporte para PHP, WebDAV, filtros NSAPI, JDBC y compresión
HTTP.
Está disponible para Windows, Linux y Unix en sus versiones más populares.
Servidores web mas utilizados
Dentro de todos estos servidores web que mencionamos antes, existen varios que gozan de
mayor popularidad, tanto por antiguedad, como por rendimiento o tecnologías que
soportan, vamos a ver ahora cuáles son los servidores web más usados.
Este listado de servidores web más utilizados lo hemos obtenido del reporte oficial de
Netcraft de octubre de 2018 (el más reciente al momento de escribir este artículo), en él se
describen cuáles son los servidores más usados, y qué cuota de uso tienen en el mercado
global
Lista de servidores más utilizados del 2018:
Microsoft IIS
Apache
Nginx
Google GWS

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,
En plataformas de Hosting compartido en general lo más fácil, rápido y compatible es
LiteSpeed o Apache en última instancia.
Para Hosting dedicado, y a nivel general basados en nuestra experiencia de más de 15 años
en el mercado de Hosting, tras asistir y hacer setups/configuraciones en miles de servidores,
el servidor web que quizás podría catalogarse como «mejor» en términos de facilidad de
instalación y configuración, así como compatibilidad con diferentes tecnologías, lenguajes de
programación y plataformas es Nginx.
Así que si estás buscando un server que lo contemple casi todo, que sea a la vez uno de los
más rápidos del mundo y tenga una sintáxis de configuración fácil, entonces será el
recomendado.
De todos los tipos de servidores web que mencionamos: ¿Cuál es tu servidor web favorito?
¿En qué entornos y con qué tecnologías lo usas?
Si necesitas alguna ayuda para elegir el tipo de servidor web adecuado para tu página web o
infraestructura, no dudes en avisarnos, con gusto estamos para ayudarte.

Cómo configurar ASP.NET Core 2.1 en Linux

En este manual, vamos a ver cómo instalar .NET Core runtime en CentOS, cómo poner en
marcha el proyecto de ejemplo de ASP.NET Core ejecutándose en Kestrel, y cómo configurar
tanto el código como el firewall para habilitar el acceso remoto a la aplicación. Finalmente,
comento qué haría de manera diferente para el uso real de la aplicación en producción.
Paso 1 - Instalar el runtime

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,
Para ejecutar ASP.NET Core en Linux, se debe de empezar por instalar el runtime (las
bibliotecas de tiempo de ejecución) de la plataforma.
En CentOS 7, tuve que agregar un paquete de RPM que contenía las referencias del gestor de
paquetes YUM, actualizar YUM, y luego instalar el runtime de .NET Core, así:
sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm

sudo yum update


sudo yum install aspnetcore-runtime-2.1
Microsoft facilita documentación de las instrucciones similares para las diferentes
distribuciones de Linux, incluidas RHEL, Ubuntu, Debian, Fedora, CentOS, openSUSE y SLES.
Si también desea compilar y desarrollar en Linux, deberás instalar el SDK en vez del runtime.
En CentOS, instalarías el SDK con esta instrucción:
sudo yum install dotnet-sdk-2.1
Paso 2 - Publicar y desplegar
El siguiente paso es publicar y desplegar tu proyecto.
Crear un proyecto de ejemplo
Para poder hacer la prueba rápidamente, creé un nuevo proyecto demo de ASP.NET Core 2.1,
ejecutando este comando:
dotnet new razor -o CoreTest
Para que este comando funcione, deberás tener instalado el SDK y no solo el runtime, como
acabamos de ver. En mi caso, solamente ejecuté esto en mi máquina Linux para desarrollo
local, ya que en el servidor tan solo instalé el runtime.
Agregar soporte para acceso remoto (opcional)
Por defecto, el proyecto ASP.NET Core 2.1 se ejecutará en el servidor web Kestrel en localhost.
Instalar el editor de texto nano escribiendo el comando yum install nano
Si necesitas que se pueda acceder al sitio web de forma remota (externa) desde otros
ordenadores, deberás vincularlo de manera diferente.

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,
Para hacer esto, entré en los archivos del proyecto recién creado y abrí Program.cs. Aquí
agregué una llamada al método UseUrls de la siguiente manera:
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseUrls("http://0.0.0.0:5000")
.UseStartup<Startup>();
Esto vincula el sitio web ASP.NET Core a todas las direcciones IP del servidor, en lugar de solo
a localhost , que es lo que hace de manera predeterminada.
Compilar y desplegar
Para compilar el proyecto, simplemente ejecuté:
dotnet publish --configuration Release
Esto construye y coloca todos los archivos necesarios para el despliegue, de forma
predeterminada en la carpeta bin/Release/netcoreapp2.1/publish.
Para desplegar, simplemente hay que copiar todos los archivos y directorios de esta carpeta
de publicación a /home/coretest en el servidor Linux.
Con la instrucción cd carpeta se utiliza para moverse en las carpetas, digitar cd /home
Crear la carpeta coretest digitando mkdir corestest
Cambiarse a las carpeta donde compilo el proyecto(bin/Release/netcoreapp2.1/publish) y
copiarlos a las carpeta /home/coretest
Paso 3 - Ejecutar la aplicación web
Ahora que .NET Core está instalado y el proyecto está desplegado, queremos ejecutarlo.
Ejecutar Directamente
El método más simple es ir al directorio del sitio web, /home/coretest, y ejecutarlo desde la
línea de comandos:
/usr/bin/dotnet CoreTest.dll
Esto ejecuta la aplicación de inmediato, pero es susceptible a bloqueos y debe iniciarse
manualmente después de cualquier reinicio del servidor.
Ingrese la siguiente url http://0.0.0.0:5000 replace por su dirección ip

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,
Ejecutar como un servicio
Es mucho mejor ejecutar el sitio web como un servicio, de modo que se ejecute
automáticamente al arrancar el sistema, tras haberse reiniciado, y también se reinicia
automáticamente en caso de algún fallo.
Definir el servicio
Para ejecutar el sitio web como un servicio, tendrás que crear un archivo de definición de
servicio. Al mío lo llamé kestrel-coretest y lo creé en esta ubicación:
/etc/systemd/system/kestrel-coretest.service
En este archivo, agregué los siguientes contenidos:
[Unit]
Description=.NET Core Test App
[Service]
WorkingDirectory=/home/coretest
ExecStart=/usr/bin/dotnet /home/coretest/CoreTest.dll
Restart=always
RestartSec=10
SyslogIdentifier=dotnet-coretest
User=root
Environment=ASPNETCORE_ENVIRONMENT=Production
[Install]cd,,
WantedBy=multi-user.target
Tendrás que modificar la variable User a algo apropiado para tu servidor, y deberás
asegurarte de que los archivos que has desplegado tienen los permisos apropiados.
Arrancar el servicio
Después de guardar el archivo de definición del servicio, habilítalo utilizando este comando:
sudo systemctl enable kestrel-coretest.service

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,
Ahora ya puedes arrancar el servicio con:
sudo systemctl start kestrel-coretest.service
Y verifica su estado con este comando:
sudo systemctl status kestrel-coretest.service
También puedes comprobar qué aplicaciones web se están ejecutando usando:
ps -A all | grep dotnet
Esto es especialmente útil cuando se ejecutan varios sitios web en diferentes puertos, ya que
mostrará una lista de todos los que están en ejecución.
Paso 4 - Probarlo en localhost
Ahora ya puedes probar el sitio web intentando acceder a él a través de la dirección local
(localhost).
http://localhost:5000

Instalación y configuración de Web Deploy en


IIS 8.0 o posterior
Resumen
En este tutorial, mostraremos los pasos para instalar y configurar Web Deploy en IIS 8.0 o
posterior para implementaciones de administrador o no administrador. Esto significa los
pasos necesarios para permitir que un cliente use Web Deploy para publicar contenido del

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,
sitio web en el servidor, incluso si el cliente no tiene credenciales de administrador para el
servidor.
Windows 8.0 y 8.1 no vienen con el Servicio de administración web que se requiere para las
conexiones remotas. Para obtener más información, consulte Publicación remota no se
puede configurar en Windows 8.0 u 8.1 .
Instalar Web Deploy
Puede instalar Web Deploy utilizando el Instalador de plataforma web (Web PI) o el MSI de
Web Deploy.
Use el Instalador de plataforma web (Web PI) para instalar la configuración de servidor
recomendada para proveedores de alojamiento web, que incluye Web Deploy
Use Web PI para instalar Web Deploy por separado (con o sin sus dependencias)
Use el instalador de Web Deploy.
Instalación de Web Deploy como parte de la configuración recomendada del servidor para
proveedores de alojamiento web
Cuando el Instalador de plataforma web instala la Configuración de servidor recomendada
para los proveedores de alojamiento web, configura el servidor web con la implementación
más común para los proveedores de alojamiento web. Este paquete se asegura de que estén
instalados los requisitos previos de IIS 8.0 o posteriores necesarios para Web Deploy. Las
dependencias, como los objetos de administración de SQL Server y SQL Server, se
seleccionan automáticamente para la instalación y se instalan con los requisitos previos de
Web PI, como el controlador de administración de servicios web. El paquete incluye algunos
componentes opcionales, como PHP y MySQL, que puede elegir no instalar con este paquete
haciendo clic en la X junto a ellos.
La configuración de servidor recomendada para proveedores de alojamiento web se puede
instalar en Windows 2012 Server o posterior. Para obtener información sobre la instalación
en versiones anteriores de Windows Server con IIS 7, consulte Instalación y configuración de
Web Deploy en IIS 7 .
Descargue el Instalador de plataforma web .
Abrir Web PI.
En Web PI, haga clic en la barra de búsqueda en la esquina superior derecha, ingrese
"Recomendado" en Buscar y presione Entrar .

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,
Seleccione Configuración de servidor recomendada para proveedores de alojamiento web y
luego haga clic en Agregar.

Haga clic en instalar .


En la página Requisitos previos , haga clic en Acepto .
Una vez completada la instalación, haga clic en Finalizar .
Uso del instalador de plataforma web para instalar Web Deploy por separado
Puede instalar Web Deploy por separado con sus dependencias, como el Servicio de
administración web (WMSvc). Puede instalar las siguientes versiones de Web Deploy.
Web Deploy 3.5 sin SQL incluido : instala Web Deploy solo.
Web Deploy 3.5 : Web Deploy más soporte para publicación de bases de datos SQL
Web Deploy 3.5 para servidores de alojamiento : Web Deploy más dependencias IIS /
ASP.NET y soporte para la publicación de bases de datos SQL. Esto incluye dependencias para
instalar el IIS base más el Servicio de administración (requerido para la publicación no
administrativa) y PowerShell 2.0 o posterior (utilizado para realizar una configuración básica
de publicación no administrativa durante la instalación).
Si instala Web Deploy directamente en Web PI, en lugar de como parte de la Configuración
de servidor recomendada para proveedores de alojamiento web, es posible que no se
instalen las dependencias necesarias para Web Deploy.

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,
Con Web PI, Web Deploy se puede instalar en Windows 2012 Server o posterior, o Windows
8.0 o posterior. Para obtener información sobre la instalación en versiones anteriores de
Windows Server o Windows con IIS 7, consulte Instalación y configuración de Web Deploy
en IIS 7 .
Para instalar Web Deploy por separado con Web PI:
Descargue el Instalador de plataforma web .
Abra WebPI en su escritorio.
Haga clic en la barra de búsqueda en la esquina superior derecha, ingrese "Web Deploy" y
presione Entrar.

Seleccione el Web Deploy que desee y luego haga clic en Agregar.

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,
En la página Requisitos previos, haga clic en Acepto.
Una vez completada la instalación, haga clic en Finalizar.
Uso del instalador de Web Deploy para instalar Web Deploy
Puede instalar Web Deploy directamente utilizando el instalador MSI. Por lo general, no se
recomienda usar el MSI directamente para el usuario novato, ya que los productos
dependientes recomendados o requeridos pueden necesitar instalarse por separado. Las
siguientes limitaciones pueden crear problemas al usar MSI en lugar de Web PI para instalar
Web Deploy en los servidores:
El MSI no instalará objetos de administración compartida de SQL (SMO), que es necesario
para las implementaciones de la base de datos de SQL Server. Este componente puede
instalarse utilizando Web PI para habilitar las implementaciones de bases de datos de SQL
Server.
El MSI no instalará el componente del controlador del Servicio de administración web si el
Servicio de administración web no está instalado. El componente controlador es necesario
para implementaciones que no sean de administrador. El componente IIS de Windows,
incluido el Servicio de administración, debe instalarse primero para permitir que se instale el
componente del controlador.
Cuando Web Deploy se instala directamente utilizando Web Deploy MSI, el Servicio de
administración web no se configurará para implementaciones que no sean de administrador,
a menos que se instale PowerShell v2 o posterior.
Con el Instalador de Web Deploy, Web Deploy se puede instalar en Windows 2012 Server o
posterior, o Windows 8.0 o posterior.
Para instalar Web Deploy desde el archivo .msi:
Vaya a la página de descarga de Web Deploy .
En la página de descarga de Web Deploy, vaya a la sección Descargar Web Deploy y, para el
idioma que desee, seleccione x86 o x64 .

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,
Ejecute Web Deploy .msi y avance por el asistente de instalación, seleccionando las
características que desee en la página Configuración personalizada.

Configuración de un sitio para la implementación delegada sin administrador


Después de instalar Web Deploy, toda la configuración a nivel de servidor se completa para
la publicación que no sea de administrador; sin embargo, se requiere una configuración
adicional a nivel de sitio. Esta configuración del sitio se puede lograr usando PowerShell o el
Administrador IIS, como se describe a continuación.
La publicación remota no se puede configurar en Windows 8.0 u 8.1
No puede configurar la publicación remota mediante Web Deploy para un sitio alojado en IIS
en Windows 8.0 u 8.1. La razón es que las SKU del cliente para Windows no vienen con el
Servicio de administración web que se requiere para las conexiones remotas. Como
resultado, en Windows 8.0 u 8.1, el icono de Permisos del Administrador de IIS y la opción
de implementación Configurar publicación de implementación web que se requieren para
configurar la publicación remota no están disponibles en el Administrador de IIS.
Cuando utiliza el asistente Agregar roles y características para instalar el rol del Servicio de
administración en Windows Server 2012 o posterior, el Servicio de administración web se

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,
instala y habilita. El icono de Permisos del Administrador de IIS está disponible para un sitio
web en el área de Administración del Administrador de IIS, y la opción de implementación
Configurar publicación de implementación web está disponible en el menú Implementar
para un sitio web en el Administrador de IIS. Con estas características, el Servicio de
administración web le permite configurar la publicación en un servidor web desde una
computadora remota mediante Web Deploy.
Uso de PowerShell para configurar Web Deploy para un no administrador
Cree un sitio nuevo o establezca permisos en un sitio web existente para un usuario nuevo o
existente que no sea administrador utilizando scripts de Web Deploy PowerShell. Para
obtener más información, consulte scripts de PowerShell para la configuración de
Automatización Web Implementar y Web Deploy cmdlets de PowerShell .
Uso del Administrador de IIS para configurar Web Deploy para un no administrador
Los siguientes pasos configuran la publicación en un sitio existente para un usuario existente
utilizando la IU del Administrador de IIS.
Inicie el Administrador de IIS (abra el Administrador del servidor , haga clic en Herramientas y
luego abra el Administrador de IIS .
Expanda el nodo Sitios y haga clic en un sitio.En el área de Administración del panel de inicio
del sitio, haga doble clic en Permisos del Administrador de IIS .

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,
En el panel Acciones , haga clic en Permitir usuario .

En el cuadro de diálogo Permitir usuario ... , con Windows seleccionado, haga clic
en Seleccionar .

En el cuadro de diálogo Seleccionar usuario o grupo , en Ingrese el nombre del objeto para
seleccionar , ingrese el nombre de un usuario de Windows no administrador que tendrá
permisos de publicación en el sitio, con dominio. Haga clic en Verificar nombres y, luego de

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,
verificar el nombre, haga clic en Aceptar.

En el cuadro de diálogo Permitir usuario ... , haga clic en Aceptar .

Verifique que el nombre con dominio se ingrese en el panel de Permisos del Administrador
de IIS .

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,
Haga clic en el sitio que está configurando, seleccione Implementar y haga clic en Configurar
Web Implementar Publicaciones ... . Aparecerá la siguiente IU:
Nota: Si el comando Implementar no se muestra en el menú de un sitio, cierre y vuelva a abrir
el Administrador de IIS.

Haga clic en la flecha hacia abajo para Seleccionar un usuario para otorgar permisos de
publicación y seleccione el usuario que ingresó para los permisos del Administrador de IIS.

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,
Haz clic en Configurar .
Aparecerán las siguientes líneas de registro:
Publicación habilitada para 'NonAdminUser'
Control total otorgado 'NonAdminUser' en C:\inetpub\wwwroot\test
Archivo de configuración creado
correctamente C:\Users\janedoe\Desktop\CONTOSO\_johndoe\_Default Web
Site.PublishSettings
El usuario de Windows no administrador (NonAdminUser) ahora puede publicar en el sitio.

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,
Instalar y configurar Web Deploy para
implementaciones de administrador
Requisitos:
Instale Web Deploy utilizando uno de los procedimientos descritos anteriormente.
Solución de problemas comunes:
Si está actualizando una instalación existente de Web Deploy, asegúrese de reiniciar los
servicios de controlador y agente ejecutando los siguientes comandos en un símbolo del
sistema administrativo:
net stop msdepsvc y net start msdepsvc
net stop wmsvc y net start wmsvc
Asegúrese de que su firewall permita conexiones al servicio que está utilizando. De manera
predeterminada, el Servicio del agente de implementación web (MsDepSvc) escucha en el
puerto 80, y el Servicio de administración web (WmSvc, también llamado el "controlador")
escucha en el puerto 8172 de forma predeterminada.
Debe ejecutar MsDepSvc utilizando la cuenta de administrador integrada o desde una cuenta
de dominio que se haya agregado al grupo de Administradores. Un administrador local que
no sea la cuenta integrada no funcionará con MsDepSvc.
Verifique si .NET 4.0 no se ha registrado con IIS:
Síntomas: .NET 4.0 está instalado, pero no hay grupos de aplicaciones .NET 4.0 o asignaciones
de controladores en IIS. No puede buscar aplicaciones que usan .NET 4.0 (por ejemplo,
aplicaciones basadas en aplicaciones de plantilla de sitio de WebMatrix) después de
publicarlas.
Causa: su máquina tenía instalado .NET 4.0 antes de instalar IIS.
Solución: ejecute el siguiente comando para registrar .NET 4.0 con
IIS:%systemdrive%\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -
iru

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,
En el área de Administración del panel de inicio del sitio, haga doble clic en Permisos del
Administrador de IIS.

En el panel Acciones, haga clic en Permitir usuario .

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,
En el cuadro de diálogo Permitir usuario ... , con Windows seleccionado, haga clic
en Seleccionar .

En el cuadro de diálogo Seleccionar usuario o grupo , en Ingrese el nombre del objeto para
seleccionar , ingrese el nombre de un usuario de Windows no administrador que tendrá
permisos de publicación en el sitio, con dominio. Haga clic en Verificar nombres y, luego de
verificar el nombre, haga clic en Aceptar .

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,
En el cuadro de diálogo Permitir usuario ... , haga clic en Aceptar .

Verifique que el nombre con dominio se ingrese en el panel de Permisos del Administrador
de IIS .

Haga clic en el sitio que está configurando, seleccione Implementar y haga clic en Configurar
Web Implementar Publicaciones ... . Aparecerá la siguiente IU:
Nota: Si el comando Implementar no se muestra en el menú de un sitio, cierre y vuelva a
abrir el Administrador de IIS.

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,
Haga clic en la flecha hacia abajo para Seleccionar un usuario para otorgar permisos de
publicación y seleccione el usuario que ingresó para los permisos del Administrador de IIS.
Haz clic en Configurar.

Aparecerán las siguientes líneas de registro:

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,
Publicación habilitada para 'NonAdminUser'
Control total otorgado 'NonAdminUser' en C:\inetpub\wwwroot\test
Archivo de configuración creado
correctamente C:\Users\janedoe\Desktop\CONTOSO\_johndoe\_Default Web
Site.PublishSettings
El usuario de Windows no administrador (NonAdminUser) ahora puede publicar en el sitio.

Instalar y configurar Web Deploy para


implementaciones de administrador
Requisitos:
Instale Web Deploy utilizando uno de los procedimientos descritos anteriormente.
Solución de problemas comunes:
Si está actualizando una instalación existente de Web Deploy, asegúrese de reiniciar los
servicios de controlador y agente ejecutando los siguientes comandos en un símbolo del
sistema administrativo:
net stop msdepsvc y net start msdepsvc
net stop wmsvc y net start wmsvc

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,
Asegúrese de que su firewall permita conexiones al servicio que está utilizando. De manera
predeterminada, el Servicio del agente de implementación web (MsDepSvc) escucha en el
puerto 80, y el Servicio de administración web (WmSvc, también llamado el "controlador")
escucha en el puerto 8172 de forma predeterminada.
Debe ejecutar MsDepSvc utilizando la cuenta de administrador integrada o desde una cuenta
de dominio que se haya agregado al grupo de Administradores. Un administrador local que
no sea la cuenta integrada no funcionará con MsDepSvc.
Verifique si .NET 4.0 no se ha registrado con IIS:
Síntomas : .NET 4.0 está instalado, pero no hay grupos de aplicaciones .NET 4.0 o
asignaciones de controladores en IIS. No puede buscar aplicaciones que usan .NET 4.0 (por
ejemplo, aplicaciones basadas en aplicaciones de plantilla de sitio de WebMatrix) después
de publicarlas.
Causa : su máquina tenía instalado .NET 4.0 antes de instalar IIS.
Solución : ejecute el siguiente comando para registrar .NET 4.0 con
IIS:%systemdrive%\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -
iru

Cómo instalar y configurar IIS en Windows


Server 2012 R2
Ya hemos visto cómo instalar IIS (Internet Information Services) en Windows 8.1 con fines
de prueba. Ahora vamos a ver cómo instalar IIS en un servidor para alojar vuestro sitio web
con fines de producción.
No hay mucha diferencia entre los dos procedimientos. La instalación es rápida y sencilla.
Primer paso: Instalar el rol del servidor web (IIS)
Abrid el Administrador del servidor y haced clic en Agregar roles y características:

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,
Dirigíos a la pestaña Roles del servidor:

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,
Seleccionar, Servidor Web (IIS):

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,
Haced clic en Agregar características:

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,
Ignorar la pestaña Características y seguid adelante:

Haced clic en Siguiente:

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,
La configuración por defecto es correcta. Haced clic en Siguiente:

Haced clic en Instalar:

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,
¡Instalación completada!

Segundo paso: Configurar IIS


Volved al Administrador del servidor. Seleccionad Administrador de Internet Information
Services (IIS) en el menú Administrar:

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,
Hacer clic en Agregar sitio web:

Especificar al menos el nombre del sitio y la ruta. Hacer clic en Aceptar:

Nuestro primer sitio web ya está listo para el acceso.

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,
Publique una aplicación web en Azure App
Service mediante Visual Studio
Para las aplicaciones ASP.NET, ASP.NET Core, Node.js y .NET Core, publique en Azure App
Service o Azure App Service para Linux (con contenedores) mediante uno de los métodos
siguientes.
Para la implementación continua (o automática) de aplicaciones, use Azure DevOps con
Azure Pipelines.
Para la implementación de un solo uso (o manual) de aplicaciones, use la herramienta de
publicación de Visual Studio para implementar aplicaciones ASP.NET, ASP.NET Core, Node.js
y .NET Core en Azure App Service o App Service para Linux (con contenedores). En el caso de
las aplicaciones de Python, siga los pasos de Publicación en Azure App Service (Python).
En este artículo se describe cómo usar la herramienta de publicación para la implementación
de un solo uso.
Requisitos previos
Visual Studio 2019 instalado con las cargas de trabajo adecuadas para el lenguaje elegido:
ASP.NET: Desarrollo de ASP.NET y web
Node.js: Desarrollo de Node.js
Una suscripción a Azure. Si ya no tiene suscripción, puede registrarse gratuitamente, lo que
incluye 200 € de crédito durante 30 días y 12 meses de servicios populares gratis.
Un proyecto de ASP.NET, ASP.NET Core, .NET Core o Node.js. Si no dispone de un proyecto,
seleccione una de las siguientes opciones:
ASP.NET Core: Siga Inicio rápido: Uso de Visual Studio para crear la primera aplicación web
ASP.NET Core, o bien use Archivo > Nuevo proyecto, seleccione Visual C# > .NET Core y,
después, Aplicación web ASP.NET Core. Cuando se le solicite, seleccione la plantilla
Aplicación web (Modelo-Vista-Controlador) , asegúrese de que la opción Sin autenticación
está seleccionada y después elija Aceptar.
Node.js: Siga Inicio rápido: Uso de Visual Studio para crear su primera aplicación Node.js, o
bien use Archivo > Nuevo proyecto, seleccione JavaScript y, después, Aplicación web en
blanco de Node.js.
Asegúrese de compilar el proyecto mediante el comando de menú Compilar > Compilar
solución antes de seguir los pasos de implementación.

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,
Publicación en Azure App Service
En el Explorador de soluciones, haga clic con el botón derecho en el proyecto y elija Publicar
(o use el elemento de menú Compilar > Publicar).

Si previamente ha configurado algún perfil de publicación, aparecerá el panel Publicar, en


cuyo caso seleccione Crear nuevo perfil.
En el cuadro de diálogo Elegir un destino de publicación, elija App Service.

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,
Seleccione Publicar. Aparecerá el cuadro de diálogo Crear servicio de aplicaciones. Inicie
sesión con la cuenta de Azure, si fuera necesario; después la configuración predeterminada
de App Service rellenará los campos.

Seleccione Crear. Visual Studio implementará la aplicación en Azure App Service y la


aplicación web se cargará en el explorador. El panel de propiedades del proyecto Publicar
muestra la dirección URL del sitio y otros detalles.

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,
Limpiar los recursos
En los pasos anteriores, creó recursos de Azure en un grupo de recursos. Si no prevé
necesitar estos recursos en el futuro, puede eliminarlos mediante la eliminación del grupo
de recursos. En el menú izquierdo de Azure Portal, seleccione Grupos de recursos y luego
myResourceGroup. En la página del grupo de recursos, asegúrese de que los recursos que
aparecen son los que quiere eliminar. Seleccione Eliminar, escriba myResourceGroup en el
cuadro de texto y luego seleccione Eliminar.

Publique una aplicación web en un sitio web


mediante Visual Studio
Puede usar la herramienta Publicar para publicar aplicaciones ASP.NET, ASP.NET Core, .NET
Core y Python en una sitio web desde Visual Studio. En Node.js, se admiten los pasos, pero
la interfaz de usuario es diferente.
Requisitos previos
Visual Studio 2019 instalado con las cargas de trabajo adecuadas para el lenguaje elegido:
ASP.NET: Desarrollo de ASP.NET y web
Python: Desarrollo de Python
Node.js: Desarrollo de Node.js
Un proyecto de ASP.NET, ASP.NET Core, Python o Node.js. Si no dispone de un proyecto,
seleccione una de las siguientes opciones:
ASP.NET Core: Siga Inicio rápido: Uso de Visual Studio para crear la primera aplicación web
ASP.NET Core, o bien use Archivo > Nuevo proyecto, seleccione Visual C# > .NET Core y,
después, Aplicación web ASP.NET Core. Cuando se le solicite, seleccione la plantilla
Aplicación web (Modelo-Vista-Controlador) , asegúrese de que la opción Sin autenticación
está seleccionada y después elija Aceptar.
Python: Siga Inicio rápido: Creación de la primera aplicación web de Python con Visual Studio,
o bien use Archivo > Nuevo proyecto, seleccione Python y, después, Proyecto web de Flask.
Node.js: Siga Inicio rápido: Uso de Visual Studio para crear su primera aplicación Node.js, o
bien use Archivo > Nuevo proyecto, seleccione JavaScript y, después, Aplicación web en
blanco de Node.js.
Asegúrese de compilar el proyecto mediante el comando de menú Compilar > Compilar
solución antes de seguir los pasos de implementación.

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,
Publicar en un sitio web
En el Explorador de soluciones, haga clic con el botón derecho en el proyecto y elija Publicar
(o use el elemento de menú Compilar > Publicar).

Si previamente ha configurado algún perfil de publicación, aparece el panel Publicar.


Seleccione Crear nuevo perfil.
En el cuadro de diálogo Elegir un destino de publicación, elija IIS, FTP, etc.

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,
Seleccione Publicar. Se abre el cuadro de diálogo de configuración de perfil de publicación.

En el campo Método de publicación, elija un método como Web Deploy o FTP. La


configuración que se ve a continuación corresponde al método de publicación. Web Deploy
simplifica la implementación de aplicaciones web y sitios web en servidores IIS y debe
instalarse como una aplicación en el servidor. Use el Instalador de plataformaweb para
instalarlo.
Configure las opciones necesarias del método de publicación y seleccione Validar conexión.
Si el servidor o el destino está disponible y la configuración es correcta, aparece un mensaje
que indica que la conexión se ha validado y ya está listo para publicar.

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,
Seleccione Configuración para configurar otras opciones de implementación, como si se va
a implementar una configuración de depuración o versión y seleccione Guardar. Si está
depurando de forma remota, se requiere una configuración de depuración.
Para publicar, seleccione Publicar. La ventana de salida muestra el progreso y los resultados
de la implementación.

Implementar una aplicación en una carpeta


local con Visual Studio
Puede usar la herramienta Publicar para publicar aplicaciones ASP.NET, ASP.NET Core, .NET
Core y Python en una carpeta local desde Visual Studio. En Node.js, se admiten los pasos,
pero la interfaz de usuario es diferente.
Requisitos previos
Visual Studio 2019 instalado con las cargas de trabajo adecuadas para el lenguaje elegido:

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,
ASP.NET: Desarrollo de ASP.NET y web
Python: Desarrollo de Python
Node.js: Desarrollo de Node.js
Un proyecto de ASP.NET, ASP.NET Core, Python o Node.js. Si no dispone de un proyecto,
seleccione una de las siguientes opciones:
ASP.NET Core: Siga Inicio rápido: Uso de Visual Studio para crear la primera aplicación web
ASP.NET Core, o bien use Archivo > Nuevo proyecto, seleccione Visual C# > .NET Core y,
después, Aplicación web ASP.NET Core. Cuando se le solicite, seleccione la plantilla
Aplicación web (Modelo-Vista-Controlador) , asegúrese de que la opción Sin autenticación
está seleccionada y después elija Aceptar.
Python: Siga Inicio rápido: Creación de la primera aplicación web de Python con Visual Studio,
o bien use Archivo > Nuevo proyecto, seleccione Python y, después, Proyecto web de Flask.
Node.js: Siga Inicio rápido: Uso de Visual Studio para crear su primera aplicación Node.js, o
bien use Archivo > Nuevo proyecto, seleccione JavaScript y, después, Aplicación web en
blanco de Node.js.
Asegúrese de compilar el proyecto mediante el comando de menú Compilar > Compilar
solución antes de seguir los pasos de implementación.
Implementar en una carpeta local
En el Explorador de soluciones, haga clic con el botón derecho en el proyecto y elija
Publicar (o use el elemento de menú Compilar > Publicar).

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,
Si previamente ha configurado algún perfil de publicación, aparece el panel Publicar.
Seleccione Crear nuevo perfil.
En el cuadro de diálogo Elegir un destino de publicación, elija Carpeta.

Especifique una ruta de acceso o seleccione Examinar para especificar una carpeta local.
Seleccione Publicar. Visual Studio compila el proyecto y lo publica en la carpeta
especificada. Aparece el panel de propiedades del proyecto Publicar, que muestra un
resumen de perfil.

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,
Para configurar las opciones de implementación, seleccione Configurar en el resumen de
perfil y luego la pestaña Configuración.

Configure opciones como si se va a implementar una configuración de depuración o versión


y seleccione Guardar.
Para volver a publicar, seleccione Publicar.

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,
Hospedar ASP.NET Core en Linux con Apache
Mediante esta guía, aprenda a configurar Apache como servidor proxy inverso en CentOS 7
para redirigir el tráfico HTTP a una aplicación web ASP.NET Core que se ejecuta en el servidor
Kestrel. La extensión mod_proxy y los módulos relacionados crean el proxy inverso del
servidor.
Requisitos previos
Servidor que ejecute CentOS 7, con una cuenta de usuario estándar con privilegios sudo.
Tener .NET Core Runtime instalado en el servidor.
1.Vaya a la página de descargas de .NET Core.
2.Seleccione el tiempo de ejecución más reciente que no sea versión preliminar en la lista
Runtime.

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,
3. Seleccione y siga las instrucciones relativas a CentOS/Oracle.
Disponer de una aplicación de ASP.NET Core existente.
Publicar y copiar en la aplicación
Configure la aplicación para una implementación dependiente de Framework.
Si la aplicación se ejecuta localmente y no está configurada para realizar conexiones seguras
(HTTPS), adopte cualquiera de los métodos siguientes:
Configure la aplicación para controlar las conexiones locales seguras. Para obtener más
información, vea la sección Configuración de HTTPS.
Quite https://localhost:5001 (si existe) de la propiedad applicationUrl en el archivo
Properties/launchSettings.json.
Ejecute dotnet publish desde el entorno de desarrollo para empaquetar una aplicación en
un directorio (por ejemplo, bin/Release/<target_framework_moniker>/publish) que se
pueda ejecutar en el servidor:
.NET Core CLICopiar
dotnet publish --configuration Release
La aplicación también se puede publicar como una implementación independiente si prefiere
no mantener .NET Core Runtime en el servidor.
Copie la aplicación de ASP.NET Core en el servidor usando una herramienta que se integre
en el flujo de trabajo de la organización (como SCP o SFTP). Es habitual encontrar las
aplicaciones web en el directorio var (por ejemplo, var/www/helloapp).
Nota
En un escenario de implementación de producción, un flujo de trabajo de integración
continua lleva a cabo la tarea de publicar la aplicación y copiar los recursos en el servidor.
Instalar Apache
Actualice los paquetes de CentOS a sus versiones estables más recientes:
bashCopiar
sudo yum update -y

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,
Instale el servidor web de Apache en CentOS con un único comando yum:
bashCopiar
sudo yum -y install httpd mod_ssl
Salida de ejemplo después de ejecutar el comando:
bashCopiar
Downloading packages:
httpd-2.4.6-40.el7.centos.4.x86_64.rpm | 2.7 MB 00:00:01
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : httpd-2.4.6-40.el7.centos.4.x86_64 1/1
Verifying : httpd-2.4.6-40.el7.centos.4.x86_64 1/1
Installed:
httpd.x86_64 0:2.4.6-40.el7.centos.4
Complete!
Nota
En este ejemplo, la salida refleja httpd.86_64, puesto que la versión de CentOS 7 es de 64
bits. Para comprobar dónde está instalado Apache, ejecute whereis httpd desde un símbolo
del sistema.
Configurar Apache
Los archivos de configuración de Apache se encuentran en el directorio /etc/httpd/conf.d/.
Todos los archivos que tengan la extensión .conf se procesan en orden alfabético, además
de los archivos de configuración del módulo de /etc/httpd/conf.modules.d/, que contiene
todos los archivos de configuración necesarios para cargar los módulos.
Cree un archivo de configuración denominado helloapp.conf para la aplicación:

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,
Copiar
<VirtualHost *:80>
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:5000/
ProxyPassReverse / http://127.0.0.1:5000/
ServerName www.example.com
ServerAlias *.example.com
ErrorLog /var/log/httpd/helloapp-error.log
CustomLog /var/log/httpd/helloapp-access.log common
</VirtualHost>
El bloque VirtualHost puede aparecer varias veces en uno o varios archivos en un servidor.
En el archivo de configuración anterior, Apache acepta tráfico público en el puerto 80. El
dominio www.example.com se atiende y el alias *.example.com se resuelve en el mismo sitio
web. Para más información, consulte Name-based virtual host support (Compatibilidad con
el host virtual basado en nombres). Las solicitudes se redirigen mediante proxy en la raíz al
puerto 5000 del servidor en 127.0.0.1. Para la comunicación bidireccional, se requieren
ProxyPass y ProxyPassReverse. Para cambiar la IP o el puerto de Kestrel, vea Kestrel: Endpoint
configuration (Kestrel: configuración de los puntos de conexión).
Advertencia
Si no se especifica una directiva de ServerName correcta en VirtualHost, el bloque expone la
aplicación a las vulnerabilidades de seguridad. Los enlaces de carácter comodín de
subdominio (por ejemplo, *.example.com) no presentan este riesgo de seguridad si se
controla todo el dominio primario (a diferencia de *.com, que sí es vulnerable). Vea la sección
5.4 de RFC 7230 para obtener más información.
El registro se puede configurar por VirtualHost con las directivas ErrorLog y CustomLog.
ErrorLog es la ubicación donde el servidor registra los errores, y CustomLog establece el
nombre de archivo y el formato del archivo de registro. En este caso, aquí es donde se
registra la información de la solicitud. Hay una línea para cada solicitud.
Guarde el archivo y pruebe la configuración. Si se pasa todo, la respuesta debe ser Syntax
[OK].

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,
bashCopiar
sudo service httpd configtest
Reinicie Apache:
bashCopiar
sudo systemctl restart httpd
sudo systemctl enable httpd
Supervisión de la aplicación
Apache está configurado ahora para reenviar las solicitudes efectuadas a http://localhost:80
en la aplicación ASP.NET Core que se ejecuta en Kestrel en http://127.0.0.1:5000. En cambio,
Apache no está configurado para administrar el proceso de Kestrel. Use systemd y cree un
archivo de servicio para iniciar y supervisar la aplicación web subyacente. systemd es un
sistema de inicio que proporciona muchas características eficaces para iniciar, detener y
administrar procesos.
Crear el archivo de servicio
Cree el archivo de definición de servicio:
bashCopiar
sudo nano /etc/systemd/system/kestrel-helloapp.service
Un archivo de servicio de ejemplo para la aplicación:
Copiar
[Unit]
Description=Example .NET Web API App running on CentOS 7
[Service]
WorkingDirectory=/var/www/helloapp
ExecStart=/usr/local/bin/dotnet /var/www/helloapp/helloapp.dll
Restart=always
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec=10
KillSignal=SIGINT

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,
SyslogIdentifier=dotnet-example
User=apache
Environment=ASPNETCORE_ENVIRONMENT=Production
[Install]
WantedBy=multi-user.target
Si el usuario apache no se usa en la configuración, primero se debe crear el usuario y se le
debe conceder la propiedad adecuada de los archivos.
Protección de datos
Hay varios softwares intermedios de ASP.NET Core que utilizan la pila de protección de datos
de ASP.NET Core, incluidos los de autenticación, como el de cookies, y las protecciones de
falsificación de solicitud entre sitios (CSRF). Aunque el código de usuario no llame a las API
de protección de datos, esta se debe configurar para crear un almacén de claves
criptográficas persistente. Si no se configura la protección de datos, las claves se conservan
en memoria y se descartan cuando se reinicia la aplicación.
Si el conjunto de claves se almacena en memoria cuando se reinicia la aplicación:
Todos los tokens de autenticación basados en cookies se invalidan.
Los usuarios tienen que iniciar sesión de nuevo en la siguiente solicitud.
Ya no se pueden descifrar los datos protegidos con el conjunto de claves. Esto puede incluir
tokens CSRF y cookies de TempData de ASP.NET Core MVC.
Para configurar la protección de datos de modo que sea persistente y permita cifrar el anillo
de claves, consulte:
Proveedores de almacenamiento de claves en ASP.NET Core
Cifrado de claves en reposo en ASP.NET Core
Protección de la nube
Configurar el firewall
Firewalld es un demonio dinámico para administrar el firewall con compatibilidad con zonas
de red. Los puertos y el filtrado de paquetes se pueden seguir administrando mediante
iptables. Firewalld debe instalarse de forma predeterminada. yum puede usarse para instalar
el paquete o comprobar que está instalado.

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,
bashCopiar
sudo yum install firewalld -y
Use firewalld para abrir solo los puertos necesarios para la aplicación. En este caso se usan
los puertos 80 y 443. Los siguientes comandos establecen de forma permanente que se
abran los puertos 80 y 443:
bashCopiar
sudo firewall-cmd --add-port=80/tcp --permanent
sudo firewall-cmd --add-port=443/tcp --permanent
Vuelva a cargar la configuración del firewall. Compruebe los servicios y puertos disponibles
en la zona predeterminada. Hay opciones disponibles si se inspecciona firewall-cmd -h.
bashCopiar
sudo firewall-cmd --reload
sudo firewall-cmd --list-all
bashCopiar
public (default, active)
interfaces: eth0
sources:
services: dhcpv6-client
ports: 443/tcp 80/tcp
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
Configuración de HTTPS
Configuración de la aplicación para conexiones locales seguras (HTTPS)

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,
El comando dotnet run usa el archivo Properties/launchSettings.json de la aplicación, que
configura la aplicación para que escuche en las direcciones URL proporcionadas por la
propiedad applicationUrl (por ejemplo, https://localhost:5001;http://localhost:5000).
Configure la aplicación para que use un certificado en el desarrollo para el comando dotnet
run o el entorno de desarrollo (F5 o CTRL+F5 en Visual Studio Code) mediante uno de los
siguientes enfoques:
Reemplace el certificado predeterminado de configuración (recomendado)
KestrelServerOptions.ConfigureHttpsDefaults
Configure el proxy inverso para conexiones de cliente seguras (HTTPS)
Para configurar Apache para HTTPS, se usa el módulo mod_ssl. Cuando se instaló el módulo
httpd, también lo hizo el módulo mod_ssl. Si aún no se ha instalado, use yum para agregarlo
a la configuración.
bashCopiar
sudo yum install mod_ssl
Para usar HTTPS, instale el módulo mod_rewrite para habilitar la reescritura de direcciones
URL:
bashCopiar
sudo yum install mod_rewrite
Modifique el archivo helloapp.conf para permitir la reescritura de direcciones URL y proteger
la comunicación en el puerto 443:
Copiar
<VirtualHost *:*>
RequestHeader set "X-Forwarded-Proto" expr=%{REQUEST_SCHEME}
</VirtualHost>
<VirtualHost *:80>
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,
</VirtualHost>
<VirtualHost *:443>
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:5000/
ProxyPassReverse / http://127.0.0.1:5000/
ErrorLog /var/log/httpd/helloapp-error.log
CustomLog /var/log/httpd/helloapp-access.log common
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:!RC4+RSA:+HIGH:+MEDIUM:!LOW:!RC4
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
</VirtualHost>
Nota
En este ejemplo se usa un certificado generado localmente. SSLCertificateFile debe ser el
archivo de certificado principal para el nombre de dominio. SSLCertificateKeyFile debe ser el
archivo de claves generado al crear el CSR. SSLCertificateChainFile debe ser el archivo de
certificado intermedio (si existe) proporcionado por la entidad de certificación.
Guarde el archivo y pruebe la configuración.
bashCopiar
sudo service httpd configtest
Reinicie Apache:
bashCopiar
sudo systemctl restart httpd
Sugerencias adicionales de Apache
Encabezados adicionales
Para protegerse frente a ataques malintencionados, hay unos encabezados que se deben
modificar o agregar. Asegúrese de que el módulo mod_headers está instalado.

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,
bashCopiar
sudo yum install mod_headers
Protección de Apache de los ataques de secuestro de clic
El secuestro de clic, también conocido como redireccionamiento de interfaz de usuario, es
un ataque malintencionado donde al visitante de un sitio web se le engaña para que haga
clic en un vínculo o botón de una página distinta de la que actualmente está visitando. Use
X-FRAME-OPTIONS para proteger el sitio.
Para mitigar los ataques de secuestro de clic:
1.Edite el archivo httpd.conf.
bashCopiar
sudo nano /etc/httpd/conf/httpd.conf
Agregue la línea Header append X-FRAME-OPTIONS "SAMEORIGIN".
2. Guarde el archivo.
3. Reinicie Apache.
Examen de tipo MIME
El encabezado X-Content-Type-Options impide que Internet Explorer examine MIME (de
forma que el elemento Content-Type de un archivo se determina a partir del contenido del
archivo). Si el servidor establece el encabezado Content-Type en text/html con la opción
nosniff establecida, Internet Explorer representa el contenido como text/html sin tener en
cuenta el contenido del archivo.
Edite el archivo httpd.conf.
bashCopiar
sudo nano /etc/httpd/conf/httpd.conf
Agregue la línea Header set X-Content-Type-Options "nosniff". Guarde el archivo. Reinicie
Apache.
Equilibrio de carga
En este ejemplo se muestra cómo instalar y configurar Apache en CentOS 7 y Kestrel en el
mismo equipo de la instancia. Para no tener un único punto de error, el uso de

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,
mod_proxy_balancer y la modificación de VirtualHost permitirían administrar varias
instancias de las aplicaciones web detrás del servidor proxy de Apache.
bashCopiar
sudo yum install mod_proxy_balancer
En el archivo de configuración que se muestra a continuación, se configura una instancia
adicional de helloapp para que se ejecute en el puerto 5001. La sección Proxy se establece
con una configuración de equilibrador con dos miembros para equilibrar la carga byrequests.
Copiar
<VirtualHost *:*>
RequestHeader set "X-Forwarded-Proto" expr=%{REQUEST_SCHEME}
</VirtualHost>
<VirtualHost *:80>
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
</VirtualHost>
<VirtualHost *:443>
ProxyPass / balancer://mycluster/
ProxyPassReverse / http://127.0.0.1:5000/
ProxyPassReverse / http://127.0.0.1:5001/
<Proxy balancer://mycluster>
BalancerMember http://127.0.0.1:5000
BalancerMember http://127.0.0.1:5001
ProxySet lbmethod=byrequests
</Proxy>

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,
<Location />
SetHandler balancer
</Location>
ErrorLog /var/log/httpd/helloapp-error.log
CustomLog /var/log/httpd/helloapp-access.log common
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:!RC4+RSA:+HIGH:+MEDIUM:!LOW:!RC4
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
</VirtualHost>
Límites de velocidad
Use mod_ratelimit, que se incluye en el módulo httpd; el ancho de banda de los clientes
puede ser limitado:
bashCopiar
sudo nano /etc/httpd/conf.d/ratelimit.conf
En el archivo de ejemplo se limita el ancho de banda a 600 KB/s en la ubicación raíz:
Copiar
<IfModule mod_ratelimit.c>
<Location />
SetOutputFilter RATE_LIMIT
SetEnv rate-limit 600
</Location>
</IfModule>
Campos del encabezado de solicitud más largos

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,
La configuración predeterminada del servidor proxy normalmente limita los campos de
encabezado de la solicitud a 8.190 bytes. Una aplicación puede requerir campos con una
longitud mayor que la predeterminada (por ejemplo, las aplicaciones que usan Azure Active
Directory). Si se requieren campos más largos, es necesario ajustar la directiva
LimitRequestFieldSize del servidor proxy. El valor que se aplica depende del escenario. Para
obtener más información, consulte la documentación del servidor.
Advertencia
No aumente el valor predeterminado de LimitRequestFieldSize a menos que sea necesario.
El aumento de este valor incrementa el riesgo de saturación del búfer (desbordamiento) y
ataques por denegación de servicio (DoS) realizados por usuarios malintencionados.

Corporación Orbital S.A. de C.V.


13 calle pnte. Y pasaje Sagrado Corazón No. 810 Colonia Escalón
San Salvador, El Salvador, C.A.
Teléfonos: (503)2204-4700,

También podría gustarte