V této příručce se naučíme, jak nainstalovat Nginx v OpenSUSE Leap 15.3 a nastavit jej jako proxy server. Nastavíme virtuálního hostitele Nginx, který odesílá požadavek z domény na službu naslouchající na portu.
Související obsah
- Jak nainstalovat a nastavit PHP a Nginx (LEMP) na Ubuntu 20.04
- Jak nainstalovat Apache PHP 7.4 (LAMP) stack na Rocky Linux/Centos 8
- Jak nainstalovat a nastavit PHP a Nginx (LEMP) v Debianu 11
- Jak nainstalovat a nastavit PHP a Apache (zásobník LAMP) na Debian 11
Obsah
- Zajištění aktuálnosti serveru
- Instalace Nginx na OpenSUSE Leap 15.3
- Spuštění a povolení služby Nginx v OpenSUSE
- Nastavení služby proxy
- Vytvoření virtuálního hostitele Nginx pro proxy požadavek
- Testování konfigurace
1. Zajištění aktuálnosti serveru
Než budete pokračovat, je vždy dobré se ujistit, že je server aktuální. K tomu použijte tyto příkazy
sudo zypper refresh
sudo zypper update -y
2. Instalace Nginx na OpenSUSE Leap 15.3
Nginx, jako stabilní vysoce výkonný webový server s velmi nízkou spotřebou zdrojů. Nginx má asynchronní architekturu, která je mnohem škálovatelnější na základě událostí.
Nginx je k dispozici ve výchozím úložišti UpenSUSE. Nainstalujte jej pomocí tohoto příkazu:
sudo zypper install -y nginx
Potvrďte nainstalovaný nginx
~> zypper info nginx
Loading repository data...
Reading installed packages...
Information for package nginx:
------------------------------
Repository : Main Repository
Name : nginx
Version : 1.19.8-3.6.1
Arch : x86_64
Vendor : SUSE LLC <https://www.suse.com/>
Installed Size : 2.2 MiB
Installed : Yes
Status : up-to-date
Source package : nginx-1.19.8-3.6.1.src
Summary : A HTTP server and IMAP/POP3 proxy server
Description :
nginx [engine x] is a HTTP server and IMAP/POP3 proxy server written by Igor Sysoev.
It has been running on many heavily loaded Russian sites for more than two years.
3. Spuštění a povolení služby nginx
Nainstalovaná služba Nginx se ve výchozím nastavení nespouští. Pro spuštění služby použijte tento příkaz:
sudo systemctl start nginx
Pomocí tohoto příkazu ověřte, že je služba spuštěna:
~> sudo systemctl status nginx
● nginx.service - The nginx HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
Active: active (running) since Mon 2021-12-20 18:56:15 UTC; 36s ago
Process: 31740 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
Main PID: 31741 (nginx)
Tasks: 2 (limit: 4587)
CGroup: /system.slice/nginx.service
├─31741 nginx: master process /usr/sbin/nginx -g daemon off;
└─31742 nginx: worker process
Dec 20 18:56:15 ip-10-2-40-44 systemd[1]: Starting The nginx HTTP and reverse proxy server...
Dec 20 18:56:15 ip-10-2-40-44 nginx[31740]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Dec 20 18:56:15 ip-10-2-40-44 nginx[31740]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Dec 20 18:56:15 ip-10-2-40-44 systemd[1]: Started The nginx HTTP and reverse proxy server.
Chcete-li službu povolit při spouštění, použijte tento příkaz:
sudo systemctl enable nginx
4. Nastavení služby pro proxy
V tomto příkladu použijeme jednoduchou službu, kterou jsem již vytvořil. Mám zde službu golang, ale neváhejte využít vaši službu.
➜ /tmp/gosimple
2021/12/20 23:38:34 service running, listening on 3000
Otestujte službu
➜ curl -iL http://127.0.0.1:3000/
HTTP/1.1 200 OK
Date: Mon, 20 Dec 2021 20:39:01 GMT
Content-Length: 12
Content-Type: text/plain; charset=utf-8
Hello World!
5. Vytvoření virtuálního hostitele Nginx pro proxy požadavek
Nginx vám umožňuje obsluhovat více webů pomocí virtuálních hostitelů. Koncept virtuálních hostitelů umožňuje více než jeden web na jednom systému nebo webovém serveru. Servery se rozlišují podle názvu hostitele. Návštěvníci webu jsou směrováni podle názvu hostitele nebo adresy IP na správný virtuální hostitel. Virtuální hosting umožňuje společnostem sdílejícím jeden server, z nichž každý má své vlastní názvy domén.
Bloky serveru Nginx lze použít k zapouzdření podrobností o konfiguraci a hostování více než jedné domény na jednom serveru. Chystáme se vytvořit virtuálního hostitele pro naše stránky (site1.citizix.com
).
Konfigurace virtuálních hostitelů Nginx jsou uloženy v adresáři /etc/nginx/conf.d/
. Pojďme vytvořit konfiguraci pro náš web:
sudo vim /etc/nginx/conf.d/site1.citizix.com.conf
Přidejte následující obsah
server {
listen 80;
server_tokens off;
client_max_body_size 100M;
server_name site1.citizix.com;
access_log /var/log/nginx/site1.citizix.com.log;
error_log /var/log/nginx/site1.citizix.com.log;
root /opt/simpleapp;
if ($host !~* ^(site1.citizix.com)$) {
return 444;
}
location / {
proxy_redirect off;
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-Host $server_name;
proxy_pass http://127.0.0.1:3000;
}
}
Restartujeme nginx, aby se konfigurace uplatnila:
sudo systemctl restart nginx
6. Testování konfigurace
V tomto příkladu použijeme doménu site1.citizix.com
pro virtuálního hostitele, ale můžete volně používat doménu dle svého výběru. Upozorňujeme, že DNS pro doménu, která má být použita, by již měla být nakonfigurována tak, aby ukazovala na IP adresu serveru. Potvrďte to pomocí:
dig -t A site1.citizix.com
Pokud jste ještě nenakonfigurovali nastavení DNS nebo jednoduše nechcete, aby byl web ještě spuštěn, můžete upravit soubor hostitelů svého počítače. Chcete-li to provést, použijte následující příkaz v CLI místního počítače
sudo vim /etc/hosts
Poté přidejte IP adresu vašeho skutečného serveru následovanou názvem domény, kterou konfigurujete, například:
10.2.11.11 site1.citizix.com
S tímto nastavením můžeme odeslat požadavek na naši doménu. Pro mě to funguje dobře!
➜ curl -iL http://site1.citizix.com
HTTP/1.1 200 OK
Server: nginx
Date: Mon, 20 Dec 2021 20:51:42 GMT
Content-Type: text/plain; charset=utf-8
Content-Length: 12
Connection: keep-alive
Hello World!
Koneckonců
Podařilo se nám nainstalovat a nastavit Nginx, aby v této příručce fungoval jako proxy!