it-swarm.dev

إنجن إكس - اثنين من تكوين المجال الفرعي

أنا جديد على Nginx وأحاول تشغيل النطاقات الفرعية.

ما أود القيام به هو أخذ نطاقي (دعنا نسميها example.com) و أضف:

  • sub1.example.com،
  • sub2.example.com ، وأيضا
  • www.example.com متاح.

أعرف كيف أقوم بذلك مع Apache ، لكن Nginx هو خدش حقيقي للرأس.

أنا أركض ديبيان 6.

حالي /etc/nginx/sites-enabled/example.com:

server {
    server_name www.example.com example.com;
    access_log /srv/www/www.example.com/logs/access.log;
    error_log /srv/www/www.example.com/logs/error.log;
    root /srv/www/www.example.com/public_html;

    location / {
        index  index.html index.htm;
    }

    location ~ \.php$ {
        include /etc/nginx/fastcgi_params;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME /srv/www/www.example.com/public_html$fastcgi_script_name;
    }
}

إنه يعمل لخدمة example.com و www.example.com.

لقد حاولت إضافة كتلة خادم ثانية في نفس الملف مثل:

server {
        server_name www.example.com example.com;
        access_log /srv/www/www.example.com/logs/access.log;
        error_log /srv/www/www.example.com/logs/error.log;
        root /srv/www/www.example.com/public_html;

        server {
            server_name sub1.example.com;
            access_log /srv/www/example.com/logs/sub1-access.log;
            error_log /srv/www/example.com/logs/sub1-error.log;
            root /srv/www/example.com/sub1;
    }
        location / {
            index  index.html index.htm;
        }

        location ~ \.php$ {
            include /etc/nginx/fastcgi_params;
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME /srv/www/www.example.com/public_html$fastcgi_script_name;
        }
}

لا حظ. أيه أفكار؟ أنا أقدر سوبر أي ردود فعل.

48
ColLeslieHapHapablap

الخطأ هو وضع كتلة خادم داخل كتلة خادم ، يجب إغلاق كتلة الخادم الرئيسية ثم فتح واحدة جديدة للنطاقات الفرعية

server {
    server_name example.com;
    # the rest of the config
}
server {
    server_name sub1.example.com;
    # sub1 config
}
server {
    server_name sub2.example.com;
    # sub2 config
}
73
Mohammad AbuShady

تحتاج فقط إلى إضافة السطر التالي بدلاً من server_name الخاص بك

server_name xyz.com  *.xyz.com;

وإعادة تشغيل Nginx. هذا هو.

4
Mohd Anas

يجب عليك إنشاء ملف تهيئة nginx آخر باستخدام serverblock لنطاقك الفرعي. مثل ذلك:

/etc/nginx/sites-enabled/subdomain.example.com
1
Cisko Rijken