در این پست با استفاده از یک ماشین مجازی آموزش استقرار جنگو در nginx – قسمت اول را ارائه می کنیم. نسخه ubuntu استفاده شده 18.04 است. ویدئوی زیر را مشاهده کنید، توضیحات متنی این آموزش زیر ویدئو در دسترس است.
توضیحات متنی آموزش استقرار جنگو در nginx – قسمت اول
در این آموزش از nginx و gunicorn استفاده شده است، نرم افزار مدیریت دیتابیس هم postgres است. برای این آموزش یک ubuntu 18.04 روی ماشین مجازی نصب کردیم. و با فعال کردن ssh در این ابونتو، سرور ابونتو را شبیه سازی می کنیم. پس با استفاده از دستور ssh root@IP (به جای IP باید آی پی سرور خودتان را بزنید) به سرور ریموت می زنیم. ما از nginx به عنوان یک reverse proxy استفاده می کنیم.
چون ما با کاربر root به سرور دسترسی داریم، در صورت انجام عملیات اشتباه ممکن است مشکلاتی برای سرور به وجود بیاوریم، پس یک کاربر با دسترسی کمتری با استفاده از دستور adduser ایجاد می کنیم (نام کاربری انتخابی به عنوان نمونه deploy است) و با استفاده از دستور usermod -aG sudo deploy این کاربر را عضو گروه superuser می کنیم.
سپس با استفاده از کاربری که ساختیم، مجددا به سرور ریموت می زنیم. و دستور sudo apt update را می زنیم تا لیست آپدیت های احتمالی بروز شود. و اگر آپدیتی وجود داشت، آپدیت می کنیم(با دستور sudo apt-get upgrade ). حال با استفاده از دستور sudo apt install python3-pip python3-dev libpq-dev postgresql postgresql-contrib nginx curl پکیج های nginx و postgres را با همه وابستگی هایشان نصب می کنیم.
وقتی postgres نصب می شود، به صورت پیشفرض یک یوزر از نوع superuser با نام postgres ایجاد می کند. ما با استفاده از یوزر postgres دیتابیس را ایجاد می کنیم. پس دستور sudo -u postgres psql را اجرا می کنیم و وارد محیط پستگرس می شویم.
ابتدا یک دیتابیس با نام djangodb با دستور CREATE DATABASE djangodb ایجاد می کنیم. سپس یک یوزر برای دیتابیس با نام djangouser با دستور CREATE USER djangouser WITH PASSWORD ‘*******’; ایجاد می کنیم. و مقدار client_encoding را با دستور ALTER ROLE djangouser SET client_encoding TO ‘utf-8’; تنظیم می کنیم. و مقدار transaction_isolation را با دستور ALTER ROLE djangouser SET default_transaction_isolation TO ‘read commited’; تنظیم می کنیم.
در مرحله بعدی time zone را با دستور ALTER ROLE djangouser SET timezone TO ‘UTC’; تنظیم می کنیم. و دسترسی های کاربر djangouser را با دستور GRANT ALL PRIVILEGES ON DATABASE djangouser TO djangouser; تعیین می کنیم. و در انتها از محیط پستگرس خارج می شویم. (با دستور \q)
سپس برای ساخت یک محیط ایزوله با دستور sudo apt install python3-venv اقدام به نصب virtualenv می کنیم. و در ادامه برای پروژه یک فولدر به نام myproject با دستور mkdir myproject ایجاد می کنیم. با دستور cd myproject واحد فولدر شده و محیط ایزوله را با دستور python3 -m venv myprojectenv ایجاد کرده و با دستور source myprojectenv /bin/activate محیط را فعال می کنیم.
در انتهای این قسمت با دستور pip install django gunicorn psycopg2-binary اقدام به نصب جنگو و پکیج های مورد نیاز برای postgres و nginx می کنیم.
امیدوارم این ویدئو به دانسته های شما اضافه کرده باشد. سوالات خود را در قسمت نظرات ثبت کنید.
برای حمایت از جنگولرن از اینجا (پلتفرم idpay) ما را حمایت کنید. لیست همه مطالب آموزشی جنگولرن را از اینجا ببینید.