Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1
Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1
Taiga adalah aplikasi sumber terbuka dan bebas untuk pengurusan projek. Tidak seperti alat pengurusan projek yang lain, Taiga menggunakan pendekatan tangkas tambahan untuk mengurus pembangunan projek. Taiga adalah aplikasi yang sangat kuat dan dapat disesuaikan sepenuhnya. Bahagian belakang Taiga ditulis dalam Python menggunakan kerangka Django. Bahagian depan ditulis dalam JavaScript menggunakan kerangka CoffeeScript dan AngularJS. Taiga merangkumi ciri seperti kolaborasi projek, papan Kanban, pelacakan pepijat, pelaporan, penjejakan masa, backlog, wiki dan banyak lagi.
Dalam tutorial ini, kita akan menggunakan taiga.example.com
sebagai nama domain yang ditunjuk ke pelayan. Ganti semua kejadian taiga.example.com
dengan nama domain sebenar anda.
Kemas kini sistem asas anda menggunakan panduan Cara Mengemas kini CentOS 7 . Setelah sistem anda dikemas kini, terus pasang PostgreSQL.
PostgreSQL adalah sistem pangkalan data hubungan objek yang terkenal dengan kestabilan dan kepantasannya. Taiga menggunakan PostgreSQL untuk menyimpan pangkalan data. Tambahkan repositori PostgreSQL ke dalam sistem.
sudo yum -y install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-1.noarch.rpm
Pasang pelayan pangkalan data PostgreSQL.
sudo yum -y install postgresql10-server postgresql10-contrib postgresql10
Inisialkan pangkalan data.
sudo /usr/pgsql-10/bin/postgresql-10-setup initdb
Mulakan pelayan PostgreSQL dan dayakannya secara automatik pada masa boot.
sudo systemctl start postgresql-10
sudo systemctl enable postgresql-10
Tukar kata laluan untuk pengguna PostgreSQL lalai.
sudo passwd postgres
Log masuk sebagai pengguna PostgreSQL.
sudo su - postgres
Buat pengguna PostgreSQL baru untuk Taiga.
createuser taiga
PostgreSQL menyediakan psql
shell untuk menjalankan pertanyaan pada pangkalan data. Beralih ke shell PostgreSQL.
psql
Tetapkan kata laluan untuk pengguna Taiga pangkalan data yang baru dibuat.
ALTER USER taiga WITH ENCRYPTED password 'DBPassword';
Gantikan DBPassword
dengan kata laluan yang selamat. Buat pangkalan data baru untuk pemasangan Taiga.
CREATE DATABASE taiga OWNER taiga;
Keluar dari psql
cangkerang.
\q
Beralih kepada sudo
pengguna.
exit
Python 2.7 hadir terlebih dahulu pada pelayan CentOS 7, tetapi Taiga memerlukan Python versi 3.4 atau lebih baru.
Kami akan memasang Python versi 3.6 dari sumber. Pasang alat binaan dan penyusun yang diperlukan.
sudo yum -y install gcc autoconf flex bison libjpeg-turbo-devel freetype-devel zlib-devel zeromq3-devel gdbm-devel ncurses-devel automake libtool libffi-devel curl git tmux libxml2-devel libxslt-devel openssl-devel gcc-c++
Muat turun kod sumber Python.
wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tar.xz
Ekstrak dan konfigurasikan pemasangan Python.
tar xf Python-3.6.3.tar.xz
cd Python-3.6.3
./configure --enable-optimizations --prefix=/usr
Buat pemasangan alternatif.
sudo make altinstall
Catatan : Pemasangan alternatif memasang Python 3.6 tanpa menggantikan versi lalai Python. Sekiranya anda mengganti Python lalai di CentOS 7, ia boleh merosakkan YUM
pengurus repositori.
Anda kini dapat menyemak versinya.
python3.6 -V
Anda sepatutnya melihat perkara berikut.
[user@vultr Python-3.6.3]$ python3.6 -V
Python 3.6.3
Pasang Persekitaran Maya Python menggunakan pip
.
sudo pip3.6 install virtualenv virtualenvwrapper
sudo pip3.6 install --upgrade setuptools pip
Persekitaran maya Python digunakan untuk membuat persekitaran maya terpencil untuk projek Python. Persekitaran maya mengandungi direktori pemasangannya sendiri dan tidak berkongsi perpustakaan dengan persekitaran maya global dan lain-lain.
Taiga menggunakan RabbitMQ untuk memproses barisan mesej. RabbitMQ memerlukan perpustakaan Erlang berfungsi. Pasang Erlang.
sudo yum -y install erlang
Import kunci tandatangan GPG RabbitMQ.
sudo rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
Pasang RabbitMQ.
sudo yum -y install https://dl.bintray.com/rabbitmq/rabbitmq-server-rpm/rabbitmq-server-3.6.12-1.el7.noarch.rpm
Mulakan dan aktifkan pelayan RabbitMQ.
sudo systemctl start rabbitmq-server
sudo systemctl enable rabbitmq-server
Tambah pengguna dan vhost RabbitMQ. Juga, berikan kebenaran kepada pengguna melalui hos.
sudo rabbitmqctl add_user taiga StrongMQPassword
sudo rabbitmqctl add_vhost taiga
sudo rabbitmqctl set_permissions -p taiga taiga ".*" ".*" ".*"
Pastikan untuk mengganti StrongMQPassword
dengan kata laluan yang selamat.
Node.js versi 7 atau lebih baru diperlukan untuk menyusun frontend Taiga. Tambahkan repositori Node.js versi 8.
curl -sL https://rpm.nodesource.com/setup_8.x | sudo -E bash -
Pasang Node.js dan pwgen
utiliti.
sudo yum install -y nodejs pwgen
pwgen
akan digunakan kemudian untuk menghasilkan rentetan rahsia yang kuat. Pasang CoffeeScript, kerana akan digunakan untuk menyusun fail Taiga yang ditulis dengan kerangka CoffeeScript.
sudo npm install -g coffee-script gulp
Tambahkan pengguna sistem baru untuk Taiga untuk memastikan bahawa proses Taiga berjalan sebagai pengguna yang tidak istimewa.
sudo useradd -s /bin/bash taiga
sudo su - taiga
Catatan : Mulai sekarang, semua arahan perlu dijalankan sebagai pengguna yang tidak berhak taiga
sehingga anda diminta untuk beralih kembali ke sudo
pengguna.
Buat direktori baru untuk menyimpan fail log.
mkdir -p ~/logs
Klon repositori backend Taiga dari GitHub dan lihat cawangan stabil terbaru.
git clone https://github.com/taigaio/taiga-back.git taiga-back
cd taiga-back
git checkout stable
Konfigurasikan virtualenvwrapper
untuk menggunakan Python 3.6 dan bukannya Python lalai.
echo "VIRTUALENVWRAPPER_PYTHON='/bin/python3.6'" >> ~/.bashrc
echo "source /usr/bin/virtualenvwrapper.sh" >> ~/.bashrc
Akhirnya, sumber ~/.bashrc
fail.
source ~/.bashrc
Sekarang buat persekitaran maya baru untuk Taiga menggunakan Python 3.6.
mkvirtualenv -p /bin/python3.6 taiga
pip3.6 install --upgrade setuptools
Pasang kebergantungan Python yang diperlukan menggunakan pip
.
pip3.6 install -r requirements.txt
Isi pangkalan data dengan data awal yang diperlukan.
python3.6 manage.py migrate --noinput
python3.6 manage.py loaddata initial_user
python3.6 manage.py loaddata initial_project_templates
python3.6 manage.py compilemessages
python3.6 manage.py collectstatic --noinput
Perintah di atas akan menulis data ke dalam pangkalan data PostgreSQL. Taiga juga menghantar beberapa data demo atau sampel yang berguna untuk menilai produk. Sekiranya anda ingin memasang data sampel, jalankan yang berikut.
python3.6 manage.py sample_data
Catatan : Memasang data sampel adalah pilihan dan hanya bertujuan untuk menilai produk.
Sebelum kita membuat fail konfigurasi untuk backend Taiga, kita perlu menghasilkan rentetan rahsia. Rentetan ini akan digunakan untuk mengenkripsi data sesi.
Hasilkan rentetan rawak 64 aksara.
pwgen -s -1 64
Anda harus melihat output sebagai rentetan rawak.
(taiga) [taiga@vultr taiga-back]$ pwgen -s -1 64
CZfjWjHctPwnLZsDysWqaZcYfRCviHbI4fVRwfhpbtAHPNBtmkcegpwpYjTtEziJ
Buat fail konfigurasi baru untuk Taiga Backend.
nano ~/taiga-back/settings/local.py
Isi fail dengan kod berikut.
from .common import *
MEDIA_URL = "https://taiga.example.com/media/"
STATIC_URL = "https://taiga.example.com/static/"
SITES["front"]["scheme"] = "https"
SITES["front"]["domain"] = "taiga.example.com"
SECRET_KEY = "Generated_Secret_Key"
DEBUG = False
PUBLIC_REGISTER_ENABLED = True
DEFAULT_FROM_EMAIL = "[email protected]"
SERVER_EMAIL = DEFAULT_FROM_EMAIL
#CELERY_ENABLED = True
EVENTS_PUSH_BACKEND = "taiga.events.backends.rabbitmq.EventsPushBackend"
EVENTS_PUSH_BACKEND_OPTIONS = {"url": "amqp://taiga:StrongMQPassword@localhost:5672/taiga"}
# Uncomment and populate with proper connection parameters
# for enable email sending. EMAIL_HOST_USER should end by @domain.tld
#EMAIL_BACKEND = "django.core.mail.backends.smtp.EmailBackend"
#EMAIL_USE_TLS = False
#EMAIL_HOST = "mail.example.com"
#EMAIL_HOST_USER = "[email protected]"
#EMAIL_HOST_PASSWORD = "SMTPPassword"
#EMAIL_PORT = 25
# Uncomment and populate with proper connection parameters
# for enable github login/singin.
#GITHUB_API_CLIENT_ID = "yourgithubclientid"
#GITHUB_API_CLIENT_SECRET = "yourgithubclientsecret"
Pastikan untuk mengganti nama domain contoh dengan yang sebenarnya dalam kod di atas. Juga, ganti Generated_Secret_Key
dengan kunci rahsia sebenar dan StrongMQPassword
dengan kata laluan sebenar untuk pengguna antrian pesanan Taiga. Sekiranya anda mempunyai pelayan SMTP yang siap dan anda ingin menggunakan ciri penghantaran e-mel dengan segera, anda boleh melepaskan pilihan e-mel dan menetapkan nilai yang sesuai. Sekiranya anda belum menyediakan pelayan e-mel, anda boleh melangkau penyediaan ciri e-mel buat masa ini dan menetapkannya kemudian dalam fail konfigurasi ini.
Sekiranya anda ingin mengaktifkan log masuk GitHub, buat aplikasi di GitHub dan berikan ID klien API dan rahsia pelanggan.
Untuk segera memeriksa apakah backend Taiga dapat dimulakan, jalankan pelayan Django bawaan.
workon taiga
python manage.py runserver
Anda akan melihat output berikut jika pelayan berjaya dimulakan.
(taiga) [taiga@vultr taiga-back]$ workon taiga
(taiga) [taiga@vultr taiga-back]$ python manage.py runserver
Trying import local.py settings...
Trying import local.py settings...
Performing system checks...
System check identified no issues (0 silenced).
October 25, 2017 - 07:07:28
Django version 1.10.6, using settings 'settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
Untuk mengesahkan sama ada API dapat diakses, buka sesi terminal lain dan jalankan yang berikut.
curl http://127.0.0.1:8000/api/v1/
Anda akan melihat output serupa yang dikeluarkan oleh panggilan API.
[user@vultr ~]$ curl http://127.0.0.1:8000/api/v1/
{"locales": "http://127.0.0.1:8000/api/v1/locales", "auth": "http://127.0.0.1:8000/api/v1/auth", "users": "http://127.0.0.1:8000/api/v1/users", "roles": "http://127.0.0.1:8000/api/v1/roles", "user-storage": "http://127.0.0.1:8000/api/v1/user-storage", "notify-policies": "http://127.0.0.1:8000/api/v1/notify-policies", "projects": "http://127.0.0.1:8000/api/v1/projects", "projects/(?P<resource_id>\\d+)/fans": "http://127.0.0.1:8000/api/v1/projects/(?P<resource_id>\\d+)/fans", "projects/(?P<resource_id>\\d+)/watchers": "http://127.0.0.1:8000/api/v1/projects/(?P<resource_id>\\d+)/watchers", "project-templates": "http://127.0.0.1:8000/api/v1/project-templates",
Hentikan pelayan backend Taiga dengan menekan " Ctrl + C
" dan nyahaktifkan persekitaran maya.
deactivate
Taiga frontend adalah komponen Taiga yang melayani antara muka pengguna Web. Klon repositori frontend Taiga dari Github dan lihat cawangan stabil terbaru.
cd ~
git clone https://github.com/taigaio/taiga-front-dist.git taiga-front-dist
cd taiga-front-dist
git checkout stable
Buat fail konfigurasi baru untuk frontend Taiga.
nano ~/taiga-front-dist/dist/conf.json
Isi fail dengan ini.
{
"api": "https://taiga.example.com/api/v1/",
"eventsUrl": "wss://taiga.example.com/events",
"eventsMaxMissedHeartbeats": 5,
"eventsHeartbeatIntervalTime": 60000,
"eventsReconnectTryInterval": 10000,
"debug": true,
"debugInfo": false,
"defaultLanguage": "en",
"themes": ["taiga"],
"defaultTheme": "taiga",
"publicRegisterEnabled": true,
"feedbackEnabled": true,
"privacyPolicyUrl": null,
"termsOfServiceUrl": null,
"maxUploadFileSize": null,
"contribPlugins": [],
"tribeHost": null,
"importers": [],
"gravatar": true
}
Pastikan untuk mengganti example
domain dengan domain sebenar. Anda juga boleh mengubah bahasa lalai dan parameter lain dalam konfigurasi di atas.
Selain dari frontend dan backend, kita juga perlu memasang acara Taiga. Acara Taiga adalah pelayan soket web, dan ia membolehkan frontend Taiga menunjukkan perubahan dalam masa nyata dalam modul seperti backlog, Kanban dan banyak lagi. Ia menggunakan pelayan RabbitMQ untuk pemprosesan mesej.
Klon repositori acara Taiga dari Github.
cd ~
git clone https://github.com/taigaio/taiga-events.git taiga-events
cd taiga-events
Pasang kebergantungan Node.js menggunakan npm
.
npm install
Buat fail konfigurasi baru untuk acara Taiga.
nano ~/taiga-events/config.json
Isi fail dengan yang berikut.
{
"url": "amqp://taiga:StrongMQPassword@localhost:5672/taiga",
"secret": "Generated_Secret_Key",
"webSocketServer": {
"port": 8888
}
}
Ganti Generated_Secret_Key
dengan kunci rahsia panjang 64 aksara yang sebenarnya telah anda hasilkan pada masa lalu. Kunci rahsia harus sama persis dengan kunci yang anda berikan dalam fail konfigurasi backend Taiga. Juga, kemas kini StrongMQPassword
dengan kata laluan sebenar untuk pengguna antrian pesanan Taiga.
Circus adalah pengurus proses untuk aplikasi Python. Kami akan menggunakan Circus untuk menjalankan backend dan acara Taiga.
Beralih kembali ke sudo
pengguna.
exit
Catatan : Mulai sekarang anda perlu menjalankan perintah menggunakan sudo
pengguna.
Pasang Circus menggunakan pip
.
sudo pip3.6 install circus
Buat direktori baru untuk menyimpan konfigurasi Circus.
sudo mkdir /etc/circus
sudo mkdir /etc/circus/conf.d
Buat fail konfigurasi lalai untuk Circus.
sudo nano /etc/circus/circus.ini
Tandakan fail dengan konfigurasi berikut.
[circus]
check_delay = 5
endpoint = tcp://127.0.0.1:5555
pubsub_endpoint = tcp://127.0.0.1:5556
include = /etc/circus/conf.d/*.ini
Buat fail konfigurasi Circus baru untuk menjalankan backend Taiga.
sudo nano /etc/circus/conf.d/taiga.ini
Isi fail dengan yang berikut.
[watcher:taiga]
working_dir = /home/taiga/taiga-back
cmd = gunicorn
args = -w 3 -t 60 --pythonpath=. -b 127.0.0.1:8001 taiga.wsgi
uid = taiga
numprocesses = 1
autostart = true
send_hup = true
stdout_stream.class = FileStream
stdout_stream.filename = /home/taiga/logs/gunicorn.stdout.log
stdout_stream.max_bytes = 10485760
stdout_stream.backup_count = 4
stderr_stream.class = FileStream
stderr_stream.filename = /home/taiga/logs/gunicorn.stderr.log
stderr_stream.max_bytes = 10485760
stderr_stream.backup_count = 4
[env:taiga]
PATH = /home/taiga/.virtualenvs/taiga/bin:$PATH
TERM=rxvt-256color
SHELL=/bin/bash
USER=taiga
LANG=en_US.UTF-8
HOME=/home/taiga
PYTHONPATH=/home/taiga/.virtualenvs/taiga/lib/python3.6/site-packages
Buat konfigurasi Circus baru untuk menjalankan Taiga Events.
sudo nano /etc/circus/conf.d/taiga-events.ini
Isi fail dengan yang berikut.
[watcher:taiga-events]
working_dir = /home/taiga/taiga-events
cmd = /usr/bin/coffee
args = index.coffee
uid = taiga
numprocesses = 1
autostart = true
send_hup = true
stdout_stream.class = FileStream
stdout_stream.filename = /home/taiga/logs/taigaevents.stdout.log
stdout_stream.max_bytes = 10485760
stdout_stream.backup_count = 12
stderr_stream.class = FileStream
stderr_stream.filename = /home/taiga/logs/taigaevents.stderr.log
stderr_stream.max_bytes = 10485760
stderr_stream.backup_count = 12
Sekarang kita perlu membuat systemd
fail perkhidmatan untuk menjalankan Circus. Menggunakan systemd
akan memastikan bahawa Circus dimulakan secara automatik semasa reboot dan kegagalan.
sudo nano /etc/systemd/system/circus.service
Isi fail.
[Unit]
Description=Circus process manager
After=syslog.target network.target nss-lookup.target
[Service]
Type=simple
ExecReload=/usr/bin/circusctl reload
ExecStart=/usr/bin/circusd /etc/circus/circus.ini
Restart=always
RestartSec=5
[Install]
WantedBy=default.target
Mulakan Circus dan aktifkan pada waktu boot secara automatik.
sudo systemctl start circus
sudo systemctl enable circus
Periksa status Circus.
circusctl status
Anda akan melihat output berikut.
[user@vultr ~]$ circusctl status
taiga: active
taiga-events: active
Kini, Taiga berjaya dipasang dan dijalankan. Sebelum kita dapat menggunakannya, kita perlu mendedahkan pemasangan menggunakan pelayan web pengeluaran apa pun.
Kami akan menggunakan pelayan web Nginx sebagai proksi terbalik untuk melayani aplikasi kepada pengguna. Kami juga akan memperoleh dan memasang sijil SSL dari Let's Encrypt.
Pasang Nginx dan Certbot. Certbot adalah pelanggan pengeluaran sijil rasmi untuk Let's Encrypt CA.
sudo yum -y install nginx certbot
Sesuaikan tetapan firewall anda untuk membolehkan standard HTTP
dan HTTPS
port melalui firewall kerana Certbot perlu membuat sambungan HTTP untuk mengesahkan pihak berkuasa domain.
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
Catatan : Untuk mendapatkan sijil dari Let's Encrypt CA, anda mesti memastikan bahawa domain yang ingin anda hasilkan sijil dihalakan ke pelayan. Sekiranya tidak, buat perubahan yang diperlukan pada rekod DNS domain anda dan tunggu sehingga DNS disebarkan sebelum membuat permintaan sijil sekali lagi. Certbot memeriksa pihak berkuasa domain sebelum menyediakan sijil.
Sekarang gunakan pelayan web terbina dalam Certbot untuk menghasilkan sijil untuk domain anda.
sudo certbot certonly --standalone -d taiga.example.com
Sijil yang dihasilkan kemungkinan akan disimpan dalam /etc/letsencrypt/live/taiga.example.com/
direktori. Sijil SSL akan disimpan sebagai fullchain.pem
, dan kunci peribadi akan disimpan sebagai privkey.pem
.
Mari Sulitkan sijil tamat dalam 90 hari, jadi disarankan untuk mengatur pembaharuan automatik untuk sijil menggunakan pekerjaan Cron. Cron adalah perkhidmatan sistem yang digunakan untuk menjalankan tugas berkala.
Buka fail kerja cron.
sudo crontab -e
Tambahkan baris berikut.
0 0 * * * /usr/bin/certbot renew --quiet
Pekerjaan cron di atas akan dijalankan setiap hari pada tengah malam. Sekiranya sijil itu akan habis tempohnya, sertifikat akan diperbaharui secara automatik.
Hasilkan Diffie-Hellman
parameter yang kuat . Ini memberikan lapisan keselamatan tambahan untuk pertukaran data antara host dan pelayan.
sudo openssl dhparam -out /etc/ssl/dhparam.pem 2048
Buat blok pelayan Nginx baru untuk melayani frontend Taiga.
sudo nano /etc/nginx/conf.d/taiga.conf
Isi fail dengan yang berikut.
server {
listen 80;
server_name taiga.example.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name taiga.example.com;
access_log /home/taiga/logs/nginx.access.log;
error_log /home/taiga/logs/nginx.error.log;
large_client_header_buffers 4 32k;
client_max_body_size 50M;
charset utf-8;
index index.html;
# Frontend
location / {
root /home/taiga/taiga-front-dist/dist/;
try_files $uri $uri/ /index.html;
}
# Backend
location /api {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8001/api;
proxy_redirect off;
}
location /admin {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8001$request_uri;
proxy_redirect off;
}
# Static files
location /static {
alias /home/taiga/taiga-back/static;
}
# Media files
location /media {
alias /home/taiga/taiga-back/media;
}
location /events {
proxy_pass http://127.0.0.1:8888/events;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_connect_timeout 7d;
proxy_send_timeout 7d;
proxy_read_timeout 7d;
}
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
add_header Public-Key-Pins 'pin-sha256="klO23nT2ehFDXCfx3eHTDRESMz3asj1muO+4aIdjiuY="; pin-sha256="633lt352PKRXbOwf4xSEa1M517scpD3l5f79xMD9r9Q="; max-age=2592000; includeSubDomains';
ssl on;
ssl_certificate /etc/letsencrypt/live/taiga.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/taiga.example.com/privkey.pem;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK';
ssl_session_cache shared:SSL:10m;
ssl_dhparam /etc/ssl/dhparam.pem;
ssl_stapling on;
ssl_stapling_verify on;
}
Pastikan untuk menukar nama domain dan jalan ke sijil SSL.
Sekarang anda boleh memulakan semula pelayan web Nginx dan mengaktifkannya untuk memulakan boot secara automatik.
sudo systemctl restart nginx
sudo systemctl status nginx
Akhirnya, perbaiki hak milik dan kebenaran pada fail Taiga.
sudo chown -R taiga:taiga /home/taiga/
sudo chmod o+x /home/taiga/
Anda kini boleh mengakses pemasangan Taiga dengan pergi ke https://taiga.example.com
. Log masuk menggunakan akaun pentadbir awal dengan nama pengguna " admin
" dan kata laluan " 123123
". Pemasangan anda kini siap digunakan untuk pengeluaran. Mulakan dengan membuat projek baru atau menilai produk. Sekiranya anda sudah menguruskan projek di Github, Jira, atau Trello, anda boleh mengimport projek ke Taiga dengan mudah menggunakan pengimport .
Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1
Ramai daripada anda tahu Switch akan keluar pada Mac 2017 dan ciri baharunya. Bagi yang tidak tahu, kami telah menyediakan senarai ciri yang menjadikan 'Tukar' sebagai 'gajet yang mesti ada'.
Adakah anda menunggu gergasi teknologi memenuhi janji mereka? semak apa yang masih belum dihantar.
Baca blog untuk mengetahui lapisan berbeza dalam Seni Bina Data Besar dan fungsinya dengan cara yang paling mudah.
Baca ini untuk mengetahui cara Kecerdasan Buatan semakin popular di kalangan syarikat berskala kecil dan cara ia meningkatkan kebarangkalian untuk menjadikan mereka berkembang dan memberikan pesaing mereka kelebihan.
CAPTCHA telah menjadi agak sukar untuk diselesaikan oleh pengguna dalam beberapa tahun kebelakangan ini. Adakah ia dapat kekal berkesan dalam pengesanan spam dan bot pada masa hadapan?
Apabila Sains Berkembang pada kadar yang pantas, mengambil alih banyak usaha kita, risiko untuk menundukkan diri kita kepada Ketunggalan yang tidak dapat dijelaskan juga meningkat. Baca, apakah makna ketunggalan bagi kita.
Apakah teleperubatan, penjagaan kesihatan jauh dan impaknya kepada generasi akan datang? Adakah ia tempat yang baik atau tidak dalam situasi pandemik? Baca blog untuk mencari paparan!
Anda mungkin pernah mendengar bahawa penggodam memperoleh banyak wang, tetapi pernahkah anda terfikir bagaimana mereka memperoleh wang seperti itu? Mari berbincang.
Baru-baru ini Apple mengeluarkan macOS Catalina 10.15.4 kemas kini tambahan untuk menyelesaikan masalah tetapi nampaknya kemas kini itu menyebabkan lebih banyak masalah yang membawa kepada pemusnahan mesin mac. Baca artikel ini untuk mengetahui lebih lanjut