Artifactory 군집 을 세우다.
아 리 운 에 Artifactory 군집 을 만들다.
Artifactory 라이선스
공식 정품 license, 3 개의 License 25900 달러 (16 만 7000 위안) 는 1 년 동안 비 싸 고 터무니없다.본 고 는 실험 학습 을 위주 로 최신 해독 판 4.7.4 를 사용 하여 해독 도 쉽게 군말 하지 않 는 다.상업 용 도 는 정품 을 사용 하 세 요.
필요 한 하드웨어
Artifactory 클 러 스 터 는 다음 과 같은 하드웨어 장치 가 필요 합 니 다.
네트워크
클 러 스 터 의 모든 노드 는 같은 랜 에 있 고 노드 간 에 고정 포트 로 데 이 터 를 전송 하 는 것 이 좋 습 니 다.
서버
본 고 는 아 리 클 라 우 드 ECS 서버 를 사용 하여 아 리 클 라 우 드 ECS 서버 세 대 를 각각 아 티 팩 터 리 - master, 아 티 팩 터 리 - slave, 아 티 팩 터 리 - nfs 라 는 이름 으로 신청 합 니 다.
Artifactory 노드 설정
artifactory 는 artifactory - master 와 artifactory - slave 에 배치 되 며 필요 한 소프트웨어 를 설치 해 야 합 니 다.
1 apt-get install software-properties-common
2 add-apt-repository ppa:webupd8team/java 3 apt-get update 4 apt-get install oracle-java8-installer
vi ~/.bashrc
은 파일 끝 에 다음 과 같은 내용 을 추가 합 니 다.1 if [ -f ~/.bash_env ]; then
2 . ~/.bash_env
3 fi
.bash_env
및 JAVA 추가HOME 환경 변수:1 export JAVA_HOME=/usr/lib/jvm/java-8-oracle
2 export JRE_HOME=$JAVA_HOME/jre 3 export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib 4 export PATH=$JAVA_HOME/bin:$PATH
touch ~/.bash_env
디 렉 터 리 에 업로드 하고 압축 을 풀 며 서로 다른 /opt
허가증 을 생 성하 여 각각 / opt / artifactory - pro - 4.7.4 / etc 디 렉 터 리 에 놓 습 니 다.1 scp artifactory-pro-4.7.4.zip root@<ip>:/opt
artifactory.lic
.1 export ARTIFACTORY_HOME=/opt/artifactory-pro-4.7.4
2 export JAVA_HOME=/usr/lib/jvm/java-8-oracle
3 export JRE_HOME=$JAVA_HOME/jre 4 export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib 5 export PATH=$JAVA_HOME/bin:$PATH
1 sh installService.sh
2
3 passwd artifactory <new password>
NFS 설정
NFS 설정 은 artifactory - nfs 에 NFS 서버 를 설치 해 야 하 며, artifactory - master 와 artifactory - salve 에 NFS 클 라 이언 트 를 설치 해 야 합 니 다.
1 apt-get install nfs-kernel-server
1 /artifactory/cluster-home *(rw,sync,no_root_squash,no_subtree_check)
1 apt-get install nfs-common portmap
1 mkdir /artifactory/cluster-home
2 mount <artifactory-nfs' IP>:/artifactory/cluster-home /artifactory/cluster-home
1 chown -R artifactory:artifactory /artifactory/cluster-home
MySQL 설치
artifactory - nfs 에 MySQL 을 설치 합 니 다.
1 apt-get install mysql-server mysql-client
2
3 mysql>
4 CREATE DATABASE artdb CHARACTER SET utf8 COLLATE utf8_bin; 5 CREATE USER artifactory IDENTIFIED BY 'password'; 6 GRANT ALL PRIVILEGES ON *.* TO 'artifactory'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION; 7 FLUSH PRIVILEGES;
artifactory - master 설정
.bash_env
에서 디 렉 터 리 를 만 듭 니 다.1 mkdir ha-etc
2 mkdir ha-data 3 mkdir ha-backup
/artifactory/cluster-home
에서 파일 을 만 듭 니 다 ./ha-etc
. 내용 은:1 ## token,
2 security.token=4n4tpxip7spQQu2pKf3811S2W7GY46Yb
cluster.properties
에서 파일 을 만 듭 니 다 ./ha-etc
. 내용 은:1 type=mysql
2 driver=com.mysql.jdbc.Driver 3 url=jdbc:mysql://<artifactory-nfs' IP>:3306/artdb?characterEncoding=UTF-8&elideSetAutoCommits=true 4 username=artifactory 5 password=password
storage.properties
와 artifactory.system.properties
파일1 mv /opt/artifactory-pro-4.7.4/etc/artifactory.system.properties /artifactory/cluster-home/ha-etc
2 mv /opt/artifactory-pro-4.7.4/etc/mimetypes.xml /artifactory/cluster-home/ha-etc
1 node.id=art1
2 cluster.home=/artifactory/cluster-home 3 context.url=http://<artifactory-master's IP>:8081/artifactory 4 membership.port=10001 5 primary=true
mimetypes.xml
파일 에 $CLUSTER 추가HOME 환경 변수.1 export ARTIFACTORY_HOME=/opt/artifactory-pro-4.7.4
2 export CLUSTER_HOME=/artifactory/cluster-home
3 export JAVA_HOME=/usr/lib/jvm/java-8-oracle 4 export JRE_HOME=$JAVA_HOME/jre 5 export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib 6 export PATH=$JAVA_HOME/bin:$PATH
artifactory - slave 설정
메모: 모든 아 티 팩 터 리 클 러 스 터 노드 에 사용 되 는 아 티 팩 터 리. lic 는 다 르 며, 그렇지 않 은 사람 은 오 류 를 보고 할 수 있 습 니 다.
1 node.id=art1
2 cluster.home=/artifactory/cluster-home 3 context.url=http://<artifactory-slave's IP>:8081/artifactory 4 membership.port=10001 5 primary=false
ha-node.properties
환경 변수.1 export ARTIFACTORY_HOME=/opt/artifactory-pro-4.7.4
2 export CLUSTER_HOME/artifactory/cluster-home
3 export JAVA_HOME=/usr/lib/jvm/java-8-oracle 4 export JRE_HOME=$JAVA_HOME/jre 5 export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib 6 export PATH=$JAVA_HOME/bin:$PATH
Nginx 부하 균형 설치
Nginx 도 사용
.bash_env
등 점성 세 션 을 지원 하지만 가장 좋 은 방안 은 세 번 째 미들웨어 인 Redis 를 통 해 session 을 저장 하고 Nginx + Tomcat + Redis 조합 을 사용 하 는 것 이다.여기 서 나 는 가장 간단 한 ha-node.properties
방법 을 사용한다.Nginx 의 default 파일 설정:##nginx.conf
user www-data;
worker_processes 8;
error_log /var/log/nginx/error.log crit;
pid /run/nginx.pid;
events
{
use epoll;
worker_connections 8192;
}
http
{
include /etc/nginx/mime.types;
default_type application/octet-stream;
charset utf-8;
server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
keepalive_timeout 30;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
# gzip
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plain application/json application/xml application/x-javascript text/css text/xml text/javascript;
gzip_vary on;
#
client_max_body_size 10m;
#
client_body_buffer_size 128k;
# _
proxy_connect_timeout 600;
# _ _
proxy_read_timeout 600;
# _
proxy_send_timeout 600;
# _ Nginx _
proxy_buffer_size 16k;
#Nginx Buffer
proxy_buffers 4 32k;
# proxy_buffers
proxy_busy_buffers_size 64k;
#proxy
proxy_temp_file_write_size 64k;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
##default
upstream artifactory {
ip_hash;
server <ip>:<port>;
server <ip>:<port>;
}
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /usr/share/nginx/html;
index index.html index.htm;
# Make site accessible from http://localhost/
server_name localhost;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
# Uncomment to enable naxsi on this location
# include /etc/nginx/naxsi.rules
}
location /artifactory {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Url-Scheme $scheme;
proxy_redirect off;
proxy_pass http://artifactory;
}
# Media: images, icons, video, audio, HTC
location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc| woff)$ {
expires 1M;
access_log off;
add_header Cache-Control "public";
proxy_pass http://artifactory;
}
# CSS and Javascript
location ~* \.(?:css|js)$ {
expires 1M;
access_log off;
add_header Cache-Control "public";
proxy_pass http://artifactory;
}
}
시동 을 걸다
1 su - artifactory
2 service artifactory start
창고 간 복사
Artifactory 는 지역 별 프로젝트 간 아 티 팩 토리 인 스 턴 스 복 제 를 지원 합 니 다.가 져 온 좋 은 점 은 다음 과 같은 몇 가지 가 있다.
Push 방식
로 컬 창고 에 사용 합 니 다. 특정한 아 티 팩 토리 인 스 턴 스 에 올 린 로 컬 창 고 는 다른 원 격 아 티 팩 토리 창고 에 동기 화 할 수 있 습 니 다.
Pull 방식
원 격 창고 에 사용 합 니 다. 원 격 artifactory 창 고 를 로 컬 artifactory 의 한 창고 에 동기 화 합 니 다.
Artifactory 클 러 스 터 성능 최적화
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.