۱. نصب
sudo zypper refresh
sudo zypper install -y nginx
sudo systemctl enable --now nginxساختار openSUSE با Debian فرق دارد: پوشهی sites-available وجود ندارد. سایتها در /etc/nginx/vhosts.d/ با پسوند .conf قرار میگیرند و ریشهی پیشفرض وب /srv/www/htdocs است.
۲. سایت
sudo mkdir -p /srv/www/portal
echo '<h1>Portal on openSUSE</h1>' | sudo tee /srv/www/portal/index.html/etc/nginx/vhosts.d/portal.conf:
server {
listen 80;
server_name portal.corp.sahor.ir;
root /srv/www/portal;
index index.html;
access_log /var/log/nginx/portal.access.log;
error_log /var/log/nginx/portal.error.log;
location / {
try_files $uri $uri/ =404;
}
}در /etc/nginx/nginx.conf داخل بلوک http مطمئن شوید که این خط هست و از comment خارج شده است:
include vhosts.d/*.conf;
server_tokens off;۳. SELinux و فایروال
sudo restorecon -Rv /srv/www/portal
sudo firewall-cmd --permanent --add-service=http --add-service=https
sudo firewall-cmd --reload۴. بررسی و بارگذاری
sudo nginx -t
sudo systemctl reload nginx
curl -H 'Host: portal.corp.sahor.ir' http://127.0.0.1/۵. HTTPS
افزونهی Nginx برای certbot در مخزن اصلی هست. نام بسته به نسخهی Python توزیع بستگی دارد، پس اول جستوجو کنید:
zypper search certbot-nginx
sudo zypper install -y python313-certbot-nginx # use the name shown by the search
sudo certbot --nginx -d portal.sahor.ir
systemctl list-timers | grep -i certbotاگر تایمری برای تمدید نمیبینید، certbot renew --quiet را روزی دو بار با یک systemd timer یا cron اجرا کنید. اگر سرور از اینترنت در دسترس نیست، گواهی را از CA داخلی سازمان بگیرید و مسیرش را با ssl_certificate و ssl_certificate_key در بلوک listen 443 ssl بدهید.