نصب وب سرور Caddy روی سرور CentOS

نصب وب سرور Caddy روی سرور CentOS
نصب وب سرور Caddy روی سرور CentOS
9 ماه پیش

در این آموزش از سری مقالات آموزش لینوکس Centos 7 با نصب وب سرور Caddy روی سرور CentOS 7 همراه شما هستیم.

Caddy وب سرور جدیدی است که با زبان GO نوشته شده است به همین دلیل باینری‌های آن کاملا مستقل بوده و روی هر پلتفرمی اجرا میشود. برخی از مزایای این وب سرور بصورت زیر میباشد.

  • Caddy یک وب سرور سبک است و به منابع کمتری نیاز دارد.
  • دارای کانفیگ آسان است.
  • HTTP/2.0 را پشتیبانی میکند.
  • این وب سرور تنها وب سروری هست که بصورت پیشفرض از HTTPS استفاده میکند.
  • برای پردازش محتوای استاتیک خیلی سریع است.

در این آموزش به نصب و کانفیگ Caddy بعنوان یک سرویس روی سرور CentOS 7 میپردازیم.

نصب و کانفیگ Caddy روی سرور CentOS 7

مراحل نصب و کانفیگ Caddy روی سرور CentOS 7 بصورت زیر میباشد.

گام اول: باینری های Caddy را دانلود نمایید.

اسکریپت زیر را اجرا کنید. این اسکریپت باینری‌های Caddy را دانلود کرده و آنها را در PATH اجرایی سرور شما قرار خواد داد.

curl https://getcaddy.com | bash

برای دیدن محل فایل‌های باینری Caddy میتوانید از دستور زیر استفاده نمایید.

which caddy

خروجی دستور فوق باید مشابه خروجی زیر باشد.

/usr/local/bin/caddy

گام دوم: ایجاد سرویس Caddy

Caddy خودش را مانند یک سرویس نصب نمیکند. این به این معنی هست که در زمان ریبوت سیستم بصورت اتوماتیک استارت نمیشود. در مراحل زیر یک کاربر اختصاصی برای Caddy ایجاد کرده و فایل‌های کانفیگ آن را در مکان های مناسب قرار داده و مجوزهای فایل‌ها را بدرستی ست میکنیم.

در صورتی که فایل‌های باینری را با کاربر روت دانلود نکرده اید باید مجوزهای فایل‌های باینری را با استفاده از دستورات زیر تغییر دهید.

chown root:root /usr/local/bin/caddy 

chmod 755 /usr/local/bin/caddy 

با استفاده از دستور زیر به باینری‌ها امکان کار با پورت‌هایی با شماره کمتر از 1024 را بدهید.

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

حال برای Caddy یوزر و گروهی را ایجاد مینماییم.

groupadd caddy

useradd \

> -g caddy \

> --home-dir /var/www --no-create-home \

> --shell /usr/sbin/nologin \

> --system caddy

حال باید تعدادی دایرکتوری ایجاد نموده و دسترسی‌ها و مالک آنها را ست نماییم.

دستورات زیر را برای ایجاد دایرکتوری اصلی Caddy که فایل های کانفیگ را در این دایرکتوری قرار خواهیم داد اجرا نمایید و مجوزهای لازم را اعمال نمایید.

mkdir /etc/caddy

chown -R root:caddy /etc/caddy

برای نگهداری تنظیمات SSL دایرکتوری SSL را ایجاد مینماییم.

mkdir /etc/ssl/caddy

chown -R caddy:root /etc/ssl/caddy

chmod 770 /etc/ssl/caddy

برای Caddy دایرکتوری home ایجاد کرده و مجوز دسترسی را اضافه نمایید.

mkdir /var/www

chown -R caddy:caddy /var/www

chmod -R 555 /var/www

در نهایت میتوانیم فایل caddy.service را ایجاد کنیم. برای ایجاد فایل به دایرکتوری زیر بروید.

cd /etc/systemd/system/

فایلی با نام “caddy.service” ایجاد نمایید.

nano caddy.service

تنظیمات زیر را داخل فایل قرار داده و ذخیره کرده و خارج شوید.

[Unit]Description=Caddy HTTP/2 web serverDocumentation=https://caddyserver.com/docsAfter=network-online.targetWants=network-online.target systemd-networkd-wait-online.service [Service]Restart=on-failureStartLimitInterval=86400StartLimitBurst=5 ; User and group the process will run as.User=caddyGroup=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/tmpExecReload=/bin/kill -USR1 $MAINPID ; 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=64 ; Use private /tmp and /var/tmp, which are discarded after caddy stops.PrivateTmp=true; Use a minimal /devPrivateDevices=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

با استفاده از دستور زیر مجوزهای لازم را ست نمایید.

chown root:root /etc/systemd/system/caddy.service

chmod 644 /etc/systemd/system/caddy.service

برای اعمال تغییرات، systemd را ریست نمایید.

systemctl daemon-reload

حال میتوانید با استفاده از دستورات زیر Caddy را بعنوان سرویس استفاده نمایید.

systemctl enable caddy

systemctl start caddy

systemctl status caddy

گام سوم: کانفیگ ساده Caddy

حال که سرویس Caddy را ایجاد کردیم میخواهیم Caddy را کانفیگ نماییم تا روی پورت 80 پروتکل HTTP برای ما سرویس دهی نماید. برای انجام اینکار باید در فایل Caddyfile تنظیماتی را اضافه نماییم. این فایل در دایرکتوری /etc/caddy/ قرار دارد. با دستور زیر فایل را باز کنید.

nano /etc/caddy/Caddyfile

با کانفیگ زیر سرویس Caddy را وادار به اجرا روی پورت 80 کرده و var/www/ را بعنوان دایرکتوری ریشه آن تعریف مینماییم.

نکته: مقدار قرمر زا با آدرس IP یا نام دامنه خود جایگزین نمایید.

Your_Domain_Or_IP_Address:80root /var/www

فایل را ذخیره کرده و خارج شوید.

با دستور زیر سرویس Caddy را ریستارت نمایید.

systemctl restart caddy

با استفاده از دستور زیر به داریکتوری ریشه Caddy میرویم.

cd /var/www

با استفاده از دستور زیر یک فایل index.html برای تست ایجاد نمایید.

nano index.html

کد زیر را داخل آن قرار داده و ذخیره نموده و خارج شوید.



!OOOps Caddy is installed and works correctly

حال برای تست کارکرد درست Caddy میتوانید نام دامنه یا آدرس IP خود را در مرورگر وارد نموده تا صفحه Welcome وب سرور Caddy را مشاهده نمایید.

نکته : در صورتی که صفحه Welcome نمایش داده نشد ، فایروال Centos خود را تنظیم و پورت 80 و 443 را بر روی آن باز کنید.

در این آموزش موفق به نصب وب سرور Caddy روی سرور CentOS 7 شدید. امیدوارم این آموزش برای شما مفید بوده باشد.

در آموزش‌های آینده در مورد کار با این وب سرور بیشتر توضیح خواهیم داد.

 کاربر گرامی شما می‌توانید سؤالات مربوط به این آموزش را در بخش کامنت‌ها عنوان کرده و در همین قسمت پاسخ خود را دریافت کنید.

مریم علیزاده- نویسنده

3162
A
A