Sonatype Nexus, rpm, binary dosyaların ve derleme yapılarının çoğu için dünya çapında kullanılan popüler bir depo yöneticisidir. Gradle, Ant, Maven ve Ivy dahil olmak üzere Java Virtual Machine (JVM) ekosistemi için destekle birlikte gelir. Eclipse, IntelliJ, Hudson, Jenkins, Puppet, Chef, Docker, vb. dahil olmak üzere standart araçlarla uyumlu olan Sonatype Nexus repo, binary konteynerler, montajlar ve bitmiş ürünler için teslimat yoluyla geliştirme bileşenlerini yönetebilir.
Sistem Gereksinimleri
Kuruluma başlamadan önce Sonatype Nexus Repo’yu çalıştırmak için minimum sistem gereksinimlerine bakalım. Nexus Repository Manager kurmak ve çalıştırmak oldukça basittir. Arşivi tam erişime sahip olduğunuz bir dizinde açabilir veya Docker image ile kurabilirsiniz.
İşletim sistemi sistem gereksinimi;
İşletim sistemi desteğinde belirleyici unsur desteklenen bir Java sürümünü çalıştırabilen herhangi bir Windows, Linux veya Macintosh işletim sistemi çalışacaktır. Diğer işletim sistemleri çalışabilir, ancak Sonatype tarafından test edilmemiştir. Nexus Reposiyory Manager (NXRM) için en yaygın kullanılan işletim sistemi Linux’tur ve bu nedenle müşteriler onu test edilen en iyi platform olarak görmelidir.
Bu doküman hazırlanmasında Centos 8 işletim sistemi kullanılmıştır.
Tahsis Edilmiş (dedicated) Kullanıcı Hesabı;
Repository Manager sadece kişisel kullanım için test etmediğiniz veya çalıştırmadığınız sürece her benzersiz işlemi belirli bir sistemde çalıştırmak için özel bir işletim sisteminde bu işlem için ayrılmış kullanıcı hesabının kullanımını tavsiye eder.
NXRM işlem kullanıcısı tipik olarak ‘nexus’ olarak adlandırılır ve geçerli bir kabuk oluşturabilmelidir. Güvenlik önlemi olarak, Nexus Repository Manager 3’ü root kullanıcı olarak çalıştırmayınız.
Yeterli Dosya İşleme Sınırları
NXRM3 büyük olasılıkla Linux veya OSX işletim sisteminiz tarafından izin verilen kullanıcı başına varsayılan değerden daha fazla dosya tanıtıcısı kullanmak isteyecektir. Dosya tanımlayıcılarının tükenmesi sorunlara neden olabilir ve büyük olasılıkla veri kaybına yol açar.
Nexus kurulumuna başlamadan önce Nexus Repository Manager’i çalıştıran kullanıcı hesabı için açık dosya tanımlayıcı sayısı sınırını 65.536 veya üstüne çıkardığınızdan gerekecektir.
Birçok Linux dağıtımlarında, /etc/security/limits.conf dosyası düzenlenerek belirli bir kullanıcı için kalıcı sınırlar belirlenebilir. Nexus kullanıcısı için hem yumuşak hem de kesin sınırlar için maksimum açık dosya sayısını 65536 olarak ayarlamak için, /etc/security/limits.conf dosyasına aşağıdaki satırı ekleyin; burada “nexus“, kullanıcı kimliğiyle değiştirilmelidir.
nexus – nofile 65536 |
Bu değişiklik, yalnızca nexus işlemi kullanıcısı yeni bir oturum açtığında geçerli olacaktır. Bu da aslında NXRM’yi yeniden başlatmanız gerektiği anlamına gelir.
Not : Ubuntu Server sistemlerinde init.d tarafından başlatılan işlemler için /etc/security/limits.conf dosyasını yok sayar. Bu nedenle, NXRM orada init.d kullanılarak başlatılırsa, /etc/pam.d/common-session‘ı düzenleyin ve aşağıdaki satırı açıklamayı kaldırın (satırın başındaki hash # ve boşluğu kaldırın):
# session required pam_limits.so |
Sunucuyu başlatmak için systemd kullanıyorsanız, yukarıdaki tanımlamalar çalışmayacaktır.
Bunun yerine, bir LimitNOFILE satırı eklemek için yapılandırma dosyasını değiştiriniz.
[Unit] Description=nexus service After=network.target [Service] Type=forking LimitNOFILE=65536 ExecStart=/opt/nexus/bin/nexus start ExecStop=/opt/nexus/bin/nexus stop User=nexus Restart=on-abort [Install] WantedBy=multi-user.target |
Java 1.8 Gereksinimi
Nexus Repoistory Manager, Java 8 Runtime Environment (JRE) gerektirir. Linux, OSX ve Windows dağıtımları da dahil belirli işletim sistemi için uygun çalışma zamanı ortamlarını içerir.
Linux işletim sisteminizde yüklü Java sürümünü java -version komutuyla onaylayabilirsiniz, örneğin:
$ java -version openjdk version “1.8.0_191” OpenJDK Runtime Environment (build 1.8.0_191-b12) OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode) |
Birden çok JDK veya JRE sürümü kurulduğunda, repository manager çalıştırmak için kullanılan işletim sistemi kullanıcısı olarak yukarıdaki komutu çalıştırarak doğru sürümün yapılandırıldığından emin olmanız gerekir. Standart olmayan bir konumunuz olması durumunda belirli bir JDK veya JRE kurulum yolunu belirtmek için yapılandırmayı güncellemeniz gerekir. Belirli bir Java konumu için yolu ayarlamak üzere, /bin/nexus komut dosyasını açın ve INSTALL4J_JAVA_HOME_OVERRIDE satırını bulun. Buradaki karmayı kaldırın ve JDK/JRE’nizin konumunu belirtiniz.
INSTALL4J_JAVA_HOME_OVERRIDE=/usr/lib/jvm/openjdk-8 |
Startup script, ile iç içe yerleştirilmiş bin/java komutunun yanı sıra çalışma zamanının ana ve ikincil sürümünün gerekli 1.8 olup olmadığını kontrol ederek çalışma zamanı ortamını doğrular. Yapılandırılmış çalışma zamanı uygun değilse, JAVA_HOME ortam değişkeni aracılığıyla yapılandırılmış uygun bir çalışma zamanını bulmak için en iyi çabayı gösterecektir. Başarılı olursa repository manager bu JVM ile başlatacaktır. Bu repository manager için diğer yüklü uygulamalar tarafından kullanılmayan özel bir çalışma zamanı ortamına sahip olmanızı sağlar. Ayrıca, repository manager tarafından kullanılan Java çalışma zamanı yükseltmelerini diğer uygulamalar tarafından kullanılan çalışma zamanı yükseltmelerinden ayırabilirsiniz.
İşlemci gereksinimi;
Nesus performans öncelikle CPU’dan ziyade I/O (disk ve ağ) ile sınırlıdır. Kullanılabilir CPU’lar, daha uzun süre çalışan işlemleri ve ayrıca web konteynerinin iş parçacığı tahsis algoritmalarını etkileyecektir.
Minimum CPU | 4 |
Tavsiye Edilen CPU | 8 ve üzeri |
Memory;
Buradaki bellek gereksinimlerinde sunucu üzerinde çalışan başka bir bellek kullanımı / işlemlerinin olmadığı varsayılır.
JVM Heap | JVM Direct | Host Physical/RAM | |
Minimum ( default ) | 2703MB | 2703MB | 8GB |
Maximum | 4GB | (host physical/RAM * 2/3) – JVM max heap | no limit |
Yığın bellek çalışma zamanı, uygulama nesnelerini depolar. Min (-Xms) ve max (-Xmx) bir değer belirtilmeli ve değerler aynı olmalıdır. Yığın belleğinin önerilenden daha fazla artırılması veya minimum ve maksimum değerlerin farklı olacak şekilde ayarlanması önerilmez. Bu işletim sisteminin gereksiz yere çalışmasına neden olan performans sorunları yaratacaktır. Sürekli olarak maksimum 4 GB yığın kullanıldığına dair ihtiyacınız yoksa veya yazılım hataları ile açıklanamayan sık uzun çöp toplama duraklamaları yoksa, maksimum yığın boyutunu 4 GB’den büyük ayarlamayın.
JVM Doğrudan Bellek;
Doğrudan bellek yığın belleğinin dışında ve bundan farklı olarak tahsis edilir. Mutlaka maksimum değer yapılandırılmalıdır.
Fiziksel Belleği Barındırın;
Genel olarak RAM olarak adlandırılan tüm işletim sistemine veya sanal donanıma ayrılan toplam bellek miktarıdır.
Genel Bellek Yönergeleri;
- Ana bilgisayarda minimum fiziksel / RAM bellek 8GB
- Minimum yığın (-Xms) ayarlanan maksimum yığına (-Xmx) eşit olmalıdır
- Minimum yığın boyutu 2703MB
- Maksimum yığın boyutu <= 4GB
- Minimum doğrudan bellek (-XX: MaxDirectMemorySize) boyutu 2703MB
- Sanal bellek değişimine izin vermek için minimum ayrılmamış ana bilgisayar fiziksel / RAM belleği, toplam fiziksel RAM’in 1 / 3’ünden az olmamalıdır
- Maksimum yığın + maksimum doğrudan bellek <= ana bilgisayar / RAM * 2/3
Örnek Bellek Yapılandırma Profilleri;
Bu profiller repository manager çalıştıran özel bir sunucu için gereken tipik fiziksel bellek gereksinimlerini ölçmeye yardımcı olur. Kullanım durumlarının doğasında var olan karmaşıklık nedeniyle, tek bir boyut hepsine uymaz ve bu yalnızca bir kılavuz olarak yorumlanmalıdır.
Profil Kullanım Örneği | Fiziksel / RAM Bellek |
küçük, kişisel repository <20 toplam blobstore boyutu <20GB tek depo biçimi türü | Minimum 8 GB |
orta, takım repository <50 toplam blobstore boyutu <200GB birkaç depo biçimi | 16 GB |
büyük, kurumsal depolar> 50 toplam blobstore boyutu> 200 GB çeşitli depo formatları | Minimum 32 GB ve üzeri |
Örnek Maksimum Bellek Yapılandırmaları;
Physical/RAM Memory | Example Maximum Memory Configuration |
8 GB | -Xms2703M -Xmx2703M -XX:MaxDirectMemorySize=2703M |
12 GB | -Xms4G -Xmx4G -XX:MaxDirectMemorySize=4014M |
16 GB | -Xms4G -Xmx4G -XX:MaxDirectMemorySize=6717M |
32 GB | -Xms6G -Xmx6G -XX:MaxDirectMemorySize=15530M |
64 GB | -Xms8G -Xmx8G -XX:+UseG1GC -XX:MaxDirectMemorySize=35158M |
Temporary Directory ;
Data-dir/tmp adresindeki geçici dizin noexec ile bağlanmamalıdır, aksi takdirde Repository Manager başlatılması java.lang.UnsatisfiedLinkError mesajı ile karşılaşabilirsiniz.
Disk Alanı;
- Uygulama Dizini ; Bu dizinin boyutu her sürümde biraz değişiklik gösterir. Şu anda kullanmakta olduğum bu sürümde en az 330 MB civarındadır. Repository Manager yükseltilirken zamanla aynı bilgisayarda birden fazla uygulama dizininin yüklenmesi normaldir. Bu neden dolayı ek olarak 200 MB daha alan ayırmanız faydalı olacaktır.
- Veri Dizini ; İlk başlangıçta Repository Manager çalışması için gereken temel dosyaları oluşturur. Disk alanının büyük kısmı dağıtılan ve vekalet edilen yapay nesnelerinizin yanı sıra tüm arama dizinleri tarafından tutulacaktır. Bu alan son derece kuruluma özgüdür ve kullanılan repository formatlarına, repository yapıların sayısına, ekiplerinizin ve projelerinizin boyutuna, vb. bağlı olacaktır. Bununla birlikte çok şey planlamak en iyisidir Docker ve Maven gibi formatlar çok büyük kullanabilir depolama miktarı (kolayca 500 Gb). Kullanılabilir disk alanı 4GB’ın altına düştüğünde veritabanı salt okunur moda geçecektir ve farklı hatalarla karşılaşmanız olası olacaktır.
Dosya Sistemi Optimizasyonu;
Ayrıca, takdirinize bağlı olarak kullanabileceğiniz bazı optimizasyon önerilerimiz de var. Ayrıca, Nexus Depo çalışma dizini bağlamalarınız için noatime seçeneğini de göz önünde bulundurun ve kullanılan sembolik bağlantıları sınırlayın, çünkü bu, yolların mutlak bir dosya yoluna çözülmesi gerektiğinde artan ek yüke neden olur.
Sonatype Nexus Repository Kurulumu;
Nesus kurulum öncesinde Centos 8 işletim sisteminin hazırlanması;
# İşletim sistemi adını değiştiriniz. Bu işlem için hostnamectl komutunu kullanabilirsiniz. Aşağıdaki adımların sıralı olarak yapılması ile işletim sisteminin yeniden adlandırılması ve yapılan bu değişikliğin uygulanması için işletim sistemini yeniden başlatılması için gerekli olan komutlar yer almaktadır.
hostnamectl set-hostname repo-nexus01 |
/etc dizininde yer alan hostname yapılandırma dosyasında sunucu için tanımlanan bilgisayar adının yer alıp/almadığı kontrol edilir.
vi /etc/hostname |
Son olarak /etc dizininde yer alan hosts yapılandırma dosyasının kontrol edilmesi gerekiyor.
vi /etc/hosts |
Yapılan bu değişikliklerin uygulanması için işletim sistemini yeniden başlatınız. Bu işlem için reboot komutunu çalıştırabilirsiniz.
reboot |
İşletim sisteminiz açıldıktan sonra yapılan bu değişikliğin uygulanıp/uygulanmadığını kontrol etmek için hostnamectl komutunu çalıştırabilirsiniz.
# işletim sistemi saat ve tarih formatının yapılandırmasını kontrol ediniz. Bu işlem için timedatectl komutunu çalıştırabilirsiniz.
Bu yapılandırmanın “Europe/Istanbul” olması için aşağıdaki komutu kullanabilirsiniz.
timedatectl set-timezone Europe/Istanbul |
# Centos 8 Minimal işletim sisteminde Nesus kurulum sırasında gerekli olabilecek ek paketlerin hazırlanması için gerekli olabilecek paketlerin yüklenmesi gerekebilir. Bu işlem için aşağıdaki komutu kullanabilirsiniz.
yum install -y wget net-tools |
# Centos 8 işletim sisteminizi güncelleyiniz. Bu işlem için aşağıdaki komutu kullanabilirsiniz.
yum update && yum upgrade |
#Centos 8 için Java 1.8 paketini kurunuz.
Bu işlem için aşağıdaki komutu kullanabilirsiniz.
yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel |
Java için gerekli olan paketlerin kurulumu tamamlandıktan sonra java’nın sürümü kontrol edilir. Bu işlem için aşağıdaki komutu kullanabilirsiniz.
java -version |
# Nexus Repository Manager 3’ü kurulum paketinin indirilmesi;
/opt dizinine gidiniz ve Repo’nun en son URL’sini resmi web sitesinden kopyalayınız ve ardından wget kullanarak indirin.
İndirilen .tar dosyasını ayıklayınız. Bu işlem için aşağıdaki komutu çalıştırınız.
tar -xvzf latest-unix.tar.gz |
.tar dosyasının içeriğini kontrol ediniz. Burada “Nexus-unix.tar.gz” ve “sonartype-work” olmak üzere iki dizin görmelisiniz.
ls -al |
Nexus’a ait bu iki klasörleri yeniden adlandırınız.
nexus-3.29.2-02 -> nexus
sonartype-work -> nexusdata
mv nexus-3.29.2-02 nexus mv sonatype-work nexusdata |
# Nexus kurulumu ve yapılandırması için yeni bir kullanıcı oluşturunuz. Oluşturulan bu kullanıcı için izinleri tanımlayınız.
nexus servisleri için yeni bir kullanıcı hesabı oluşturulur.
useradd –system –no-create-home nexus |
Yeni açılan Nexus kullanıcı hesabı için “nexus data” ve “nexus” dizinleri için sahiplik (owner) tanımlayınız.
chown -R nexus:nexus /opt/nexus chown -R nexus:nexus /opt/nexusdata |
c
Nexus Yapılandırması;
Nexus yapılandırma dosyasında (“nexus.vmoptions”) dizinleri değiştiriniz.
vi /opt/nexus/bin/nexus.vmoptions |
Öncesi;
-Xms2703m -Xmx2703m -XX:MaxDirectMemorySize=2703m -XX:+UnlockDiagnosticVMOptions -XX:+LogVMOutput -XX:LogFile=../sonatype-work/nexus3/log/jvm.log -XX:-OmitStackTraceInFastThrow -Djava.net.preferIPv4Stack=true -Dkaraf.home=. -Dkaraf.base=. -Dkaraf.etc=etc/karaf -Djava.util.logging.config.file=etc/karaf/java.util.logging.properties -Dkaraf.data=../sonatype-work/nexus3 -Dkaraf.log=../sonatype-work/nexus3/log -Djava.io.tmpdir=../sonatype-work/nexus3/tmp -Dkaraf.startLocalConsole=false # # additional vmoptions needed for Java9+ # # –add-reads=java.xml=java.logging # –add-exports=java.base/org.apache.karaf.specs.locator=java.xml,ALL-UNNAMED # –patch-module=java.base=lib/endorsed/org.apache.karaf.specs.locator-4.2.9.jar # –patch-module=java.xml=lib/endorsed/org.apache.karaf.specs.java.xml-4.2.9.jar # –add-opens=java.base/java.security=ALL-UNNAMED # –add-opens=java.base/java.net=ALL-UNNAMED # –add-opens=java.base/java.lang=ALL-UNNAMED # –add-opens=java.base/java.util=ALL-UNNAMED # –add-opens=java.naming/javax.naming.spi=ALL-UNNAMED # –add-opens=java.rmi/sun.rmi.transport.tcp=ALL-UNNAMED # –add-exports=java.base/sun.net.www.protocol.http=ALL-UNNAMED # –add-exports=java.base/sun.net.www.protocol.https=ALL-UNNAMED # –add-exports=java.base/sun.net.www.protocol.jar=ALL-UNNAMED # –add-exports=jdk.xml.dom/org.w3c.dom.html=ALL-UNNAMED # –add-exports=jdk.naming.rmi/com.sun.jndi.url.rmi=ALL-UNNAMED # # comment out this vmoption when using Java9+ # -Djava.endorsed.dirs=lib/endorsed |
Değiştirilecek satırlar;
-Dkaraf.data=
-Dkaraf.log=
-Djava.io.tmpdir=
Sonrası;
-Xms2703m -Xmx2703m -XX:MaxDirectMemorySize=2703m -XX:+UnlockDiagnosticVMOptions -XX:+LogVMOutput -XX:LogFile=../sonatype-work/nexus3/log/jvm.log -XX:-OmitStackTraceInFastThrow -Djava.net.preferIPv4Stack=true -Dkaraf.home=. -Dkaraf.base=. -Dkaraf.etc=etc/karaf -Djava.util.logging.config.file=etc/karaf/java.util.logging.properties -Dkaraf.data=../nexusdata/nexus3 -Dkaraf.log=../nexusdata/nexus3/log -Djava.io.tmpdir=../nexusdata/nexus3/tmp -Dkaraf.startLocalConsole=false # # additional vmoptions needed for Java9+ # # –add-reads=java.xml=java.logging # –add-exports=java.base/org.apache.karaf.specs.locator=java.xml,ALL-UNNAMED # –patch-module=java.base=lib/endorsed/org.apache.karaf.specs.locator-4.2.9.jar # –patch-module=java.xml=lib/endorsed/org.apache.karaf.specs.java.xml-4.2.9.jar # –add-opens=java.base/java.security=ALL-UNNAMED # –add-opens=java.base/java.net=ALL-UNNAMED # –add-opens=java.base/java.lang=ALL-UNNAMED # –add-opens=java.base/java.util=ALL-UNNAMED # –add-opens=java.naming/javax.naming.spi=ALL-UNNAMED # –add-opens=java.rmi/sun.rmi.transport.tcp=ALL-UNNAMED # –add-exports=java.base/sun.net.www.protocol.http=ALL-UNNAMED # –add-exports=java.base/sun.net.www.protocol.https=ALL-UNNAMED # –add-exports=java.base/sun.net.www.protocol.jar=ALL-UNNAMED # –add-exports=jdk.xml.dom/org.w3c.dom.html=ALL-UNNAMED # –add-exports=jdk.naming.rmi/com.sun.jndi.url.rmi=ALL-UNNAMED # # comment out this vmoption when using Java9+ # -Djava.endorsed.dirs=lib/endorsed ~ |
Nexus servis hesabının tanımlanması için boş olan kullanıcı adının nexus olarak değiştiriniz.
vi /opt/nexus/bin/nexus.rc |
Öncesi;
#run_as_user=”” |
Sonrası;
run_as_user=”nexus” |
“Nexus-default.properties” dosyasında yer alan “Application-host = 0.0.0.0 “ olan satır “application-host = 127.0.0.1” olarak değiştiriniz.
vi /opt/nexus/etc/nexus-default.properties |
Öncesi;
## DO NOT EDIT – CUSTOMIZATIONS BELONG IN $data-dir/etc/nexus.properties ## # Jetty section application-port=8081 application-host=0.0.0.0 nexus-args=${jetty.etc}/jetty.xml,${jetty.etc}/jetty-http.xml,${jetty.etc}/jetty-requestlog.xml nexus-context-path=/ # Nexus section nexu-edition=nexus-pro-edition nexus-features=\ nexus-pro-feature nexus.hazelcast.discovery.isEnabled=true |
Sonrası;
## DO NOT EDIT – CUSTOMIZATIONS BELONG IN $data-dir/etc/nexus.properties ## # Jetty section application-port=8081 application-host=127.0.0.1 nexus-args=${jetty.etc}/jetty.xml,${jetty.etc}/jetty-http.xml,${jetty.etc}/jetty-requestlog.xml nexus-context-path=/ # Nexus section nexus-edition=nexus-pro-edition nexus-features=\ nexus-pro-feature nexus.hazelcast.discovery.isEnabled=true |
Nexus kullanıcısının açık dosya sınırını yapılandırınız. “limits.conf” yapılandırma dosyasındaki “nexus – nofile 65536” ekleyiniz.
vi /etc/security/limits.conf |
Öncesi;
#It does not affect resource limits of the system services. # #Also note that configuration files in /etc/security/limits.d directory, #which are read in alphabetical order, override the settings in this #file in case the domain is the same or more specific. #That means for example that setting a limit for wildcard domain here #can be overriden with a wildcard setting in a config file in the #subdirectory, but a user specific setting here can be overriden only #with a user specific setting in the subdirectory. # #Each line describes a limit for a user in the form: # #<domain> <type> <item> <value> # #Where: #<domain> can be: # – a user name # – a group name, with @group syntax # – the wildcard *, for default entry # – the wildcard %, can be also used with %group syntax, # for maxlogin limit # #<type> can have the two values: # – “soft” for enforcing the soft limits # – “hard” for enforcing hard limits # #<item> can be one of the following: # – core – limits the core file size (KB) # – data – max data size (KB) # – fsize – maximum filesize (KB) # – memlock – max locked-in-memory address space (KB) # – nofile – max number of open file descriptors # – rss – max resident set size (KB) # – stack – max stack size (KB) # – cpu – max CPU time (MIN) # – nproc – max number of processes # – as – address space limit (KB) # – maxlogins – max number of logins for this user # – maxsyslogins – max number of logins on the system # – priority – the priority to run user process with # – locks – max number of file locks the user can hold # – sigpending – max number of pending signals # – msgqueue – max memory used by POSIX message queues (bytes) # – nice – max nice priority allowed to raise to values: [-20, 19] # – rtprio – max realtime priority # #<domain> <type> <item> <value> # #* soft core 0 #* hard rss 10000 #@student hard nproc 20 #@faculty soft nproc 20 #@faculty hard nproc 50 #ftp hard nproc 0 #@student – maxlogins 4 # End of file |
Sonrası;
#Also note that configuration files in /etc/security/limits.d directory, #which are read in alphabetical order, override the settings in this #file in case the domain is the same or more specific. #That means for example that setting a limit for wildcard domain here #can be overriden with a wildcard setting in a config file in the #subdirectory, but a user specific setting here can be overriden only #with a user specific setting in the subdirectory. # #Each line describes a limit for a user in the form: # #<domain> <type> <item> <value> # #Where: #<domain> can be: # – a user name # – a group name, with @group syntax # – the wildcard *, for default entry # – the wildcard %, can be also used with %group syntax, # for maxlogin limit # #<type> can have the two values: # – “soft” for enforcing the soft limits # – “hard” for enforcing hard limits # #<item> can be one of the following: # – core – limits the core file size (KB) # – data – max data size (KB) # – fsize – maximum filesize (KB) # – memlock – max locked-in-memory address space (KB) # – nofile – max number of open file descriptors # – rss – max resident set size (KB) # – stack – max stack size (KB) # – cpu – max CPU time (MIN) # – nproc – max number of processes # – as – address space limit (KB) # – maxlogins – max number of logins for this user # – maxsyslogins – max number of logins on the system # – priority – the priority to run user process with # – locks – max number of file locks the user can hold # – sigpending – max number of pending signals # – msgqueue – max memory used by POSIX message queues (bytes) # – nice – max nice priority allowed to raise to values: [-20, 19] – rtprio – max realtime priority # #<domain> <type> <item> <value> # #* soft core 0 #* hard rss 10000 #@student hard nproc 20 #@faculty soft nproc 20 #@faculty hard nproc 50 #ftp hard nproc 0 #@student – maxlogins 4 nexus – nofile 65536 # End of file |
# Nexus servisinin oluşturulması;
Systemd servisler dosyası içerisinde “/etc/systemd/system” içinde “nexus.service” oluşturunuz.
vi /etc/systemd/system/nexus.service |
Oluşturduğunuz “nexus.service” dosya içerisine aşağıdaki satırları kopyalayınız.
[Unit] Description=Nexus Service After=syslog.target network.target [Service] Type=forking LimitNOFILE=65536 ExecStart=/opt/nexus/bin/nexus start ExecStop=/opt/nexus/bin/nexus stop User=nexus Group=nexus Restart=on-failure [Install] WantedBy=multi-user.target |
Systemctl’ yi yeniden yükleyiniz.
systemctl daemon-reload |
Nexus’un servisini etkinleştiriniz ve başlatınız.
systemctl start nexus.service systemctl enable nexus.service systemctl status nexus.service |
Nexus’a ait log dosyalarını kontrol ediniz. Log dosyası nexus servisi başladıktan sonra oluşacaktır.
tail -f /opt/nexusdata/nexus3/log/nexus.log |
Nexus’un kullanmış olduğu TCP 8081 servis portlarını kontrol ediniz.
netstat -tunlp | grep 8081 |
# Ngnix Kurulumu
Epel repository kurunuz.
yum install -y epel-release |
Repository’leri listeleyeiniz.
yum repolist |
Ngnix’i paketlerinin kurulumunu başlatınız.
yum install -y nginx |
Ngnix servisinin etkinleştirilmesi ve başlatılması
systemctl enable nginx systemctl start nginx systemctl status nginx |
Nginx için SELinux politikasını yapılandırınız.
setsebool -P httpd_can_network_connect 1 |
Ngnix kurulumu tamamlandıktan sonra sunucu ip adresi yada host adı üzerinden test sayfasını kontrol ediniz.
Ngnix’de Nesus için yönlendirmenin tanımlanması;
Ngnix konfig dosyasını text editörü ile açınız.
vi /etc/nginx/nginx.conf |
Location satırının altına aşağıdaki satırları ekleyiniz.
location / { proxy_pass “http://127.0.0.1:8081”; 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_set_header X-Forwarded-Ssl on; proxy_read_timeout 300; proxy_connect_timeout 300; } |
Öncesi;
# For more information on configuration, see: # * Official English Documentation: http://nginx.org/en/docs/ # * Official Russian Documentation: http://nginx.org/ru/docs/ user nginx; worker_processes auto; error_log /var/log/nginx/error.log; pid /run/nginx.pid; # Load dynamic modules. See /usr/share/doc/nginx/README.dynamic. include /usr/share/nginx/modules/*.conf; events { worker_connections 1024; } http { log_format main ‘$remote_addr – $remote_user [$time_local] “$request” ‘ ‘$status $body_bytes_sent “$http_referer” ‘ ‘”$http_user_agent” “$http_x_forwarded_for”‘; access_log /var/log/nginx/access.log main; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; # Load modular configuration files from the /etc/nginx/conf.d directory. # See http://nginx.org/en/docs/ngx_core_module.html#include # for more information. include /etc/nginx/conf.d/*.conf; server { listen 80 default_server; listen [::]:80 default_server; server_name _; root /usr/share/nginx/html; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } } # Settings for a TLS enabled server. # # server { # listen 443 ssl http2 default_server; |
Sonrası;
include /etc/nginx/mime.types; default_type application/octet-stream; # Load modular configuration files from the /etc/nginx/conf.d directory. # See http://nginx.org/en/docs/ngx_core_module.html#include # for more information. include /etc/nginx/conf.d/*.conf; server { listen 80 default_server; listen [::]:80 default_server; server_name _; root /usr/share/nginx/html; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { proxy_pass “http://127.0.0.1:8081”; prxy_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_set_header X-Forwarded-Ssl on; proxy_read_timeout 300; proxy_connect_timeout 300; } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } } # Settings for a TLS enabled server. # # server { # listen 443 ssl http2 default_server; # listen [::]:443 ssl http2 default_server; # server_name _; # root /usr/share/nginx/html; # # ssl_certificate “/etc/pki/nginx/server.crt”; # ssl_certificate_key “/etc/pki/nginx/private/server.key”; # ssl_session_cache shared:SSL:1m; # ssl_session_timeout 10m; # ssl_ciphers PROFILE=SYSTEM; # ssl_prefer_server_ciphers on; # # # Load configuration files for the default server block. # include /etc/nginx/default.d/*.conf; # # location / { # } # # error_page 404 /404.html; # location = /40x.html { |
Yönlendirme bilgileri tanımlandıktan sonra nginx yapılandırmasını kontrol etmek için aşağıdaki komutu kullanabilirsiniz.
nginx -t |
Nginx servisini yeniden başlatınız.
systemctl restart nginx |
Nexus admin hesabı parolası erişimi için aşağıdaki komutu çalıştırınız.
cat /opt/nexusdata/nexus3/admin.password |
Web tarayınız’dan https bağlantısını kullanarak ile erişimi kontrol ediniz.
İlk oturum açtıktan sonra, aşağıda gösterildiği gibi benzer bir pencere görmelisiniz.
Bu adımda admin kullanıcısı için yeni bir şifre tanımlanır.
“Configure Anonymous Access” adımında penceresini görmelisiniz. Güvenlik nedeniyle anonim erişimi etkinleştirmeyiniz. Bu işlem için “Disable anonymous access” seçilir.
“Next” butonuna tıklayınız ve yapılandırma sihirbazını kapatınız.