> For the complete documentation index, see [llms.txt](https://navixy.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://navixy.com/docs/on-premise/id/on-premise/how-to-guide/maintenance/migration/separate-services-migration.md).

# Migrasi layanan terpisah

Migrasikan layanan Navixy individual ke direktori kustom atau server terpisah. Perbarui file konfigurasi untuk menyambungkan kembali basis data, server web, dan dependensi lainnya.

Seiring platform Anda digunakan dan jumlah perangkat yang terdaftar bertambah, Anda mungkin perlu mendistribusikan ulang atau memindahkan layanan tertentu ke direktori atau server lain. Ini biasanya berlaku untuk layanan basis data dan web. Layanan backend (layanan Java) sangat disarankan untuk tetap berada di lokasi instalasi awal.

{% hint style="info" %}
Migrasi basis data dan situs web saat ini hanya berlaku untuk instalasi "klasik", di mana platform dipasang sebagai layanan sistem. Platform dalam Docker saat ini tersedia sebagai all-in-one dan tidak menyiratkan distribusi ke beberapa server.
{% endhint %}

## Migrasi basis data

Bergantung pada tujuan Anda, Anda mungkin perlu memindahkan basis data ke direktori khusus di dalam server atau memigrasikannya ke server terpisah.

### Direktori basis data khusus

Secara default, file basis data berada di dalam subdirektori yang ditentukan di dalam direktori MySQL: `/var/lib/mysql`. Misalkan Anda perlu memindahkan basis data ke direktori khusus bernama `/DB`. Untuk melakukannya, lakukan langkah-langkah berikut:

1. Buat subdirektori untuk file dan log, misalnya:

```
/DB/mysql-files 
/DB/mysql-log
```

2\. Ubah pemilik menjadi *mysql* dan izin menjadi `drwxr-x---`

```
chown mysql:mysql mysql-files 
chown mysql:mysql mysql-log 
chmod 750 mysql-files 
chmod 750 mysql-log
```

3\. Hentikan mysql: `systemctl stop mysql`.

4\. Salin **(bukan pindahkan)** file dari `var/lib/mysql` dan `var/log/mysql` ke direktori baru yang sesuai

5\. Edit konfigurasi di `/etc/mysql/mysql.conf.d/mysqld.cnf`. Ubah `datadir` dan `log error` ke nilai baru.

6\. Mulai mysql: `systemctl start mysql`. Periksa `error.log` untuk mencari galat.

### Bergerak basis data ke server terpisah

Jika Anda perlu memindahkan basis data ke server terpisah (misalnya, untuk penyeimbangan beban), Anda perlu melakukan langkah-langkah berikut.

1. Pasang MySQL versi yang sama di server baru.
2. Buat cadangan basis data Anda.
3. Pulihkan cadangan di server baru dan mulai basis data.
4. Ubah konfigurasi layanan Java: `api-server`, `sms-server`, `tcp-server`. Di direktori setiap layanan ada file `db.properties` yang menentukan parameter koneksi basis data. Misalnya, di Linux file seperti itu berada pada path berikut:

* `/home/java/api-server/conf/db.properties`
* `/home/java/sms-server/conf/db.properties`
* `/home/java/tcp-server/conf/db.properties`\
  Edit setiap file dan ubah `localhost` menjadi alamat IP server basis data baru Anda. Pertahankan semua isi lainnya.

5. Simpan file dan mulai ulang layanan Java.
6. Periksa pengoperasian layanan dan log-nya. Jika tidak dapat berjalan, periksa koneksi ke server baru pada port 3306 (port bawaan MySQL).

## Migrasi server web

Biasanya, situs web (frontend) di-host di server yang sama dengan layanan Java (backend), dan ini berlaku untuk sebagian besar server klien kami, bahkan yang terbesar sekalipun. Namun, Anda mungkin ingin meng-host server web dan semua file situs web di server khusus untuk pengelolaan beban dan akses jaringan yang lebih fleksibel.

Untuk melakukan ini, Anda perlu melakukan hal berikut:

1. Pasang Nginx di server khusus.
2. Pindahkan direktori frontend ke server baru:

* `/etc/nginx`
* `/var/www`

3. Periksa `navixy.conf` dan `navixy_ssl.conf` (jika ada) dan tentukan `{backend_server}` alamat - tempat layanan Java di-host - pada baris berikut:

```
location / { 
    proxy_pass http://{backend_server}:8084; 
    } 
location /console  { 
    proxy_pass http://{backend_server}:8383/console; 
    } 
location /event {  
    proxy_pass http://{backend_server}:8084/event;
    }
location /file/upload/ { 
    proxy_pass   http://{backend_server}:8084/file/upload/; 
    } 
location /file/dl/ { 
    proxy_pass   http://{backend_server}:8084/file/dl/; 
    }
```

4. Mulai Nginx.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://navixy.com/docs/on-premise/id/on-premise/how-to-guide/maintenance/migration/separate-services-migration.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `build a script that syncs our docs to a CMS` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
