پرش به محتوا

وب‌سرور Nginx روی FreeBSD

Nginx را با pkg نصب کنید، با rc.conf فعال کنید، سایت تعریف کنید و با certbot از مجموعه‌ی پورت‌ها گواهی HTTPS بگیرید.

FreeBSD 15سطح: مقدماتیبه‌روزرسانی: ۱۶ آبان ۱۴۰۵

۱. نصب و فعال‌سازی

shell
pkg install -y nginx
sysrc nginx_enable="YES"
service nginx start

در FreeBSD، فایل‌های پیکربندی نرم‌افزارهای اضافه در /usr/local/etc هستند، نه /etc.

۲. ساختار سایت‌ها

برای مرتب ماندن، سایت‌ها را در فایل‌های جدا نگه دارید. در /usr/local/etc/nginx/nginx.conf، داخل بلوک http:

nginx
server_tokens off;
include /usr/local/etc/nginx/sites/*.conf;
shell
mkdir -p /usr/local/etc/nginx/sites /usr/local/www/example.ir
echo '<h1>FreeBSD</h1>' > /usr/local/www/example.ir/index.html
nginx
# /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; }
}
shell
mkdir -p /usr/local/www/acme
nginx -t && service nginx reload

۳. گواهی HTTPS

shell
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 را اضافه کنید:

nginx
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;
}

۴. تمدید خودکار

shell
echo 'weekly_certbot_enable="YES"' >> /etc/periodic.conf
echo 'weekly_certbot_post_hook="service nginx reload"' >> /etc/periodic.conf