Need help? Chat now!

Hostwinds دروس

نتائج البحث عن:


جدول المحتويات


المتطلبات الأساسية
تكوين Nginx
اختبر تكوين Nginx

وكيل Nginx العكسي مع SSL

العلامات: SSL,  Cloud Servers,  VPS 

المتطلبات الأساسية
تكوين Nginx
اختبر تكوين Nginx

nginx هو أداة قوية. يتيح لك خدمة تطبيقات متعددة ومواقع الويب وتطبيقات التحميل المتوازنة وغير ذلك الكثير. يتم تشغيل هذه المرونة من خلال نظام تكوين بسيط نسبيا يستخدم ملفات التكوين القابل للقراءة تقريبا تقريبا. سيظهر هذا الدليل كيفية إعداد وكيل Nginx عكس مع SSL على Hostwinds Cloud VPS.

المتطلبات الأساسية

سيتولى هذا الدليل فهم عام لاستخدام نظام يستند إلى Linux عبر سطر الأوامر وسوف يفترض أن المتطلبات المسبقة التالية:

  • أوبونتو 18.04.2018
  • مستخدم غير جذر
  • تشغيل التطبيق على منفذ وكيل عكسي مرغوب (سيفترض هذا الدليل المنفذ 3000)
  • DNS سجل اسم للمجال المطلوب
  • شهادة SSL للمجال

تكوين Nginx

يتم تعيين حزمة Nginx-full بشكل افتراضي على بيئة المضيف الظاهري المشتركة الديناميكية. تتوفر ملفات التكوين لكل مضيف افتراضي للاستخدام هنا:

/etc/nginx/sites-available/

سيكون لهذا الموقع ملف يسمى إفتراضي متاح لاستخدام كقالب قاعدة. ومع ذلك، سنقوم بإنشاء ملف تكوين جديد يدويا في هذا الدليل وملء ذلك حسب الحاجة. بمجرد تسجيل الدخول كمستخدم غير جذر الخاص بك، قم بإصدار هذا الأمر لبدء التشغيل:

sudo touch /etc/nginx/sites-available/domain.tld

تأكد من استبدال Domain-tld. مع المجال الذي تستخدمه بالفعل.

بعد ذلك، ننتقل إلى تعديل هذا الملف لأداء المهام التي نحتاجها للقيام به. سوف نستخدم همة في هذا الدليل كمحرر نصوص. يمكنك استخدام نانو أو أي محرر نصوص آخر بناءً على تفضيلاتك الشخصية.

sudo vim /etc/nginx/sites-available/domain.tld

الآن أن الملف موجود يضيف النص التالي إلى هذا الملف. تعديل النص المشار إليه للإشارة إلى المجال الخاص بك، والمنفذ يستخدم التطبيق الخاص بك، ومسارات شهادة SSL الخاصة بك. سيكون هذا الملف هو التكوين الرئيسي للوكيل العكسي:

###
# This Section listens on port 80 for your domain and rewrites the request 
# to HTTPS for us
###

server {
listen 80;
server_name domain.tld www.domain.tld; # Edit this to your domain name
rewrite ^ https://$host$request_uri permanent;
}

###
# This is all the configuration declarations that help SSL Function.
###

server {
listen 443 ssl;

server_name domain.tld;
# Edit this to your domain name

ssl_certificate /etc/letsencrypt/live/domain.tld/fullchain.pem;       
# If you use Lets Encrypt, you should just need to change the domain. 

ssl_certificate_key /etc/letsencrypt/live/domain.tld/privkey.pem;     
# If you use Let's Encrypt, you should just need to change the domain.

ssl_session_cache builtin:1000 shared:SSL:10m;                        
# Defining option to share SSL Connection with Passed Proxy

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;                                  
# Defining used protocol versions. 

ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4; 
# Defining ciphers to use. 

ssl_prefer_server_ciphers on;                                         
# Enabling ciphers

access_log /var/log/nginx/access.log;                                 
# Log Location. Can be anywhere. Make sure the nginx user defined in /etc/nginx/nginx.conf has r/w permissions

###
# This is the juicey part of the config file, handing off relevant data to 
# our back-end app running on port 3000
# Nothing should need to be changed here, unless port 3000 is not the port 
# you're using. 
# Furthermore, if you're using a socket to serve your app (PHP comes to 
# mind), you can define a unix:.sock location here as well
###

location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://localhost:3000;
proxy_read_timeout 90;
}
}

احفظ الملف واخرج من محرر النصوص.

اختبر تكوين Nginx

الآن بعد أن تم إنشاء التكوين ، علينا إخبار Nginx بالتحقق من الملف عند التحميل. سنقوم بعمل رابط رمزي:

sudo ln -s /etc/nginx/sites-avaialable/domain.tld /etc/nginx/sites-enabled/domain.tld.conf

بعد ذلك ، نقوم باختبار التكوين قبل إعادة تشغيل خدمة نظام Nginx

sudo nginx -t

بعد ذلك ، يجب تشغيل الاختبار وإخراج الرسالة التالية عند النجاح:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

نحن نعرف الآن أن ملف التكوين لن يسبب تعطل، لذلك دعونا إعادة تشغيل خدمة Nginx واختبر التطبيق.

sudo systemctl restart nginx

يجب أن يكون لديك الآن الوصول إلى التطبيق يعمل على المنفذ المحدد عن طريق التصفح إلى Domain-tld. كما هو موضح في ملف تكوين Nginx الذي تم إنشاؤه مسبقًا.

كتب بواسطة Hostwinds Team  /  يونيو 14, 2019