Panduan Membuat RPC API dan GRPC WEB Node Cosmos
Persiapkan:
- Domain dan Subdomain
Pengaturan API dalam app.toml
nano $HOME/.planqd/config/app.toml
Instalasi Paket
sudo apt autoremove nodejs -y
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
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 update
sudo apt install nginx certbot python3-certbot-nginx nodejs git yarn -y
Pengaturan Proxy nginx dan Instalasi SSL
Periksa API dan RPC IP:PORT
nano $HOME/.planqd/config/app.toml
nano $HOME/.planqd/config/config.toml
Periksa GRPC dan GRPC IP:PORT
nano $HOME/.planqd/config/app.toml
- Atur Domain API
API_DOMAIN="YOUR_API_DOMAIN"
- Atur Port API
API_IP_PORT="IP:PORT"
- Atur Domain RPC
RPC_DOMAIN="YOUR_API_DOMAIN"
- Atur Port RPC
RPC_IP_PORT="IP:PORT"
- Atur Domain GRPC
GRPC_DOMAIN="YOUR_GRPC_DOMAIN"
- Atur Port GRPC
GRPC_IP_PORT="IP:PORT"
- Atur Domain GRPC_WEB
GRPC_WEB_DOMAIN="YOUR_GRPC_WEB_DOMAIN"
- Atur Port GRPC_WEB
GRPC_WEB_IP_PORT="IP:PORT"
Buat Konfigurasi
Buat Konfigurasi API
sudo cat <<EOF > /etc/nginx/sites-enabled/${API_DOMAIN}.conf
server {
server_name $API_DOMAIN;
listen 80;
location / {
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Max-Age 3600;
add_header Access-Control-Expose-Headers Content-Length;
proxy_set_header X-Real-IP \$remote_addr;
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
proxy_set_header Host \$host;
proxy_pass http://$API_IP_PORT;
}
}
EOF
Buat Konfigurasi RPC
sudo cat <<EOF > /etc/nginx/sites-enabled/${RPC_DOMAIN}.conf
server {
server_name $RPC_DOMAIN;
listen 80;
location / {
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Max-Age 3600;
add_header Access-Control-Expose-Headers Content-Length;
proxy_set_header X-Real-IP \$remote_addr;
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
proxy_set_header Host \$host;
proxy_http_version 1.1;
proxy_set_header Upgrade \$http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass http://$RPC_IP_PORT;
}
}
EOF
Buat Konfigurasi GRPC
sudo cat <<EOF > /etc/nginx/sites-enabled/${GRPC_DOMAIN}.conf
server {
server_name $GRPC_DOMAIN;
listen 80;
location / {
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Max-Age 3600;
add_header Access-Control-Expose-Headers Content-Length;
proxy_set_header X-Real-IP \$remote_addr;
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
proxy_set_header Host \$host;
proxy_pass http://$GRPC_IP_PORT;
}
}
EOF
Buat Konfigurasi GRPC WEB
sudo cat <<EOF > /etc/nginx/sites-enabled/${GRPC_WEB_DOMAIN}.conf
server {
server_name $GRPC_WEB_DOMAIN;
listen 80;
location / {
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Max-Age 3600;
add_header Access-Control-Expose-Headers Content-Length;
proxy_set_header X-Real-IP \$remote_addr;
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
proxy_set_header Host \$host;
proxy_pass http://$GRPC_WEB_IP_PORT;
}
}
EOF
Uji Konfigurasi
sudo pkill nginx
nginx -t
Output jika berhasil
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Pasang Sertifikat SSL
sudo certbot --nginx --register-unsafely-without-email
sudo certbot --nginx --redirect -d ${API_DOMAIN},${RPC_DOMAIN},${GRPC_DOMAIN},${GRPC_WEB_DOMAIN}