Cara menggunakan kedi pelayan web Nginx
May 30, 2023 pm 12:19 PMPengenalan kepada Caddy
Caddy ialah pelayan web yang berkuasa dan sangat berskala yang pada masa ini mempunyai 38K+ bintang di GitHub. Caddy ditulis dalam bahasa Go dan boleh digunakan untuk pengehosan sumber statik dan proksi terbalik.
Caddy mempunyai ciri utama berikut:
Berbanding dengan konfigurasi kompleks Nginx, konfigurasi Caddyfile asalnya sangat mudah; > Konfigurasi boleh diubah suai secara dinamik melalui API Pentadbiran yang disediakannya;
Dapat menskalakan kepada puluhan ribu tapak; - boleh dilaksanakan di mana-mana tanpa kebergantungan tambahan; ditulis dalam bahasa Go , keselamatan memori lebih terjamin.
- Pemasangan
Mula-mula kami memasang Caddy terus pada CentOS 8. Pemasangan menggunakan alat DNF sudah pasti kaedah pemasangan Docker akan diperkenalkan kemudian.
Gunakan arahan berikut untuk memasang Caddy melalui alat DNF Selepas pemasangan berjaya, Caddy akan didaftarkan sebagai perkhidmatan sistem dnf install 'dnf-command(copr)' dnf copr enable @caddy/caddy dnf install caddy
Gunakan systemctl status caddy untuk menyemak status Caddy Anda boleh mendapati bahawa Caddy telah didaftarkan sebagai perkhidmatan sistem, tetapi ia belum didayakan lagi.
- Penggunaan
Gunakan caddy Perintah mula membenarkan perkhidmatan Caddy berjalan di latar belakang
Caddy menggunakan fail konfigurasi format JSON secara lalai; konfigurasi format lebih menyusahkan untuk menulis, Caddyfile juga disediakan borang konfigurasi mudah, gunakan arahan berikut untuk menukar Caddyfile secara automatik kepada konfigurasi JSON
caddy adapter
Kita boleh membuat fail bernama Caddyfile dengan kandungan berikut; kemudian gunakan penyesuai caddy untuk menukarnya kepada konfigurasi JSON, Kemudian gunakan caddy reload untuk menjadikan konfigurasi itu berkesan. Konfigurasi akan mendengar port 2015 dan mengembalikan Hello, world!; akses localhost:2015, yang akan mengembalikan maklumat yang ditentukan; ;
:2015 respond "Hello, world!"
Konfigurasi JSON semasa adalah seperti berikut, jika anda menggunakan konfigurasi JSON secara langsung Anda perlu menulis konfigurasi berikut, menggunakan Caddyfile sememangnya lebih mudah!
curl localhost:2019/config/
Sintaks asas Caddyfile
Kes berikut akan menggunakan Caddyfile untuk konfigurasi Kita perlu memahami sintaksnya Peraturan sintaks khusus Caddyfile adalah seperti berikut.
Perkenalkan kata kunci dalam gambar di atas untuk membantu pemahaman.
反向代理
反向代理就是當(dāng)請(qǐng)求訪問(wèn)你的代理服務(wù)器時(shí),代理服務(wù)器會(huì)對(duì)你的請(qǐng)求進(jìn)行轉(zhuǎn)發(fā),可以轉(zhuǎn)發(fā)到靜態(tài)的資源路徑上去,也可以轉(zhuǎn)發(fā)到動(dòng)態(tài)的服務(wù)接口上去。我們以代理域名為例,講解如何進(jìn)行靜態(tài)和動(dòng)態(tài)代理。
靜態(tài)代理
靜態(tài)代理就是將請(qǐng)求代理到不同的靜態(tài)資源路徑上去,這里我們將對(duì)docs.macrozheng.com的請(qǐng)求代理到我的文檔項(xiàng)目中,對(duì)mall.macrozheng.com的請(qǐng)求代理到mall的前端項(xiàng)目中。
首先我們修改下本機(jī)的host文件:
192.168.3.106 docs.macrozheng.com
192.168.3.106 mall.macrozheng.com
然后將我們的文檔項(xiàng)目和mall前端項(xiàng)目上傳到Caddy的html目錄中去,并進(jìn)行解壓操作:
修改Caddyfile文件,使用如下配置,修改完成后使用caddy reload命令刷新配置;
http://docs.macrozheng.com { root * /mydata/caddy/html/docs file_server browse } http://mall.macrozheng.com { root * /mydata/caddy/html/mall file_server browse }
如果你的Caddyfile文件格式不太合格的話,會(huì)出現(xiàn)如下警告,直接使用caddy fmt --overwrite格式化并重寫(xiě)配置即可解決;
通過(guò)docs.macrozheng.com即可訪問(wèn)部署好的文檔項(xiàng)目了:
通過(guò)mall.macrozheng.com即可訪問(wèn)到部署好的前端項(xiàng)目了。
動(dòng)態(tài)代理
動(dòng)態(tài)代理就是把代理服務(wù)器的請(qǐng)求轉(zhuǎn)發(fā)到另一個(gè)服務(wù)上去,這里我們將把對(duì)api.macrozheng.com的請(qǐng)求代理到演示環(huán)境的API服務(wù)上去。
首先我們修改下本機(jī)的host文件,添加如下規(guī)則
192.168.3.106 api.macrozheng.com
修改Caddyfile文件,使用如下配置,修改完成后使用caddy reload命令刷新配置;
http://api.macrozheng.com { reverse_proxy http://admin-api.macrozheng.com }
之后通過(guò)api.macrozheng.com/swagger-ui.html即可訪問(wèn)到mall-admin的API文檔頁(yè)面了。
文件壓縮
如果我們的服務(wù)器帶寬比較低,網(wǎng)站訪問(wèn)速度會(huì)很慢,這時(shí)我們可以通過(guò)讓Caddy開(kāi)啟Gzip壓縮來(lái)提高網(wǎng)站的訪問(wèn)速度。這里我們以mall的前端項(xiàng)目為例來(lái)演示下它的提速效果。
我們需要修改Caddyfile文件,使用encode指令開(kāi)啟Gzip壓縮,修改完成后使用caddy reload命令刷新配置;
http://mall.macrozheng.com { root * /mydata/caddy/html/mall encode { gzip } file_server browse }
有個(gè)比較大的JS文件壓縮前是1.7M;
壓縮后為544K,訪問(wèn)速度也有很大提示;
另外我們可以看下響應(yīng)信息,如果有Content-Encoding: gzip這個(gè)響應(yīng)頭表明Gzip壓縮已經(jīng)啟用了。
地址重寫(xiě)
有的時(shí)候我們的網(wǎng)站更換了域名,但還有用戶在使用老的域名訪問(wèn),這時(shí)可以通過(guò)Caddy的地址重寫(xiě)功能來(lái)讓用戶跳轉(zhuǎn)到新的域名進(jìn)行訪問(wèn)。
我們需要修改Caddyfile文件,使用redir指令重寫(xiě)地址,修改完成后使用caddy reload命令刷新配置;
http://docs.macrozheng.com { redir http://www.macrozheng.com }
此時(shí)訪問(wèn)舊域名docs.macrozheng.com會(huì)直接跳轉(zhuǎn)到www.macrozheng.com去。
按目錄劃分
有時(shí)候我們需要使用同一個(gè)域名來(lái)訪問(wèn)不同的前端項(xiàng)目,這時(shí)候就需要通過(guò)子目錄來(lái)區(qū)分前端項(xiàng)目了。
比如說(shuō)我們需要按以下路徑來(lái)訪問(wèn)各個(gè)前端項(xiàng)目;
www.macrozheng.com #訪問(wèn)文檔項(xiàng)目
www.macrozheng.com/admin #訪問(wèn)后臺(tái)項(xiàng)目
www.macrozheng.com/app #訪問(wèn)移動(dòng)端項(xiàng)目
我們需要修改Caddyfile文件,使用route指令定義路由,修改完成后使用caddy reload命令刷新配置。
http://www.macrozheng.com { route /admin/* { uri strip_prefix /admin file_server { root /mydata/caddy/html/admin } } route /app/* { uri strip_prefix /app file_server { root /mydata/caddy/html/app } } file_server * { root /mydata/caddy/html/www } }
HTTPS
Caddy能自動(dòng)支持HTTPS,無(wú)需手動(dòng)配置證書(shū),這就是之前我們?cè)谂渲糜蛎麜r(shí)需要使用http://開(kāi)頭的原因,要想使用Caddy默認(rèn)的HTTPS功能,按如下步驟操作即可。
首先我們需要修改域名的DNS解析,直接在購(gòu)買(mǎi)域名的網(wǎng)站上設(shè)置即可,這里以docs.macrozheng.com域名為例;
請(qǐng)使用以下命令確認(rèn)DNS解析記錄是否正確,注意所配置的服務(wù)器的80和443端口需要在外網(wǎng)中可以正常訪問(wèn):
curl "https://cloudflare-dns.com/dns-query?name=docs.macrozheng.com&type=A" \ -H "accept: application/dns-json"
修改Caddyfile配置文件,進(jìn)行如下配置;
docs.macrozheng.com { root * /mydata/caddy/html/docs file_server browse }
然后使用caddy run命令啟動(dòng)Caddy服務(wù)器即可,是不是非常方便!
caddy run
Docker支持
當(dāng)然Caddy也是支持使用Docker進(jìn)行安裝使用的,其使用和直接在CentOS上安裝基本一致。
首先使用如下命令下載Caddy的Docker鏡像;
docker pull caddy
然后在/mydata/caddy/目錄下創(chuàng)建Caddyfile配置文件,文件內(nèi)容如下;
http://192.168.3.105:80 respond "Hello, world!"
之后使用如下命令啟動(dòng)caddy服務(wù),這里將宿主機(jī)上的Caddyfile配置文件、Caddy的數(shù)據(jù)目錄和網(wǎng)站目錄掛載到了容器中;
docker run -p 80:80 -p 443:443 --name caddy \ -v /mydata/caddy/Caddyfile:/etc/caddy/Caddyfile \ -v /mydata/caddy/data:/data \ -v /mydata/caddy/html:/usr/share/caddy \ -d caddy
之后使用docker exec進(jìn)入caddy容器內(nèi)部執(zhí)行命令;
docker exec -it caddy /bin/sh
輸入Caddy命令即可操作,之后的操作就和我們直接在CentOS上安裝一樣了。
Atas ialah kandungan terperinci Cara menggunakan kedi pelayan web Nginx. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Nginx lebih sesuai untuk mengendalikan sambungan serentak yang tinggi, manakala Apache lebih sesuai untuk senario di mana konfigurasi kompleks dan sambungan modul diperlukan. 1.Nginx dikenali dengan prestasi tinggi dan penggunaan sumber yang rendah, dan sesuai untuk kesesuaian yang tinggi. 2.apache terkenal dengan kestabilan dan sambungan modul yang kaya, yang sesuai untuk keperluan konfigurasi kompleks.

Nginx dan Apache masing -masing mempunyai kelebihan dan kekurangan mereka sendiri, dan pilihannya harus berdasarkan keperluan khusus. 1.Nginx sesuai untuk senario konvensional yang tinggi kerana seni bina yang tidak menyekatnya. 2. Apache sesuai untuk senario rendah-concurrency yang memerlukan konfigurasi kompleks, kerana reka bentuk modularnya.

Kod PHP boleh dilaksanakan dengan banyak cara: 1. Gunakan baris arahan untuk terus memasukkan "nama fail php" untuk melaksanakan skrip; 2. Masukkan fail ke dalam direktori root dokumen dan mengaksesnya melalui penyemak imbas melalui pelayan web; 3. Jalankannya dalam IDE dan gunakan alat debugging terbina dalam; 4. Gunakan kotak pasir PHP dalam talian atau platform pelaksanaan kod untuk ujian.

Memahami laluan fail konfigurasi Nginx dan tetapan awal sangat penting kerana ia adalah langkah pertama dalam mengoptimumkan dan menguruskan pelayan web. 1) Laluan fail konfigurasi biasanya /etc/nginx/nginx.conf. Sintaks boleh didapati dan diuji menggunakan arahan NGINX-T. 2) Tetapan awal termasuk tetapan global (seperti pengguna, worker_processes) dan tetapan HTTP (seperti termasuk, log_format). Tetapan ini membolehkan penyesuaian dan lanjutan mengikut keperluan. Konfigurasi yang salah boleh membawa kepada isu prestasi dan kelemahan keselamatan.

Sistem Linux mengehadkan sumber pengguna melalui perintah ULIMIT untuk mengelakkan penggunaan sumber yang berlebihan. 1.Ulimit adalah arahan shell terbina dalam yang boleh mengehadkan bilangan deskriptor fail (-N), saiz memori (-V), kiraan thread (-u), dan lain-lain, yang dibahagikan kepada had lembut (nilai berkesan semasa) dan had keras (had atas maksimum). 2. Gunakan perintah ULIMIT secara langsung untuk pengubahsuaian sementara, seperti ULIMIT-N2048, tetapi hanya sah untuk sesi semasa. 3. Untuk kesan tetap, anda perlu mengubah suai /etc/security/limits.conf dan fail konfigurasi PAM, dan tambah sessionrequiredpam_limits.so. 4. Perkhidmatan SystemD perlu menetapkan LIM dalam fail unit

Apabila mengkonfigurasi Nginx pada sistem Debian, berikut adalah beberapa petua praktikal: struktur asas fail konfigurasi Global Fail: Tentukan parameter tingkah laku yang mempengaruhi keseluruhan perkhidmatan Nginx, seperti bilangan thread pekerja dan kebenaran pengguna yang sedang berjalan. Bahagian Pengendalian Acara: Memutuskan bagaimana Nginx berurusan dengan sambungan rangkaian adalah konfigurasi utama untuk meningkatkan prestasi. Bahagian Perkhidmatan HTTP: Mengandungi sejumlah besar tetapan yang berkaitan dengan perkhidmatan HTTP, dan boleh membenamkan beberapa pelayan dan blok lokasi. Pilihan Konfigurasi Teras Worker_Connections: Tentukan bilangan maksimum sambungan yang setiap thread pekerja boleh mengendalikan, biasanya ditetapkan ke 1024. Multi_accept: Aktifkan mod penerimaan pelbagai sambungan dan tingkatkan keupayaan pemprosesan serentak. s

NginxserveswebcontentandactsasareVerseProxy, loadbalancer, andmore.1) itefficientlyservesstaticcontentlikehtmlandimages.2) itfunctionsasareverseProxyandloadalancer, distributingtrafficacrosservers.3)

Diagnosis dan penyelesaian untuk kesilapan biasa Nginx termasuk: 1. Lihat fail log, 2. Laraskan fail konfigurasi, 3 mengoptimumkan prestasi. Dengan menganalisis log, menyesuaikan tetapan masa tamat dan mengoptimumkan cache dan mengimbangi beban, kesilapan seperti 404, 502, 504 dapat diselesaikan dengan berkesan untuk meningkatkan kestabilan dan prestasi laman web.
