Skonfiguruj udział NFS na Debianie
NFS to oparty na sieci system plików, który umożliwia komputerom dostęp do plików w sieci komputerowej. Ten przewodnik wyjaśnia, w jaki sposób możesz udostępniać foldery w NF
Nginx to oprogramowanie serwera sieciowego typu open source zaprojektowane z myślą o wysokiej współbieżności, które może być używane jako serwer HTTP / HTTPS, serwer odwrotnego proxy, serwer proxy poczty, równoważenie obciążenia oprogramowania, terminator TLS, serwer buforowania i wiele więcej!
Jest to bardzo modułowe oprogramowanie. Nawet niektóre z pozornie „wbudowanych” części oprogramowania, takie jak GZIP lub SSL, są w rzeczywistości tworzone jako moduły, które można włączać i wyłączać podczas kompilacji.
Ma podstawowe (macierzyste) moduły i zewnętrzne (zewnętrzne) moduły stworzone przez społeczność. Obecnie istnieje ponad sto zewnętrznych modułów, które możemy wykorzystać.
Napisane w C, to szybkie i lekkie oprogramowanie.
Instalacja Nginx z kodu źródłowego jest stosunkowo łatwa - pobierz najnowszą wersję kodu źródłowego Nginx, skonfiguruj, skompiluj i zainstaluj.
Musisz wybrać, czy pobrać wersję główną, czy stabilną, ale zbudowanie ich jest takie samo.
W tym przewodniku skompilujemy główną wersję Nginx na Debian 10 (buster). Wykorzystamy wszystkie dostępne moduły w wersji open source Nginx.
Prawdopodobnie pytasz, dlaczego miałbyś kompilować Nginx ze źródła, kiedy możesz używać przygotowanych pakietów. Oto kilka powodów, dla których warto samodzielnie skompilować określone oprogramowanie:
Nginx Open Source jest dostępny w dwóch wersjach:
Nginx ma dwa typy modułów, z których możesz korzystać: moduły podstawowe i moduły innych firm.
Główni programiści Nginx budują moduły podstawowe i są częścią samego oprogramowania.
Społeczność buduje moduły innych firm i można ich używać do rozszerzania funkcjonalności. Istnieje wiele pomocnych modułów innych firm.
Moduły statyczne istnieją w Nginx od pierwszej wersji. Dynamiczne moduły zostały wprowadzone wraz z Nginx 1.9.11+ w lutym 2016 r.
W przypadku modułów statycznych zestaw modułów tworzących plik binarny Nginx jest ustalany przez ./configure
skrypt w czasie kompilacji . Wykorzystanie --with-foo_bar_module
lub --add-module=PATH
składnia modułów statycznych .
Aby skompilować moduł podstawowy (standardowy) jako dynamiczny, dodajemy =dynamic
na przykład --with-http_image_filter_module=dynamic
.
Aby skompilować moduł innej firmy jako dynamiczny, używamy --add-dynamic-module=/path/to/module
składni, a następnie ładujemy je za pomocą load_module
dyrektywy w globalnym kontekście nginx.conf
pliku.
W porównaniu z niektórymi innymi programami UNIX / Linux, Nginx jest dość lekki i nie ma wielu zależności bibliotek. Domyślna konfiguracja kompilacji zależy tylko od zainstalowania 3 bibliotek: OpenSSL / LibreSSL / BoringSSL, Zlib i PCRE.
UWAGA : Nginx można również skompilować z bibliotekami kryptograficznymi LibreSSL i BoringSSL zamiast OpenSSL.
Sprawdź wersję Debiana.
lsb_release -ds
# Debian GNU/Linux 10 (buster)
Utwórz zwykłego użytkownika z sudo
dostępem.
adduser johndoe --gecos "John Doe"
usermod -aG sudo johndoe
UWAGA : Zamień na johndoe
swoją nazwę użytkownika .
Przełącz się na nowego użytkownika.
su - johndoe
Ustaw strefę czasową.
sudo dpkg-reconfigure tzdata
Zaktualizuj oprogramowanie systemu operacyjnego.
sudo apt update && sudo apt upgrade -y
Zainstaluj niezbędne pakiety.
sudo apt install -y software-properties-common ufw
Nginx to program napisany w C, więc najpierw musisz zainstalować narzędzie kompilatora. Zainstalować build-essential
, git
i tree
.
sudo apt install -y build-essential git tree
Pobierz najnowszą główną wersję kodu źródłowego Nginx i rozpakuj archiwum kodów źródłowych. Kod źródłowy Nginx jest dystrybuowany jako skompresowane archiwum, tak jak większość oprogramowania dla systemów Unix i Linux.
wget https://nginx.org/download/nginx-1.17.2.tar.gz && tar zxvf nginx-1.17.2.tar.gz
Pobierz obowiązkowy kod źródłowy zależności Nginx i wypakuj go.
# PCRE version 8.43
wget https://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gz && tar xzvf pcre-8.43.tar.gz
# zlib version 1.2.11
wget https://www.zlib.net/zlib-1.2.11.tar.gz && tar xzvf zlib-1.2.11.tar.gz
# OpenSSL version 1.1.1c
wget https://www.openssl.org/source/openssl-1.1.1c.tar.gz && tar xzvf openssl-1.1.1c.tar.gz
Zainstaluj opcjonalne zależności Nginx.
sudo apt install -y perl libperl-dev libgd3 libgd-dev libgeoip1 libgeoip-dev geoip-bin libxml2 libxml2-dev libxslt1.1 libxslt1-dev
Oczyść wszystkie .tar.gz
pliki. Już ich nie potrzebujemy.
rm -rf *.tar.gz
Wejdź do katalogu źródłowego Nginx.
cd ~/nginx-1.17.2
Aby uzyskać dobrą miarę list katalogów i plików składających się na kod źródłowy Nginx tree
.
tree -L 2 .
Skopiuj stronę podręcznika do /usr/share/man/man8/
.
sudo cp ~/nginx-1.17.2/man/nginx.8 /usr/share/man/man8
sudo gzip /usr/share/man/man8/nginx.8
ls /usr/share/man/man8/ | grep nginx.8.gz
# Check that man page for Nginx is working
man nginx
Aby uzyskać pomoc, możesz zobaczyć pełną listę aktualnych opcji kompilacji Nginx, uruchamiając poniższe.
./configure --help
# To see want core modules can be built as dynamic run:
./configure --help | grep -F =dynamic
Skonfiguruj, skompiluj i zainstaluj Nginx.
./configure --prefix=/etc/nginx \
--sbin-path=/usr/sbin/nginx \
--modules-path=/usr/lib/nginx/modules \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/run/nginx.lock \
--user=nginx \
--group=nginx \
--build=Debian \
--builddir=nginx-1.17.2 \
--with-select_module \
--with-poll_module \
--with-threads \
--with-file-aio \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_realip_module \
--with-http_addition_module \
--with-http_xslt_module=dynamic \
--with-http_image_filter_module=dynamic \
--with-http_geoip_module=dynamic \
--with-http_sub_module \
--with-http_dav_module \
--with-http_flv_module \
--with-http_mp4_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_auth_request_module \
--with-http_random_index_module \
--with-http_secure_link_module \
--with-http_degradation_module \
--with-http_slice_module \
--with-http_stub_status_module \
--with-http_perl_module=dynamic \
--with-perl_modules_path=/usr/share/perl/5.26.1 \
--with-perl=/usr/bin/perl \
--http-log-path=/var/log/nginx/access.log \
--http-client-body-temp-path=/var/cache/nginx/client_temp \
--http-proxy-temp-path=/var/cache/nginx/proxy_temp \
--http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp \
--http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp \
--http-scgi-temp-path=/var/cache/nginx/scgi_temp \
--with-mail=dynamic \
--with-mail_ssl_module \
--with-stream=dynamic \
--with-stream_ssl_module \
--with-stream_realip_module \
--with-stream_geoip_module=dynamic \
--with-stream_ssl_preread_module \
--with-compat \
--with-pcre=../pcre-8.43 \
--with-pcre-jit \
--with-zlib=../zlib-1.2.11 \
--with-openssl=../openssl-1.1.1c \
--with-openssl-opt=no-nextprotoneg \
--with-debug
make
sudo make install
Po kompilacji przejdź do ~
katalogu home ( ).
cd ~
Symlink /usr/lib/nginx/modules
do /etc/nginx/modules
. Jest to standardowe miejsce dla modułów Nginx.
sudo ln -s /usr/lib/nginx/modules /etc/nginx/modules
Wydrukuj wersję Nginx, wersję kompilatora i skonfiguruj parametry skryptu.
sudo nginx -V
# nginx version: nginx/1.17.2 (Debian)
# built by gcc 8.3.0 (Debian 8.3.0-6)
# built with OpenSSL 1.1.1c 28 May 2019
# TLS SNI support enabled
# configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/nginx/modules . . .
# . . .
# . . .
Utwórz grupę systemową i użytkownika Nginx.
sudo adduser --system --home /nonexistent --shell /bin/false --no-create-home --disabled-login --disabled-password --gecos "nginx user" --group nginx
# Check that user and group are created
sudo tail -n 1 /etc/passwd /etc/group /etc/shadow
Sprawdź składnię Nginx i potencjalne błędy.
sudo nginx -t
# Will throw this error -> nginx: [emerg] mkdir() "/var/cache/nginx/client_temp" failed (2: No such file or directory)
# Create NGINX cache directories and set proper permissions
sudo mkdir -p /var/cache/nginx/client_temp /var/cache/nginx/fastcgi_temp /var/cache/nginx/proxy_temp /var/cache/nginx/scgi_temp /var/cache/nginx/uwsgi_temp
sudo chmod 700 /var/cache/nginx/*
sudo chown nginx:root /var/cache/nginx/*
# Re-check syntax and potential errors.
sudo nginx -t
Utwórz plik jednostki systemowej Nginx.
sudo vim /etc/systemd/system/nginx.service
Wypełnij /etc/systemd/system/nginx.service
plik następującą zawartością.
[Unit]
Description=nginx - high performance web server
Documentation=https://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target
[Service]
Type=forking
PIDFile=/var/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf
ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID
[Install]
WantedBy=multi-user.target
Włącz Nginx, aby uruchomić przy rozruchu i natychmiast uruchom Nginx.
sudo systemctl enable nginx.service
sudo systemctl start nginx.service
Sprawdź, czy Nginx uruchomi się automatycznie po ponownym uruchomieniu.
sudo systemctl is-enabled nginx.service
# enabled
Sprawdzić stan.
sudo systemctl status nginx.service
UWAGA : Możesz sprawdzić, czy Nginx działa, przechodząc do domeny lub adresu IP witryny w przeglądarce internetowej. Zobaczysz stronę powitalną Nginx. To wskaźnik, że Nginx działa na twoim VPS.
Utwórz profil aplikacji UFW Nginx.
sudo vim /etc/ufw/applications.d/nginx
Skopiuj / wklej następującą zawartość do /etc/ufw/applications.d/nginx
pliku.
[Nginx HTTP]
title=Web Server (Nginx, HTTP)
description=Small, but very powerful and efficient web server
ports=80/tcp
[Nginx HTTPS]
title=Web Server (Nginx, HTTPS)
description=Small, but very powerful and efficient web server
ports=443/tcp
[Nginx Full]
title=Web Server (Nginx, HTTP + HTTPS)
description=Small, but very powerful and efficient web server
ports=80,443/tcp
Sprawdź, czy profile aplikacji UFW zostały utworzone i rozpoznane.
sudo ufw app list
# Available applications:
# Nginx Full
# Nginx HTTP
# Nginx HTTPS
# OpenSSH
Nginx domyślnie generuje .default
pliki kopii zapasowych w /etc/nginx
. Usuń .default
pliki z /etc/nginx
katalogu.
sudo rm /etc/nginx/*.default
Umieść wyróżnianie składni konfiguracji Nginx dla edytora Vima w ~/.vim
.
# For regular non-root user
mkdir ~/.vim/
cp -r ~/nginx-1.17.2/contrib/vim/* ~/.vim/
# For root user
sudo mkdir /root/.vim/
sudo cp -r ~/nginx-1.17.2/contrib/vim/* /root/.vim/
UWAGA : Wykonując powyższy krok, uzyskasz ładne podświetlanie składni podczas edycji plików konfiguracyjnych Nginx w edytorze Vima.
Tworzenie conf.d
, snippets
, sites-available
i sites-enabled
katalogi w /etc/nginx
.
sudo mkdir /etc/nginx/{conf.d,snippets,sites-available,sites-enabled}
Zmień uprawnienia i własność grupy plików dziennika Nginx.
sudo chmod 640 /var/log/nginx/*
sudo chown nginx:adm /var/log/nginx/access.log /var/log/nginx/error.log
Utwórz konfigurację rotacji dziennika dla Nginx.
sudo vim /etc/logrotate.d/nginx
Wypełnij plik następującym tekstem, a następnie zapisz i wyjdź.
/var/log/nginx/*.log {
daily
missingok
rotate 52
compress
delaycompress
notifempty
create 640 nginx adm
sharedscripts
postrotate
if [ -f /var/run/nginx.pid ]; then
kill -USR1 `cat /var/run/nginx.pid`
fi
endscript
}
Usuń wszystkie pobrane pliki z katalogu domowego.
cd ~
rm -rf nginx-1.17.2/ openssl-1.1.1c/ pcre-8.43/ zlib-1.2.11/
Otóż to. Teraz masz zainstalowaną najnowszą wersję Nginx. Jest kompilowany statycznie z niektórymi ważnymi bibliotekami, takimi jak OpenSSL. Często dostarczana przez system wersja OpenSSL jest przestarzała. Korzystając z tej metody instalacji z nowszą wersją OpenSSL, możesz skorzystać z nowoczesnych szyfrów, takich jak CHACHA20_POLY1305
protokoły, takie jak TLS 1.3, które są dostępne w OpenSSL 1.1.1
. Co więcej, kompilując własny plik binarny, możesz dostosować funkcje, które zapewni Twój Nginx, co jest znacznie bardziej elastyczne niż instalowanie gotowego pliku binarnego.
NFS to oparty na sieci system plików, który umożliwia komputerom dostęp do plików w sieci komputerowej. Ten przewodnik wyjaśnia, w jaki sposób możesz udostępniać foldery w NF
Podczas konfigurowania nowego serwera Linux zaleca się aktualizację jądra systemu i innych pakietów do najnowszej stabilnej wersji. W tym artykule
Wprowadzenie MySQL ma świetną funkcję znaną jako widoki. Widoki są przechowywane zapytania. Pomyśl o nich jako o aliasie dla długiego zapytania. W tym przewodniku
W tym artykule dowiesz się, jak skonfigurować więzienie chroot w Debianie. Zakładam, że używasz Debiana 7.x. Jeśli używasz Debiana 6 lub 8, może to działać, bu
Wprowadzenie Prostym sposobem na skonfigurowanie serwera VPN na Debianie jest PiVPN. PiVPN to instalator i opakowanie dla OpenVPN. Tworzy proste polecenia dla ciebie
Używasz innego systemu? Brotli to nowa metoda kompresji z lepszym współczynnikiem kompresji niż Gzip. Jego kod źródłowy jest publicznie hostowany na Github. Cześć
Wprowadzenie Lynis to bezpłatne narzędzie do kontroli systemu typu open source, które jest używane przez wielu administratorów systemu do sprawdzania integralności i ulepszania systemów. ja
Używasz innego systemu? BlogoText CMS to prosty i lekki, bezpłatny i otwarty system zarządzania treścią (CMS) oraz minimalistyczny silnik blogów
Używasz innego systemu? InvoicePlane to darmowa i otwarta aplikacja do fakturowania. Jego kod źródłowy można znaleźć w tym repozytorium Github. Ten przewodnik
Używasz innego systemu? Tło CMS 1.8.0 to prosty i elastyczny, przyjazny dla urządzeń mobilnych, bezpłatny i otwarty system zarządzania treścią (CMS), który pozwala nam
Używasz innego systemu? Plesk to zastrzeżony panel kontrolny hosta internetowego, który umożliwia użytkownikom administrowanie osobistymi i / lub klienckimi stronami internetowymi, bazami danych
Używasz innego systemu? BookStack to prosta, hostowana i łatwa w użyciu platforma do organizowania i przechowywania informacji. BookStack jest w pełni darmowy i otwarty
Używasz innego systemu? Pagekit 1.0 CMS to piękny, modułowy, rozszerzalny i lekki, bezpłatny i otwarty system zarządzania treścią (CMS) z
Używasz innego systemu? Subrion 4.1 CMS to potężny i elastyczny system zarządzania treścią typu open source (CMS), który zapewnia intuicyjny i przejrzysty kontekst
Używasz innego systemu? Sponge to projekt typu open source, który rozszerza możliwości serwerów Minecraft poprzez wtyczki. W połączeniu z modding AP
Wprowadzenie Systemy Linux są domyślnie dostarczane z narzędziami do monitorowania, takimi jak top, df i du, które pomagają monitorować procesy i miejsce na dysku. Często jednak są
Używasz innego systemu? Firefox Sync to funkcja synchronizacji przeglądarki, która umożliwia udostępnianie danych i preferencji (takich jak zakładki, historia
Używasz innego systemu? 1.0 października CMS to prosty i niezawodny, bezpłatny i otwarty system zarządzania treścią (CMS) oparty na platformie Laravel
Używasz innego systemu? X-Cart to niezwykle elastyczna platforma eCommerce typu open source z mnóstwem funkcji i integracji. Kod źródłowy X-Cart jest hostem
Munin to narzędzie do monitorowania procesów i zasobów w maszynie oraz prezentuje informacje na wykresach za pośrednictwem interfejsu internetowego. Użyj następujących
Przeczytaj blog, aby w najprostszy sposób poznać różne warstwy w architekturze Big Data i ich funkcjonalności.
Chcesz zobaczyć rewolucyjne wynalazki Google i jak te wynalazki zmieniły życie każdego człowieka dzisiaj? Następnie czytaj na blogu, aby zobaczyć wynalazki Google.
13 komercyjnych narzędzi do ekstrakcji danych z Big Data
Whatsapp w końcu uruchomił aplikację Desktop dla użytkowników komputerów Mac i Windows. Teraz możesz łatwo uzyskać dostęp do Whatsapp z systemu Windows lub Mac. Dostępne dla Windows 8+ i Mac OS 10.9+
Energia jądrowa jest zawsze pogardzana, nigdy jej nie szanujemy z powodu przeszłych wydarzeń, ale nie zawsze jest zła. Przeczytaj post, aby dowiedzieć się więcej na ten temat.
Koncepcja autonomicznych samochodów, które wyjadą na drogi za pomocą sztucznej inteligencji, to marzenie, które mamy już od jakiegoś czasu. Ale pomimo kilku obietnic nigdzie ich nie widać. Przeczytaj ten blog, aby dowiedzieć się więcej…
Wzrasta liczba ataków ransomware, ale czy sztuczna inteligencja może pomóc w radzeniu sobie z najnowszym wirusem komputerowym? Czy AI jest odpowiedzią? Przeczytaj tutaj, wiedz, że sztuczna inteligencja jest zmorą lub zgubą
Sztuczna inteligencja nie jest dla ludzi nową nazwą. Ponieważ sztuczna inteligencja jest włączona do każdego strumienia, jednym z nich jest opracowywanie narzędzi zwiększających ludzką wydajność i dokładność. Skorzystaj z tych niesamowitych narzędzi uczenia maszynowego i uprość swoje codzienne zadania.
Zawsze potrzebujemy Big Data Analytics do efektywnego zarządzania danymi. W tym artykule omówiliśmy kilka technik analizy Big Data. Sprawdź ten artykuł.
Czy jesteś również ofiarą ataków DDOS i nie masz pewności co do metod zapobiegania? Przeczytaj ten artykuł, aby rozwiązać swoje pytania.