Oracle Cloud

2 minuto(s) de leitura

Em maio de 2023 criei uma instância na Oracle Cloud para fazer deploy de aplicações python. Minha instância usa Oracle Linux 9, baseada em RHEL.

Tudo começou quando vi o vídeo Deploying a Flask app to a Virtual Machine - Learning Flask Series Pt. 23

Para fazer deploy das aplicações em python optei por utilizar o NGINX

Para instalar o NGINX instância, segue os procedimentos descritos em Installing NGINX Open Source. Abri as portas da VM conforme descrito em Chapter 2. Setting up and configuring NGINX

sudo su
firewall-cmd --permanent --add-port={80/tcp,443/tcp}
firewall-cmd --reload


Lendo os posts e blogs notei que o NGINX, quando instalado no RHEL (ou Oracle Linux), não vem, por padrão, com algumas configurações padrão que vem no Ubuntu (motivo pelo qual alguns sugerem o Ubuntu).

Dentre essas configurações está a ausência das pastas abaixo. Como elas não vem, por padrão, é necessário cria-las, conforme é mencionado nesse post StackOverflow: nginx missing sites-available directory

sudo mkdir /etc/nginx/sites-available
sudo mkdir /etc/nginx/sites-enabled


Of course, all the files will be inside sites-available, and you’d create a symlink for them inside sites-enabled for those you want enabled.


Uma vez criadas, é necessário indicar, nas configurações do NGIX, que é preciso que ele olhe o conteúdo das pastas.

# Edita as configurações
sudo nano /etc/nginx/nginx.conf

# E coloca essa linha nos includes
include /etc/nginx/sites-enabled/\*;


Tentei iniciar a aplicação…

sudo systemctl status nginx
sudo systemctl enable nginx
sudo systemctl start nginx
sudo systemctl stop nginx
sudo systemctl restart nginx
sudo nginx -s reload


Por algum momento não deu certo pois a porta 80 estava em uso. Comandos para avalir o que está em uso. Descobri o que era e fechei.

sudo fuser -k 443/tcp
sudo fuser -k 80/tcp


De acordo com o artigo 2.2. Configuring NGINX as a web server that provides different content for different domains, é indicado que se use o código abaixo para carreegar a página inicial.

server {
    listen       80 default_server;
    listen       [::]:80 default_server;
    server_name  _;
    root         /usr/share/nginx/html;
}


Eu customize e inseri esse conteúdo no arquivo default:

sudo nano /etc/nginx/sites-available/default


E criei um link para

# Cria link
sudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled

# Para remover link
sudo unlink /etc/nginx/sites-enabled/default


Edita esse arquivo, conforme

server {
listen 80;
listen [::]:80;
server_name localhost;
client_max_body_size 10M;

    #charset koi8-r;

    #access_log  logs/host.access.log  main;

    location / {
        # root   html;
        # index  index.html;
        proxy_pass      http://127.0.0.1:5000;
        proxy_redirect  off;

        proxy_set_header    Host                $host;
        proxy_set_header    X-Real-IP           $remote_addr;
        proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_for;
        proxy_set_header    X-Forwarded-Proto   $scheme;
    }


Após bater cabeça, vi que a Virtual Private Network, na infra do Oracle, podria estar bloqueando o tráfego… corrigi com auxílio desse artigo Opening up port 80 and 443 for Oracle Cloud servers



Referências

Deixe um comentário