nginx - Apakah senario yang berkenaan untuk penggunaan pakej WAR projek JAVA?
typecho
typecho 2017-06-17 09:17:11
0
2
2150

Apabila menggunakan projek, saya sentiasa menggunakan folder untuk menggunakan projek Baru-baru ini, saya cuba menggunakan penggunaan projek pakej WAR dan menghadapi masalah berikut:

  • Nyatakan laluan setempat untuk lokasi fail yang dimuat naik, tetapi memandangkan ia bebas daripada projek, anda perlu mengkonfigurasi projek secara berasingan untuk mengaksesnya

  • Apabila syarikat mempunyai sejumlah besar projek (kira-kira 200 untuk satu pelayan, kira-kira 20 pelayan), setiap projek dikonfigurasikan seperti ini, dan kerja operasi dan penyelenggaraan adalah sangat berat

  • Hanya satu fail css atau JS telah dilaraskan semasa penyelenggaraan, tetapi ia perlu dibungkus semula dan dikeluarkan

Berbanding dengan kaedah folder sebelum ini, memang menyusahkan saya ingin bertanya kepada pelajar yang berpengalaman:

  1. Apakah senario aplikasi yang anda hadapi menggunakan pakej WAR?

  2. Bagaimana untuk menyelesaikan masalah yang saya hadapi?

typecho
typecho

Following the voice in heart.

membalas semua(2)
刘奇

Berikut ialah pengalaman operasi dan penyelenggaraan sebenar saya:

  1. Konfigurasi hendaklah bebas daripada projek, supaya pakej perang boleh dibuat sekali sahaja dan digunakan pada persekitaran yang berbeza

  2. Gunakan alat operasi dan penyelenggaraan automatik seperti SaltStack, Ansible atau Jenkins untuk membantu anda melaksanakan operasi kelompok

  3. Jika anda menjangkakan bahawa sumber statik akan berubah dengan kerap, adalah lebih baik untuk memisahkannya daripada projek Java dan menempatkannya ke tapak yang berbeza, atau gunakan nginx untuk lencongan

  4. Adalah disyorkan untuk menggunakan program untuk menyahmampat fail perang (daripada membiarkan Tomcat menyahmampatnya dengan sendirinya), hentikan Tomcat, gunakan ln -s untuk mengarahkan direktori ROOT ke direktori baharu, dan kemudian mulakan Tomcat, supaya Tomcat akan berjalan dengan lebih lancar

  5. Jangan padamkan direktori lama buat masa ini Jika pemasangan salah, gunakan ln -s untuk menukar direktori ROOT kepada yang lama untuk mencapai rollback yang cepat.

大家讲道理

Pengalaman praktikal:
Projek yang saya kendalikan semuanya diterbitkan dalam bentuk direktori pada struktur direktori web:

DOMAINS                   --域
└─domainA                 --域A
    └─apps                --应用
        └─app1            --应用1
            ├─deploy      --部署
            │  ├─src      --Java源代码(仅限项目实施开发的源代码,不包含应用库的源代码),服务器统一编译一次防止Java版本问题以及编码问题
            │  └─war      --标准war包结构
            ├─patch       --增量更新目录
            ├─runtime     --运行时目录,日志,用户文件之类的
            └─tmp         --临时目录
       

Saya menulis beberapa skrip shell mengikut struktur standard ini untuk mengautomasikan tugas operasi dan penyelenggaraan, termasuk memulakan, menghentikan, memantau, mengemas kini, dll. Ia sebenarnya hanya mengambil masa beberapa hari dan tidak banyak kod, tetapi sekarang saya tidak pernah melakukannya secara manual lagi. Atas urusan operasi dan penyelenggaraan.

Proses asas ialah: penyerahan pembangunan kod-->Pakej kemas kini tambahan eksport SVN-->muat naik ke pelayan-->laksanakan pada pelayan

Jika anda menukar halaman HTML, anda perlu membungkusnya semula Bagaimana jika anda memasukkan fail yang salah? Yang statik boleh diterbitkan secara berasingan, jadi jika saya hanya menukar JAVA, saya perlu membungkusnya semula dan layak?

Tiada bekas yang benar-benar menerbitkan dan menyediakan aplikasi dalam pakej perang Semuanya dinyahmampatkan ke lokasi sementara Pakej perang adalah dalam format mampat Anda mesti membenarkan mana-mana bekas membaca sumber dalam fail dimampatkan. Akan ada isu prestasi (sekurang-kurangnya untuk JSP).

Ini adalah penyelesaian peribadi saya untuk beberapa projek kecil Untuk projek besar, anda mungkin memerlukan rantai alat proses penuh, iaitu penyepaduan berterusan atau sesuatu.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan