۱. نصب و فعالسازی
pkg install -y nginx
sysrc nginx_enable="YES"
service nginx startدر FreeBSD، فایلهای پیکربندی نرمافزارهای اضافه در /usr/local/etc هستند، نه /etc.
۲. ساختار سایتها
برای مرتب ماندن، سایتها را در فایلهای جدا نگه دارید. در /usr/local/etc/nginx/nginx.conf، داخل بلوک http:
server_tokens off;
include /usr/local/etc/nginx/sites/*.conf;mkdir -p /usr/local/etc/nginx/sites /usr/local/www/example.ir
echo '<h1>FreeBSD</h1>' > /usr/local/www/example.ir/index.html# /usr/local/etc/nginx/sites/example.ir.conf
server {
listen 80;
server_name example.ir www.example.ir;
root /usr/local/www/example.ir;
location /.well-known/acme-challenge/ { root /usr/local/www/acme; }
}mkdir -p /usr/local/www/acme
nginx -t && service nginx reload۳. گواهی HTTPS
pkg install -y py311-certbot
certbot certonly --webroot -w /usr/local/www/acme -d example.ir -d www.example.irنام بستهی certbot نسخهی Python را در خود دارد؛ با pkg search certbot نام دقیق را پیدا کنید.
گواهیها در /usr/local/etc/letsencrypt/live/example.ir/ ذخیره میشوند. بلوک HTTPS را اضافه کنید:
server {
listen 443 ssl;
http2 on;
server_name example.ir;
ssl_certificate /usr/local/etc/letsencrypt/live/example.ir/fullchain.pem;
ssl_certificate_key /usr/local/etc/letsencrypt/live/example.ir/privkey.pem;
root /usr/local/www/example.ir;
}۴. تمدید خودکار
echo 'weekly_certbot_enable="YES"' >> /etc/periodic.conf
echo 'weekly_certbot_post_hook="service nginx reload"' >> /etc/periodic.conf