Takip et

Apache Wave’i CentOS 6.4 x64 VPS Üzerine Kurulum Rehberi

Apache Wave’i CentOS 6.4 x64 VPS Üzerine Kurulum Rehberi Apache Wave, gerçek zamanlı işbirliğine dayalı bir iletişim ve işbirliği platformud

Apache Wave’i CentOS 6.4 x64 VPS Üzerine Kurulum Rehberi

Apache Wave, gerçek zamanlı işbirliğine dayalı bir iletişim ve işbirliği platformudur. Google tarafından geliştirilmiş ve daha sonra Apache Yazılım Vakfı’na devredilmiş olan bu proje, e-posta, anlık mesajlaşma, wiki ve belge düzenleme gibi birçok özelliği tek bir arayüzde birleştirmeyi hedefler. Kullanıcıların aynı belge üzerinde anında değişiklik yapmasına, konuşmalar başlatmasına ve bu etkileşimleri zaman çizelgesi üzerinde takip etmesine olanak tanır. Her ne kadar Apache Wave projesi günümüzde Apache Attic’e taşınmış olsa da, temel mimarisi ve sunduğu işbirliği yetenekleri hala birçok geliştirici ve kuruluş için ilgi çekici olmaya devam etmektedir. Kendi Wave sunucunuzu kurmak, bu güçlü platformun potansiyelini keşfetmek ve özelleştirilmiş bir işbirliği ortamı oluşturmak için harika bir yoldur.

Bu rehberde, Apache Wave’i CentOS 6.4 x64 işletim sistemine sahip bir Sanal Özel Sunucu (VPS) üzerine adım adım nasıl kuracağınızı detaylı bir şekilde açıklayacağız. CentOS 6.4, kararlılığı ve yaygın kullanımı nedeniyle sunucu ortamları için popüler bir seçenektir. Bu rehber, temel Linux komutlarına aşina olan ve sunucu yönetimi konusunda belirli bir bilgi birikimine sahip kullanıcılar için tasarlanmıştır. Her adım, kurulum sürecini sorunsuz hale getirmek için gerekli açıklamalar ve komut örnekleri ile birlikte sunulacaktır.

Ön Gereksinimler

Apache Wave kurulumuna başlamadan önce, sunucunuzun belirli gereksinimleri karşıladığından ve gerekli araçların kurulu olduğundan emin olmalıyız. Bu bölüm, donanım, yazılım ve erişim gereksinimlerini detaylandırır.

Donanım Gereksinimleri

Bir VPS ortamında Apache Wave çalıştırmak için minimum donanım gereksinimleri şunlardır:

* İşlemci (CPU): En az 2 çekirdekli bir işlemci önerilir. Yoğun kullanımlarda daha fazla çekirdek performans artışı sağlayacaktır.
* Bellek (RAM): Minimum 2 GB RAM. Java tabanlı bir uygulama olduğu ve Maven ile derleme süreci de bellek gerektirdiğinden, 4 GB veya daha fazla RAM, özellikle derleme aşamasında ve birden fazla kullanıcının eş zamanlı çalıştığı durumlarda daha iyi bir deneyim sunar.
* Disk Alanı: En az 20 GB boş disk alanı. İşletim sistemi, Java, Maven, veritabanı ve Wave kaynak kodları ile derlenmiş dosyalar için bu alan gereklidir. Kullanıcı verileri ve loglar için ek alan gerekebilir.

Yazılım ve Erişim Gereksinimleri

* İşletim Sistemi: CentOS 6.4 x64 yüklü bir VPS. Bu rehber özel olarak bu sürüm için yazılmıştır.
* SSH Erişimi: VPS’nize SSH üzerinden erişim yeteneği. Tüm kurulum adımları SSH terminali üzerinden gerçekleştirilecektir.
* Root veya Sudo Yetkileri: Kurulum için root kullanıcısı olarak veya sudo yetkilerine sahip bir kullanıcı olarak oturum açmış olmanız gerekmektedir.
* Temel Linux Bilgisi: yum paket yöneticisi, dosya sistemi navigasyonu, metin düzenleyicileri (vi/nano) ve temel ağ komutları hakkında bilgi sahibi olmak faydalıdır.
* Alan Adı (Domain Name): Apache Wave sunucunuza erişmek için bir alan adına (örneğin, wave.example.com) sahip olmanız ve bu alan adının VPS’nizin IP adresine yönlendirilmiş olması önerilir. Bu, özellikle ters proxy (reverse proxy) ve SSL/TLS yapılandırması için önemlidir.

Sistem Güncellemesi ve Temel Paketlerin Kurulumu

Kuruluma başlamadan önce sistemin güncel olduğundan emin olmak ve gerekli temel paketleri yüklemek iyi bir uygulamadır. Bu, potansiyel güvenlik açıklarını kapatır ve bağımlılık sorunlarını önler.

Sistem Güncellemesi

VPS’nize SSH ile bağlandıktan sonra, ilk olarak sisteminizi güncelleyin:

sudo yum update -y

Bu komut, mevcut tüm paketleri en son sürümlerine güncelleyecektir. -y bayrağı, tüm sorulara otomatik olarak “evet” yanıtı vermeyi sağlar.

Temel Araçların Kurulumu

Kurulum süreci boyunca ihtiyaç duyacağımız bazı temel araçları yükleyelim:

sudo yum install -y wget git unzip screen nano

* wget: Dosyaları internetten indirmek için kullanılır.
* git: Apache Wave kaynak kodunu indirmek için kullanılır.
* unzip: Sıkıştırılmış dosyaları açmak için kullanılır.
* screen: SSH bağlantısı kesilse bile çalışan programları arka planda tutmak için faydalıdır.
* nano: Basit bir metin düzenleyicidir. vi veya vim kullanmayı tercih ediyorsanız, bu adımı atlayabilirsiniz.

Firewall (Güvenlik Duvarı) Yapılandırması

CentOS 6.4’te varsayılan güvenlik duvarı iptables‘tır. Wave sunucusuna ve ters proxy’ye dışarıdan erişim sağlamak için gerekli portları açmamız gerekecek.

* Wave sunucusu genellikle 9090 portunda çalışır.
* Ters proxy (Nginx/Apache) HTTP için 80, HTTPS için 443 portlarını kullanır.

Gerekli portları açmak için iptables kurallarını düzenleyelim:

sudo vi /etc/sysconfig/iptables

Aşağıdaki satırları dosyanın içine, mevcut ACCEPT kurallarının altına veya REJECT kurallarının önüne ekleyin:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9090 -j ACCEPT

Kaydedin ve çıkın (:wq). Ardından iptables servisini yeniden başlatın:

sudo service iptables save
sudo service iptables restart

SELinux Ayarları

SELinux, CentOS’ta ek bir güvenlik katmanı sağlar. Bazen uygulama kurulumlarını zorlaştırabilir. Kurulum süresince sorun yaşamamak için geçici olarak devre dışı bırakabilir veya izin moduna alabiliriz. Üretim ortamında, SELinux’u tamamen kapatmak yerine, gerekli izinleri yapılandırmak daha güvenlidir. Ancak bu rehberin kapsamı dışında kalmaktadır.

Geçici olarak devre dışı bırakmak için:

sudo setenforce 0

Kalıcı olarak devre dışı bırakmak için /etc/selinux/config dosyasını düzenleyin:

sudo vi /etc/selinux/config

SELINUX=enforcing satırını SELINUX=disabled olarak değiştirin. Sunucuyu yeniden başlattıktan sonra bu değişiklik kalıcı olacaktır.

# This file controls the state of SELinux on the system.

SELINUX= can take one of these three values:

enforcing - SELinux security policy is enforced.

permissive - SELinux prints warnings instead of enforcing.

disabled - No SELinux policy is loaded.

SELINUX=disabled

SELINUXTYPE= can take one of these two values:

targeted - Targeted processes are protected,

mls - Multi Level Security protection.

SELINUXTYPE=targeted

Bu değişikliğin etkili olması için sunucuyu yeniden başlatmanız gerekebilir: sudo reboot.

Java Geliştirme Kiti (JDK) Kurulumu

Apache Wave, Java tabanlı bir uygulamadır ve çalışması için bir Java Geliştirme Kiti’ne (JDK) ihtiyaç duyar. CentOS 6.4 için OpenJDK 1.7 (Java 7) genellikle yeterli ve kolayca kurulabilir bir seçenektir.

OpenJDK Kurulumu

CentOS 6.4 depolarında OpenJDK 1.7 mevcuttur. Kurulum için aşağıdaki komutu kullanın:

sudo yum install -y java-1.7.0-openjdk-devel

Bu komut, hem Java Runtime Environment (JRE) hem de Java Development Kit (JDK) bileşenlerini kuracaktır. JDK, Wave’i derlemek için gereklidir.

Java Sürümünü Doğrulama

Kurulumun başarılı olduğunu doğrulamak için Java sürümünü kontrol edin:

java -version

Çıktı, yüklü Java sürümünü göstermelidir, örneğin:

java version "1.7.0_XX"
OpenJDK Runtime Environment (build 1.7.0_XX-bXX)
OpenJDK 64-Bit Server VM (build 24.XX-bXX, mixed mode)

JAVA_HOME Ortam Değişkeninin Ayarlanması

Bazı uygulamalar ve derleme araçları (Maven gibi) JAVA_HOME ortam değişkenine ihtiyaç duyabilir. Bu değişkeni ayarlamak için /etc/profile veya /etc/environment dosyasını düzenleyebilirsiniz.

sudo nano /etc/profile.d/java.sh

Aşağıdaki satırları ekleyin:

export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk.x86_64
export PATH=$JAVA_HOME/bin:$PATH

Kaydedin ve çıkın. Değişikliklerin etkili olması için oturumunuzu yeniden yükleyin veya aşağıdaki komutu çalıştırın:

source /etc/profile.d/java.sh

echo $JAVA_HOME komutuyla değişkenin doğru ayarlanıp ayarlanmadığını kontrol edebilirsiniz.

Maven Kurulumu

Apache Wave kaynak koddan derleneceği için Apache Maven gereklidir. Maven, Java projeleri için bir proje yönetim ve anlama aracıdır.

Maven İndirme ve Kurulumu

En son kararlı Maven sürümünü Apache Maven web sitesinden indirelim. CentOS 6.4 depolarında eski bir sürüm olabilir, bu yüzden manuel kurulum daha güncel bir sürüm elde etmenizi sağlar.

Öncelikle, Maven’ı indireceğimiz geçici bir dizine gidelim:

cd /opt

Ardından, Apache Maven web sitesinden en son ikili dağıtımı indirin. URL’yi resmi siteden kontrol etmek en iyisidir, ancak örnek olarak:

sudo wget https://archive.apache.org/dist/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz

İndirdiğiniz dosyayı sıkıştırılmış arşivden çıkarın:

sudo tar -xvzf apache-maven-3.6.3-bin.tar.gz

Çıkardığınız dizini daha kısa bir isimle sembolik olarak bağlayın (isteğe bağlı ama pratik):

sudo ln -s apache-maven-3.6.3 maven

Maven Ortam Değişkenlerinin Ayarlanması

Maven’ın sistem çapında kullanılabilmesi için PATH ortam değişkenine eklenmesi gerekir. Java’da yaptığımız gibi, /etc/profile.d/ altına yeni bir dosya oluşturalım:

sudo nano /etc/profile.d/maven.sh

Aşağıdaki satırları ekleyin:

export M2_HOME=/opt/maven
export PATH=$M2_HOME/bin:$PATH

Kaydedin ve çıkın. Değişikliklerin etkili olması için oturumu yeniden yükleyin veya:

source /etc/profile.d/maven.sh

Maven Sürümünü Doğrulama

Maven’ın doğru şekilde kurulduğunu doğrulamak için sürümünü kontrol edin:

mvn -version

Çıktı, Maven ve Java sürüm bilgilerini göstermelidir:

Apache Maven 3.6.3 (cega3d3de53ee0678099d0f02737ee3eebba39f2)
Maven home: /opt/maven
Java version: 1.7.0_XX, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-1.7.0-openjdk.x86_64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "2.6.32-XXX", arch: "amd64", family: "unix"

Veritabanı Kurulumu ve Yapılandırması

Apache Wave, verilerini depolamak için bir veritabanına ihtiyaç duyar. Bu rehberde MySQL veritabanını kullanacağız. PostgreSQL da bir seçenektir, ancak MySQL daha yaygın ve kurulumu basittir.

MySQL Sunucusu Kurulumu

MySQL sunucusunu ve istemcisini CentOS depolarından yükleyin:

sudo yum install -y mysql-server mysql

Kurulum tamamlandıktan sonra MySQL servisini başlatın ve sistem başlangıcında otomatik başlaması için ayarlayın:

sudo service mysqld start
sudo chkconfig mysqld on

MySQL Güvenlik Yapılandırması

Yeni kurulan MySQL sunucusunu güvenli hale getirmek için mysql_secure_installation komutunu çalıştırın:

sudo mysql_secure_installation

Bu komut size aşağıdaki gibi sorular soracaktır:

1. Enter current password for root (enter for none): İlk kurulumda root şifresi yoktur, bu yüzden doğrudan Enter’a basın.
2. Set root password? [Y/n]: Y yazıp güçlü bir root şifresi belirleyin.
3. Remove anonymous users? [Y/n]: Y yazın.
4. Disallow root login remotely? [Y/n]: Üretim ortamında Y yazmak daha güvenlidir.
5. Remove test database and access to it? [Y/n]: Y yazın.
6. Reload privilege tables now? [Y/n]: Y yazın.

Wave İçin Veritabanı ve Kullanıcı Oluşturma

Şimdi Apache Wave’in kullanacağı bir veritabanı ve kullanıcı oluşturalım. MySQL root kullanıcısı olarak oturum açın:

mysql -u root -p

MySQL root şifrenizi girin. Ardından aşağıdaki SQL komutlarını çalıştırın:

CREATE DATABASE wave CHARACTER SET utf8 COLLATE utf8_bin;
CREATE USER 'waveuser'@'localhost' IDENTIFIED BY 'your_strong_password';
GRANT ALL PRIVILEGES ON wave.* TO 'waveuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

* your_strong_password kısmını kendi güvenli şifrenizle değiştirin.
* CHARACTER SET utf8 COLLATE utf8_bin ayarları, Wave’in metin verilerini doğru şekilde işlemesi için önemlidir.

Apache Wave Kaynak Kodunun İndirilmesi ve Derlenmesi

Apache Wave projesi Apache Incubator’dan Apache Attic’e taşınmıştır, ancak kaynak kodu hala erişilebilir durumdadır. Kaynak kodu Git ile klonlayacak ve Maven ile derleyeceğiz.

Kaynak Kodunu Klonlama

Apache Wave kaynak kodunu indirmek için bir dizin oluşturalım ve oraya gidelim:

cd /opt
sudo mkdir wave-server
sudo chown -R your_user:your_user wave-server # Kendi kullanıcı adınızla değiştirin
cd wave-server

Ardından, Git kullanarak kaynak kodu klonlayın:

git clone https://git-wip-us.apache.org/repos/asf/incubator-wave.git .

Nokta (.) kullanmak, kaynak kodunun doğrudan mevcut dizine klonlanmasını sağlar.

Wave’i Maven ile Derleme

Kaynak kodunu klonladıktan sonra, Maven kullanarak projeyi derlememiz gerekiyor. Bu işlem, gerekli tüm bağımlılıkları indirecek ve yürütülebilir JAR dosyalarını oluşturacaktır. Bu adım internet hızınıza ve sunucunuzun performansına bağlı olarak biraz zaman alabilir (10-30 dakika).

mvn clean install -DskipTests

* clean: Daha önceki derleme çıktısını temizler.
* install: Projeyi derler ve yerel Maven deposuna kurar.
* -DskipTests: Testleri atlar. Bu, derleme süresini önemli ölçüde kısaltır. Üretim ortamında testleri çalıştırmak isteyebilirsiniz, ancak bu rehberde atlıyoruz.

Derleme işlemi sırasında birçok bağımlılık indirilecektir. İşlem başarıyla tamamlandığında, aşağıdaki gibi bir mesaj görmelisiniz:

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: XX min XX s
[INFO] Finished at: XXXX-XX-XXTXX:XX:XX+03:00
[INFO] Final Memory: XXXM/XXXM
[INFO] ------------------------------------------------------------------------

Derleme tamamlandığında, wave-server/target dizini altında wave-server-*-SNAPSHOT.jar gibi bir JAR dosyası bulmalısınız. Bu dosya, Wave sunucusunu çalıştıracak ana yürütülebilir dosyadır.

Apache Wave Sunucusunun Yapılandırılması

Wave sunucusunu çalıştırmadan önce, veritabanı bağlantısı ve diğer ayarlar için yapılandırma dosyasını düzenlememiz gerekiyor.

Yapılandırma Dosyasını Düzenleme

Yapılandırma dosyası genellikle wave-server/src/main/resources/application.properties konumundadır. Bu dosyayı kopyalayarak özelleştirebiliriz.

cp wave-server/src/main/resources/application.properties wave-server/target/application.properties
nano wave-server/target/application.properties

Bu dosyayı açtıktan sonra, özellikle veritabanı bağlantı ayarlarını ve sunucu portunu düzenlemeniz gerekecektir.

Aşağıdaki satırları bulun ve kendi veritabanı bilgilerinizle güncelleyin:

# Database settings
db.url=jdbc:mysql://localhost:3306/wave?useUnicode=true&characterEncoding=UTF-8&useServerPrepStmts=true&prepStmtCacheSize=250&prepStmtCacheSqlLimit=2048&cacheCallableStmts=true&cachePrepStmts=true
db.user=waveuser
db.password=your_strong_password

Diğer önemli yapılandırma ayarları şunlardır:

* Sunucu Portu: Wave’in hangi portta çalışacağını belirler. Varsayılan olarak 9090’dır. Ters proxy kullanacağımız için bu portu değiştirmemize gerek yok.

http.port=9090

* Domain Adı: Wave frontend’inin hangi alan adından erişileceğini belirtir.

wave.frontend.domain=your_domain.com

your_domain.com kısmını kendi alan adınızla değiştirin (örn. wave.example.com).
* Admin Kullanıcısı: İlk admin kullanıcısını oluşturmak için:

admin.username=admin
    admin.password=admin_password

Bu bilgileri de kendi güvenli kullanıcı adı ve şifrenizle değiştirin. İlk çalıştırmadan sonra bu kullanıcı oluşturulacak ve bu satırlar kaldırılabilir veya yorum satırı yapılabilir.

Diğer ayarlar varsayılan olarak bırakılabilir, ancak gelişmiş kullanım durumları için Wave’in belgelerine başvurmanız önerilir.

Apache Wave Sunucusunun Çalıştırılması

Wave sunucusunu arka planda güvenli bir şekilde çalıştırmak için screen veya bir servis betiği kullanabiliriz. Bu rehberde screen kullanarak hızlı bir başlangıç yapacağız, ardından bir System V init betiği ile daha kalıcı bir çözüm sunacağız.

Screen ile Geçici Çalıştırma

screen oturumu başlatın:

screen -S wave

wave-server/target dizinine gidin ve JAR dosyasını çalıştırın:

cd /opt/wave-server/wave-server/target
java -jar wave-server-*-SNAPSHOT.jar

*-SNAPSHOT.jar kısmını derlediğiniz JAR dosyasının tam adıyla değiştirin (örneğin wave-server-0.4.0-SNAPSHOT.jar).

Sunucu başarıyla başlatıldığında konsolda log mesajlarını görmelisiniz. Ctrl+A d tuş kombinasyonu ile screen oturumundan ayrılabilir ve sunucunun arka planda çalışmaya devam etmesini sağlayabilirsiniz.

System V Init Betiği ile Servis Olarak Çalıştırma (Önerilen)

Üretim ortamında Wave’i bir servis olarak çalıştırmak ve sistem başlangıcında otomatik başlatılmasını sağlamak daha güvenilir bir yöntemdir. CentOS 6.4 System V init kullanır.

Bir init betiği oluşturalım:

sudo nano /etc/init.d/wave-server

Aşağıdaki içeriği dosyaya yapıştırın. JAVA_HOME, WAVE_HOME, WAVE_JAR ve WAVE_USER değişkenlerini kendi sisteminize göre ayarladığınızdan emin olun.

#!/bin/bash

# wave-server This script starts and stops the Apache Wave server

# chkconfig: 345 90 10

description: Apache Wave Server

processname: java

config: /opt/wave-server/wave-server/target/application.properties

### BEGIN INIT INFO

Provides: wave-server

Required-Start: $local_fs $network $syslog $time mysql

Required-Stop: $local_fs $network $syslog

Default-Start: 3 4 5

Default-Stop: 0 1 2 6

Short-Description: Start and stop Apache Wave server

Description: Apache Wave server daemon

### END INIT INFO JAVA_HOME="/usr/lib/jvm/java-1.7.0-openjdk.x86_64" WAVE_HOME="/opt/wave-server/wave-server/target" WAVE_JAR="wave-server-0.4.0-SNAPSHOT.jar" # Kendi JAR dosyanızın adını buraya yazın WAVE_CONFIG_FILE="$WAVE_HOME/application.properties" WAVE_LOG_FILE="/var/log/wave-server.log" WAVE_PID_FILE="/var/run/wave-server.pid" WAVE_USER="your_user" # Wave sunucusunu çalıştıracak kullanıcı (örn. waveuser veya kendi kullanıcı adınız)

Sanity checks.

[ -x "$JAVA_HOME/bin/java" ] || exit 5 [ -f "$WAVE_HOME/$WAVE_JAR" ] || exit 5 [ -f "$WAVE_CONFIG_FILE" ] || exit 6 start() { echo -n $"Starting Apache Wave server: " su - "$WAVE_USER" -c "nohup $JAVA_HOME/bin/java -jar $WAVE_HOME/$WAVE_JAR --config=$WAVE_CONFIG_FILE > $WAVE_LOG_FILE 2>&1 & echo \$! > $WAVE_PID_FILE" RETVAL=$? echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/wave-server return $RETVAL } stop() { echo -n $"Stopping Apache Wave server: " killproc -p $WAVE_PID_FILE $JAVA_HOME/bin/java RETVAL=$? echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/wave-server $WAVE_PID_FILE return $RETVAL } restart() { stop start } case "$1" in start) start ;; stop) stop ;; restart) restart ;; status) status -p $WAVE_PID_FILE $JAVA_HOME/bin/java RETVAL=$? ;; *) echo $"Usage: $0 {start|stop|restart|status}" RETVAL=2 esac exit $RETVAL

* WAVE_JAR: Kendi derlediğiniz JAR dosyasının tam adını girin (örn. wave-server-0.4.0-SNAPSHOT.jar).
* WAVE_USER: Wave sunucusunu çalıştıracak sistem kullanıcısını belirtin. Güvenlik için root yerine özel bir kullanıcı oluşturmanız önerilir. Bu rehberde your_user olarak belirtilen kullanıcıyı kullanabilir veya sudo adduser waveuser komutuyla yeni bir kullanıcı oluşturup o kullanıcı adını buraya yazabilirsiniz. Eğer yeni bir kullanıcı oluşturursanız, /opt/wave-server dizininin sahipliğini bu kullanıcıya vermeyi unutmayın: sudo chown -R waveuser:waveuser /opt/wave-server.

Betiği kaydedin ve çıkın. Ardından yürütülebilir hale getirin ve sisteme ekleyin:

sudo chmod +x /etc/init.d/wave-server
sudo chkconfig --add wave-server
sudo chkconfig wave-server on

Şimdi Wave sunucusunu başlatabilirsiniz:

sudo service wave-server start

Durumunu kontrol etmek için:

sudo service wave-server status

Logları /var/log/wave-server.log dosyasından takip edebilirsiniz.

Ters Proxy (Reverse Proxy) Yapılandırması (Nginx)

Apache Wave sunucusu genellikle 9090 gibi özel bir portta çalışır. Kullanıcıların standart HTTP (80) veya HTTPS (443) portları üzerinden erişebilmesi için bir ters proxy (Nginx veya Apache HTTPD) kullanmamız gerekir. Nginx, performansı ve kolay yapılandırması nedeniyle popüler bir seçimdir.

Nginx Kurulumu

Nginx’i CentOS 6.4’e kurmak için EPEL deposunu etkinleştirmeniz gerekebilir, çünkü Nginx varsayılan depolarda bulunmayabilir.

sudo yum install -y epel-release
sudo yum install -y nginx

Kurulum tamamlandıktan sonra Nginx servisini başlatın ve sistem başlangıcında otomatik başlaması için ayarlayın:

sudo service nginx start
sudo chkconfig nginx on

Nginx Yapılandırması

Wave için bir Nginx yapılandırma dosyası oluşturalım:

sudo nano /etc/nginx/conf.d/wave.conf

Aşağıdaki içeriği dosyaya yapıştırın. your_domain.com kısmını kendi alan adınızla değiştirin.

server {
    listen 80;
    server_name your_domain.com; # Kendi alan adınızı buraya yazın

    location / {
        proxy_pass http://localhost:9090;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        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;
        proxy_read_timeout 86400; # 24 hours
        proxy_send_timeout 86400; # 24 hours
    }

    # Hata sayfaları (isteğe bağlı)
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }
}

SSL/TLS (HTTPS) kullanmak isterseniz, ek bir server bloğu eklemeniz veya mevcut bloğu düzenlemeniz gerekecektir. Bir örnek:

server {
    listen 443 ssl;
    server_name your_domain.com; # Kendi alan adınızı buraya yazın

    ssl_certificate /etc/nginx/ssl/your_domain.crt; # Sertifika yolu
    ssl_certificate_key /etc/nginx/ssl/your_domain.key; # Anahtar yolu
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;

    location / {
        proxy_pass http://localhost:9090;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        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;
        proxy_read_timeout 86400; # 24 hours
        proxy_send_timeout 86400; # 24 hours
    }
}

HTTP'den HTTPS'e yönlendirme (isteğe bağlı)

server { listen 80; server_name your_domain.com; return 301 https://$host$request_uri; }

SSL sertifikalarınızı /etc/nginx/ssl/ dizinine yerleştirmeniz ve Nginx yapılandırmasında doğru yolları belirtmeniz gerekecektir. Let’s Encrypt gibi hizmetlerle ücretsiz SSL sertifikaları alabilirsiniz.

Yapılandırma dosyasını kaydettikten sonra, Nginx yapılandırmasını test edin ve servisi yeniden başlatın:

sudo nginx -t
sudo service nginx restart

Firewall’da 80 ve 443 portlarının açık olduğundan emin olun (daha önce yapmıştık).

Wave Arayüzüne Erişim ve İlk Kullanım

Tüm kurulum adımlarını başarıyla tamamladıktan sonra, bir web tarayıcısı açın ve yapılandırdığınız alan adınıza gidin (örn. http://your_domain.com veya https://your_domain.com).

Apache Wave giriş ekranını görmelisiniz. application.properties dosyasında yapılandırdığınız admin.username ve admin.password ile giriş yapabilirsiniz. İlk girişte bu kullanıcı oluşturulacaktır.

Giriş yaptıktan sonra, yeni bir “Wave” oluşturabilir, diğer kullanıcıları davet edebilir ve gerçek zamanlı işbirliğinin keyfini çıkarabilirsiniz.

Ek Güvenlik ve Optimizasyon İpuçları

Kurulum tamamlandı, ancak bir üretim ortamı için ek güvenlik ve optimizasyon adımları önemlidir.

* SSL/TLS Kullanımı: Alan adınız için mutlaka Let’s Encrypt gibi bir hizmetten ücretsiz SSL sertifikası alın ve Nginx’i HTTPS kullanacak şekilde yapılandırın. Bu, tüm iletişimi şifreleyerek güvenliği artırır.
* Firewall Kurallarını Sıkılaştırma: Sadece gerekli portları (80, 443) açın. Wave’in çalıştığı 9090 portunu dışarıya açmayın, sadece localhost üzerinden erişilebilir olsun.
* Güçlü Şifreler: Tüm kullanıcılar, veritabanı ve admin hesapları için güçlü ve benzersiz şifreler kullanın.
* Wave Admin Kullanıcısı: İlk admin kullanıcısını oluşturduktan sonra, application.properties dosyasındaki admin.username ve admin.password satırlarını kaldırın veya yorum satırı yapın.
* Yedekleme Stratejisi: Veritabanınızı ve Wave dosyalarınızı düzenli olarak yedeklemek için bir strateji geliştirin.
* Log Takibi: /var/log/wave-server.log ve /var/log/nginx/error.log gibi log dosyalarını düzenli olarak kontrol ederek olası sorunları erken teşhis edin.
* Java Bellek Ayarları: Yoğun kullanımlarda Java Sanal Makinesi (JVM) için bellek ayarlarını (-Xms, -Xmx) optimize edebilirsiniz. Bu ayarlar, wave-server init betiğindeki java komutuna eklenebilir. Örneğin: java -Xms512m -Xmx2g -jar ...
* Güvenlik Güncellemeleri: CentOS sisteminizi ve tüm yüklü paketleri düzenli olarak güncel tutun (sudo yum update).

Sorun Giderme

Kurulum sırasında veya sonrasında karşılaşabileceğiniz bazı yaygın sorunlar ve çözümleri:

* Wave Arayüzüne Erişilemiyor:
* Firewall’da 80/443 portlarının açık olduğundan emin olun.
* Nginx servisinin çalıştığından emin olun (sudo service nginx status).
* Wave sunucusunun çalıştığından emin olun (sudo service wave-server status).
* Nginx yapılandırmasını kontrol edin (sudo nginx -t).
* Alan adınızın VPS IP adresinize doğru şekilde yönlendirildiğinden emin olun.
* 502 Bad Gateway Hatası:
* Nginx, Wave sunucusuna bağlanamıyor demektir. Wave sunucusunun 9090 portunda çalıştığından emin olun.
* Wave sunucusu loglarını kontrol edin (/var/log/wave-server.log).
* Veritabanı Bağlantı Hatası:
* application.properties dosyasındaki veritabanı bilgilerinin doğru olduğundan emin olun (kullanıcı adı, şifre, veritabanı adı).
* MySQL servisinin çalıştığından emin olun (sudo service mysqld status).
* MySQL kullanıcısının Wave veritabanına erişim izinleri olduğundan emin olun.
* Maven Derleme Hataları:
* Java ve Maven ortam değişkenlerinin doğru ayarlandığından emin olun (java -version, mvn -version).
* İnternet bağlantınızın olduğundan emin olun, Maven bağımlılıkları indirmek için internete ihtiyaç duyar.
* Bellek yetersizliği (OOM) hataları alıyorsanız, VPS’nizin RAM’ini artırmanız gerekebilir.
* SELinux Hataları:
* Eğer SELinux’u devre dışı bırakmadıysanız, Wave’in çalışması için gerekli izinleri vermeniz gerekebilir. Geçici olarak sudo setenforce 0 komutuyla test edebilirsiniz.

Sonuç

Bu detaylı rehberde, Apache Wave’i CentOS 6.4 x64 tabanlı bir VPS üzerine adım adım nasıl kuracağınızı öğrendiniz. Temel sistem güncellemesinden Java ve Maven kurulumuna, MySQL veritabanı yapılandırmasından Wave kaynak kodunun derlenmesine ve Nginx ile ters proxy kurulumuna kadar tüm süreçleri ele aldık. Ayrıca, Wave sunucusunu bir servis olarak çalıştırmanın ve ilk kullanım için gerekli yapılandırmaları yapmanın yollarını gösterdik.

Apache Wave, gerçek zamanlı işbirliği için güçlü ve esnek bir platform sunar. Kendi sunucunuzu kurarak, platform üzerinde tam kontrol sahibi olabilir, onu kendi ihtiyaçlarınıza göre özelleştirebilir ve ek özellikler geliştirebilirsiniz. Her ne kadar Apache Wave projesi aktif geliştirme aşamasında olmasa da, temel prensipleri ve işlevselliği, benzer işbirliği araçları geliştirmek veya mevcut bir çözümü kendi altyapınızda barındırmak isteyenler için değerli bir başlangıç noktası sunar.

Unutmayın ki bir üretim ortamında, güvenlik ve performans optimizasyonlarına özellikle dikkat etmek hayati önem taşır. SSL/TLS kullanımı, güçlü şifre politikaları ve düzenli yedeklemeler, Wave sunucunuzun güvenli ve kararlı bir şekilde çalışmasını sağlamanın anahtarlarıdır. Bu rehberin, Apache Wave’in güçlü dünyasına adım atmanız için sağlam bir temel oluşturduğunu umuyoruz.

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.