نحوه نصب و پیکربندی Caddy در CentOS 7

معرفی

Caddy یک برنامه سرور وب در حال ظهور با پشتیبانی بومی از HTTP / 2 و HTTPS خودکار است. با سهولت استفاده و امنیت در ذهن ، می توان از Caddy برای استقرار سریع یک سایت با قابلیت HTTPS با یک فایل پیکربندی منفرد استفاده کرد.

پیش نیازها

مرحله 1: آخرین نسخه پایدار Caddy را نصب کنید

در سیستم عامل لینوکس ، مک یا BSD ، از دستور زیر برای نصب جدیدترین نسخه پایدار مخصوص سیستم Caddy استفاده کنید:

curl https://getcaddy.com | bash

در صورت درخواست ، رمزعبور sudo خود را وارد کنید تا نصب تمام شود.

دودویی Caddy در /usr/local/binدایرکتوری نصب خواهد شد . برای تأیید از دستور زیر استفاده کنید:

which caddy

shoud خروجی:

/usr/local/bin/caddy

برای اهداف امنیتی ، هرگز یک باینری Caddy را به عنوان ریشه اجرا نکنید. برای اینکه به Caddy امکان اتصال به درگاههای ممتاز (به عنوان مثال 80 ، 443) به عنوان کاربر غیر root را بدهید ، باید setcapدستور را به شرح زیر اجرا کنید:

sudo setcap 'cap_net_bind_service=+ep' /usr/local/bin/caddy

مرحله 2: پیکربندی Caddy

یک کاربر سیستم اختصاصی ایجاد کنید: caddy و گروهی با همین نام برای Caddy:

sudo useradd -r -d /var/www -M -s /sbin/nologin caddy

توجه : کاربر caddyایجاد شده در اینجا فقط برای مدیریت سرویس Caddy قابل استفاده است و نمی توان از آن برای ورود به سیستم استفاده کرد.

دایرکتوری خانگی را /var/wwwبرای سرور وب Caddy و فهرست اصلی /var/www/example.comسایت خود ایجاد کنید:

sudo mkdir -p /var/www/example.com
sudo chown -R caddy:caddy /var/www

برای ذخیره گواهینامه های SSL دایرکتوری ایجاد کنید:

sudo mkdir /etc/ssl/caddy
sudo chown -R caddy:root /etc/ssl/caddy
sudo chmod 0770 /etc/ssl/caddy

برای ذخیره پرونده پیکربندی Caddy یک دایرکتوری اختصاصی ایجاد کنید Caddyfile:

sudo mkdir /etc/caddy
sudo chown -R root:caddy /etc/caddy

پرونده پیکربندی Caddy را با نام ایجاد کنید Caddyfile:

sudo touch /etc/caddy/Caddyfile
sudo chown caddy:caddy /etc/caddy/Caddyfile
sudo chmod 444 /etc/caddy/Caddyfile
cat <<EOF | sudo tee -a /etc/caddy/Caddyfile
example.com {
    root /var/www/example.com
    gzip
    tls admin@example.com
}
EOF

توجه : فایل ایجاد شده در بالا است که تنها یک پیکربندی اولیه برای اجرای یک وب سایت استاتیک می باشد. می توانید اطلاعات بیشتری در مورد نحوه نوشتن Caddyfile در اینجا کسب کنید .Caddyfile

به منظور تسهیل عملیات Caddy می توانید یک systemdفایل واحد برای Caddy تنظیم کرده و سپس از آن systemdبرای مدیریت Caddy استفاده کنید .

از viویرایشگر برای ایجاد systemdپرونده واحد Caddy استفاده کنید:

sudo vi /etc/systemd/system/caddy.service

پرونده را جمع کنید:

[Unit]
Description=Caddy HTTP/2 web server
Documentation=https://caddyserver.com/docs
After=network-online.target
Wants=network-online.target systemd-networkd-wait-online.service

[Service]
Restart=on-abnormal

; User and group the process will run as.
User=caddy
Group=caddy

; Letsencrypt-issued certificates will be written to this directory.
Environment=CADDYPATH=/etc/ssl/caddy

; Always set "-root" to something safe in case it gets forgotten in the Caddyfile.
ExecStart=/usr/local/bin/caddy -log stdout -agree=true -conf=/etc/caddy/Caddyfile -root=/var/tmp
ExecReload=/bin/kill -USR1 $MAINPID

; Use graceful shutdown with a reasonable timeout
KillMode=mixed
KillSignal=SIGQUIT
TimeoutStopSec=5s

; Limit the number of file descriptors; see `man systemd.exec` for more limit settings.
LimitNOFILE=1048576
; Unmodified caddy is not expected to use more than that.
LimitNPROC=512

; Use private /tmp and /var/tmp, which are discarded after caddy stops.
PrivateTmp=true
; Use a minimal /dev
PrivateDevices=true
; Hide /home, /root, and /run/user. Nobody will steal your SSH-keys.
ProtectHome=true
; Make /usr, /boot, /etc and possibly some more folders read-only.
ProtectSystem=full
; … except /etc/ssl/caddy, because we want Letsencrypt-certificates there.
;   This merely retains r/w access rights, it does not add any new. Must still be writable on the host!
ReadWriteDirectories=/etc/ssl/caddy

; The following additional security directives only work with systemd v229 or later.
; They further retrict privileges that can be gained by caddy. Uncomment if you like.
; Note that you may have to add capabilities required by any plugins in use.
;CapabilityBoundingSet=CAP_NET_BIND_SERVICE
;AmbientCapabilities=CAP_NET_BIND_SERVICE
;NoNewPrivileges=true

[Install]
WantedBy=multi-user.target

ذخیره نموده و خارج شوید:

:wq!

سرویس Caddy را راه اندازی کنید و آن را به طور خودکار از بوت سیستم شروع کنید:

sudo systemctl daemon-reload
sudo systemctl start caddy.service
sudo systemctl enable caddy.service

مرحله 3: قوانین فایروال را اصلاح کنید

برای اینکه بازدید کنندگان بتوانند به سایت Caddy شما دسترسی پیدا کنند ، باید بنادر 80 و 443 را باز کنید:

sudo firewall-cmd --permanent --zone=public --add-service=http 
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

مرحله 4: برای سایت خود یک صفحه آزمایشی ایجاد کنید

برای ایجاد پرونده ای به نام index.htmlدر فهرست خانه سایت Caddy از دستور زیر استفاده کنید:

echo '<h1>Hello World!</h1>' | sudo tee /var/www/example.com/index.html

سرویس باربری را بارگیری مجدد کنید تا محتوای جدید بارگیری شود:

sudo systemctl restart caddy.service

در آخر ، مرورگر وب خود را به http://example.comیا اشاره کنید https://example.com. باید پیام را Hello World!همانطور که انتظار می رفت مشاهده کنید.

یک نظر بگذارید

نحوه نصب Anchor CMS بر روی یک VPS Fedora 26 LAMP

نحوه نصب Anchor CMS بر روی یک VPS Fedora 26 LAMP

با استفاده از یک سیستم متفاوت؟ Anchor CMS یک سیستم مدیریت محتوا (CMS) بسیار ساده و بسیار سبک ، بسیار آزاد و آزاد است.

اشتراک NFS را در Debian تنظیم کنید

اشتراک NFS را در Debian تنظیم کنید

NFS یک سیستم فایل مبتنی بر شبکه است که به رایانه ها اجازه می دهد تا از طریق شبکه رایانه ای به فایلها دسترسی پیدا کنند. این راهنما توضیح می دهد که چگونه می توانید پوشه ها را روی NF قرار دهید

نحوه بروزرسانی CentOS 7 ، Ubuntu 16.04 و Debian 8

نحوه بروزرسانی CentOS 7 ، Ubuntu 16.04 و Debian 8

هنگام راه اندازی سرور جدید لینوکس ، به روزرسانی سیستم های هسته و سایر بسته ها تا آخرین نسخه پایدار یک روش توصیه شده است. در این مقاله

نحوه نصب بستر سبد خرید LiteCart در اوبونتو 16.04

نحوه نصب بستر سبد خرید LiteCart در اوبونتو 16.04

LiteCart یک بستر سبد خرید آزاد و منبع باز است که به زبان های PHP ، jQuery و HTML 5 نوشته شده است. این نرم افزار ساده ، سبک و با کاربرد آسان است.

نحوه نصب Matomo Analytics در Fedora 28

نحوه نصب Matomo Analytics در Fedora 28

با استفاده از یک سیستم متفاوت؟ Matomo (سابقا پیویک) یک بستر تحلیلی منبع باز است ، یک جایگزین باز برای Google Analytics. منبع Matomo میزبان o

یک سرور TeamTalk را در لینوکس تنظیم کنید

یک سرور TeamTalk را در لینوکس تنظیم کنید

TeamTalk یک سیستم کنفرانس است که به کاربران امکان می دهد مکالمات صوتی / تصویری با کیفیت بالا ، چت متنی ، انتقال فایل ها و صفحه های به اشتراک بگذارند. من

با استفاده از کلید SSH خود برای ورود به کاربران غیر ریشه استفاده کنید

با استفاده از کلید SSH خود برای ورود به کاربران غیر ریشه استفاده کنید

Vultr یک ویژگی را فراهم می کند که به شما امکان می دهد با ایجاد یک نمونه جدید ، کلیدهای SSH را از قبل نصب کنید. این اجازه می دهد تا به کاربر root دسترسی داشته باشید ، با این حال ، th

نحوه نصب انجمن NodeBB در FreeBSD 12

نحوه نصب انجمن NodeBB در FreeBSD 12

با استفاده از یک سیستم متفاوت؟ NodeBB یک نرم افزار انجمن مبتنی بر Node.js است. از سوکت های وب برای تعامل فوری و اعلامیه های زمان واقعی استفاده می کند. NodeB

نحوه نصب Ranger Terminal File Manager در لینوکس

نحوه نصب Ranger Terminal File Manager در لینوکس

رنجر یک مدیر فایل مبتنی بر خط فرمان است که دارای کلیدهای اتصال VI است. این برنامه یک رابط لعنتی مینیمالیستی و زیبا با نمای سلسله مراتب فهرست ارائه می دهد

نصب و راه اندازی ZNC در اوبونتو

نصب و راه اندازی ZNC در اوبونتو

ZNC یک پیشرانه پیشرفته شبکه IRC است که تمام وقت بهم متصل می شود تا مشتری IRC بتواند بدون از دست دادن جلسه گپ قطع یا وصل شود.