Cómo instalar Angular en Ubuntu 22.04
Angular.js es un framework JavaScript gratuito y de código abierto que se utiliza para crear aplicaciones dinámicas. Te permite utilizar HTML como lenguaje de plantilla para ampliar la sintaxis de HTML y expresar los componentes de tu aplicación de forma clara y sucinta. Ofrece un conjunto de herramientas para desarrollar, actualizar y probar el código. Tiene muchas funciones, como gestión de formularios, enrutamiento, etc.
Este tutorial te mostrará cómo instalar Angular.js con Nginx como proxy inverso en Ubuntu 22.04.
Requisitos previos
- Un servidor que ejecute Ubuntu 22.04.
- Una contraseña de root configurada en el servidor.
Cómo empezar
Antes de empezar, es una buena idea actualizar todos los paquetes del sistema a la última versión. Puedes actualizarlos todos ejecutando el siguiente comando:
apt update -y apt upgrade -y
Una vez actualizados todos los paquetes, puedes instalar otras dependencias necesarias con el siguiente comando:
apt install curl gnupg2 gnupg git wget -y
Una vez que hayas terminado, puedes pasar al siguiente paso.
Instalar Node.js
También necesitarás instalar la última versión estable de Node.js de tu servidor. Primero, añade el repositorio de Node.js utilizando el siguiente comando:
curl -fsSL https://deb.nodesource.com/setup_lts.x | bash -
Deberías obtener la siguiente salida:
## Run `sudo apt-get install -y nodejs` to install Node.js 16.x and npm ## You may also need development tools to build native addons: sudo apt-get install gcc g++ make ## To install the Yarn package manager, run: curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/yarnkey.gpg >/dev/null echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" | sudo tee /etc/apt/sources.list.d/yarn.list sudo apt-get update && sudo apt-get install yarn
A continuación, instala el paquete Node.js con el siguiente comando:
apt install nodejs
Una vez instalado Node.js, puedes verificar la versión de Node utilizando el siguiente comando:
node --version
Obtendrás la siguiente salida:
v16.17.0
Instalar Angular CLI
A continuación, tendrás que instalar Angular CLI en tu servidor. Angular CLI es una herramienta de línea de comandos que te permite crear y gestionar una aplicación Angular a través de una interfaz de línea de comandos.
En primer lugar, actualiza el paquete NPM a la última versión con el siguiente comando:
npm install npm@latest -g
A continuación, instala Angular CLI con el siguiente comando:
npm install -g @angular/cli
Una vez instalada la CLI de Angular, puedes verificar la versión de Angular con el siguiente comando:
ng version
Deberías obtener la siguiente salida:
Global setting: enabled Local setting: No local workspace configuration file. Effective status: enabled _ _ ____ _ ___ / \ _ __ __ _ _ _| | __ _ _ __ / ___| | |_ _| / ? \ | '_ \ / _` | | | | |/ _` | '__| | | | | | | / ___ \| | | | (_| | |_| | | (_| | | | |___| |___ | | /_/ \_\_| |_|\__, |\__,_|_|\__,_|_| \____|_____|___| |___/ Angular CLI: 14.2.3 Node: 16.17.0 Package Manager: npm 8.19.2 OS: linux x64 Angular: ... Package Version ------------------------------------------------------ @angular-devkit/architect 0.1402.3 (cli-only) @angular-devkit/core 14.2.3 (cli-only) @angular-devkit/schematics 14.2.3 (cli-only) @schematics/angular 14.2.3 (cli-only)
Crear una aplicación Angular de ejemplo
En esta sección, crearemos una aplicación Angular de ejemplo.
Ejecuta el siguiente comando para crear una nueva aplicación llamada myapp:
ng new myapp
Obtendrás la siguiente salida:
? Would you like to add Angular routing? Yes ? Which stylesheet format would you like to use? CSS CREATE myapp/src/styles.css (80 bytes) CREATE myapp/src/test.ts (749 bytes) CREATE myapp/src/assets/.gitkeep (0 bytes) CREATE myapp/src/environments/environment.prod.ts (51 bytes) CREATE myapp/src/environments/environment.ts (658 bytes) CREATE myapp/src/app/app-routing.module.ts (245 bytes) CREATE myapp/src/app/app.module.ts (393 bytes) CREATE myapp/src/app/app.component.css (0 bytes) CREATE myapp/src/app/app.component.html (23115 bytes) CREATE myapp/src/app/app.component.spec.ts (1070 bytes) CREATE myapp/src/app/app.component.ts (209 bytes) ? Packages installed successfully.
A continuación, cambia el directorio al directorio myapp y ejecuta la aplicación con el siguiente comando:
cd myapp ng serve --host 0.0.0.0 --port 8000
Si todo va bien, obtendrás la siguiente salida:
? Would you like to share pseudonymous usage data about this project with the Angular Team at Google under Google's Privacy Policy at https://policies.google.com/privacy. For more details and how to change this setting, see https://angular.io/analytics. Yes ? Browser application bundle generation complete. Initial Chunk Files | Names | Raw Size vendor.js | vendor | 2.10 MB | polyfills.js | polyfills | 318.00 kB | styles.css, styles.js | styles | 210.08 kB | main.js | main | 49.83 kB | runtime.js | runtime | 6.51 kB | | Initial Total | 2.67 MB Build at: 2022-09-18T07:17:07.899Z - Hash: d94baf4d66e9fad0 - Time: 26751ms ** Angular Live Development Server is listening on 0.0.0.0:8000, open your browser on http://localhost:8000/ ** ? Compiled successfully.
Pulsa CTRL + C para detener la aplicación. Vamos a crear un archivo de servicio systemd para la aplicación Angular.
Crear un archivo de servicio systemd para Angular
Puedes crear un archivo de servicio systemd para gestionar la aplicación Angular.
nano /lib/systemd/system/myapp.service
Añade las siguientes líneas:
[Unit] Description=MyWeb Application After=network-online.target [Service] Restart=on-failure WorkingDirectory=/root/myapp ExecStart=/usr/bin/ng serve --port 8000 CPUAccounting=true CPUQuota=50% MemoryAccounting=true MemoryLimit=1024M [Install] WantedBy=multi-user.target
Guarda y cierra el archivo y vuelve a cargar el demonio systemd para aplicar los cambios:
systemctl daemon-reload
A continuación, inicia y habilita el servicio Angular con el siguiente comando:
systemctl start myapp systemctl enable myapp
Ahora puedes comprobar el estado del servicio Angular con el siguiente comando:
systemctl status myapp
Obtendrás la siguiente salida:
? myapp.service - MyWeb Application Loaded: loaded (/lib/systemd/system/myapp.service; disabled; vendor preset: enabled) Active: active (running) since Sun 2022-09-18 07:28:42 UTC; 28s ago Main PID: 56301 (ng serve --port) Tasks: 11 (limit: 4579) Memory: 380.1M (limit: 1.0G) CPU: 14.152s CGroup: /system.slice/myapp.service ??56301 "ng serve --port 8000" "" "" "" "" "" "" "" "" "" "" "" "" "" "" Sep 18 07:28:42 ubuntu2204 systemd[1]: Started MyWeb Application. Sep 18 07:28:49 ubuntu2204 ng[56301]: - Generating browser application bundles (phase: setup)...
Ahora puedes gestionar fácilmente tu aplicación Angular mediante systemd. Una vez que hayas terminado, puedes continuar con el siguiente paso.
Configurar Nginx como proxy inverso para Angular
En este punto, la aplicación Angular está iniciada y escucha en el puerto 8000. Sin embargo, es una buena idea configurar Nginx como proxy inverso para acceder a la aplicación Angular a través del puerto 80.
En primer lugar, instala el paquete del servidor web Nginx utilizando el siguiente comando:
apt install nginx -y
Una vez instalado Nginx, crea un archivo de configuración de Nginx:
nano /etc/nginx/conf.d/app.conf
Añade las siguientes líneas:
server { listen 80; server_name app.example.com; location / { proxy_pass http://localhost:8000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }
Guarda y cierra el archivo cuando hayas terminado, luego verifica que el Nginx no tenga ningún error de sintaxis con el siguiente comando:
nginx -t
Obtendrás la siguiente salida:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
A continuación, reinicia el servicio Nginx para aplicar los cambios:
restart nginx
También puedes comprobar el estado del Nginx con el siguiente comando:
systemctl status nginx
Deberías obtener la siguiente salida:
? nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2022-09-18 07:24:51 UTC; 6s ago Docs: man:nginx(8) Process: 55161 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Process: 55162 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Main PID: 55163 (nginx) Tasks: 3 (limit: 4579) Memory: 3.3M CPU: 28ms CGroup: /system.slice/nginx.service ??55163 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;" ??55164 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ??55165 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" Sep 18 07:24:51 ubuntu2204 systemd[1]: Starting A high performance web server and a reverse proxy server... Sep 18 07:24:51 ubuntu2204 systemd[1]: Started A high performance web server and a reverse proxy server.
Acceder a Angular Web UI
En este punto, Nginx está configurado como proxy inverso para la aplicación Angular. Ahora puedes acceder a ella utilizando la URL http://app.example.com. Deberías ver tu aplicación Angular en la siguiente pantalla:
Conclusión
¡Enhorabuena! Has instalado correctamente Angular con Nginx como proxy inverso en Ubuntu 22.04. Ahora puedes desarrollar y desplegar una aplicación dinámica en la web utilizando el framework Angular.js. No dudes en preguntarme si tienes alguna duda.