همیشه برنامهنویس ولی یه برنامهنویس متن باز عاشق پایتون جنگو و تحلیل داده
چگونه پروژه جنگو خود را در 8 centos اجرا (deploy) کنیم
خب در این پست میخواهم کد جنگو را بر روی سرور CentOS را برای شما شرح دهم. برای شروع باید که پایگاه داده و برنامه خود را راه اندازی سپس سرور برنامه Gunicorn را نصب و پیکربندی می کنیم. این به عنوان رابط برنامه ما عمل می کند و درخواست های مشتری را در تماس های HTTP به پایتون ترجمه می کند که برنامه ما می تواند پردازش کند. سپس Nginx را در مقابل Gunicorn راه اندازی خواهیم کرد تا از مکانیزم های عملکرد اتصال بالا با عملکرد بالا و ویژگی های امنیتی آسان برای اجرای آن بهره مند شویم.
خب بیایید شروع کنیم:

مرحله اول نصب EPEL repository
sudo yum install epel-releaseدر مرحله بعد نیاز است پایگاه داده را نصب کنید، برای اینکار من PostgreSQL را نصب میکنم
dnf module list postgresqlدستور بالا ورژنهای postgres را به شما نشان میدهد ورژن مورد نظر خود را با دستور زیر انتخاب و نصب کنید
sudo dnf module enable postgresql:12 sudo dnf module enable postgresql:<version of postgres>برای نصب کامل من خودم از ورژن 10 را نصب میکنم
sudo dnf install postgresql-serverبعد نصب نیازه تا پیش نیازها postgres به آن نیاز دارد دستور زیر را وارد کنید
sudo postgresql-setup --initdbsudo systemctl start postgresqlsudo systemctl enable postgresqlحواستون باشه دیتابیس postgres نیاز داره تا روش ورود به این دیتابیس از جنگو باید باشه حالت md5 است برای این کار فایل تنظیمات اصلی را ویرایش کنید
sudo nano /var/lib/pgsql/data/pg_hba.confاز ident به md5 تغییر بدید. خیلی مهمهها!!!!!!
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
#host all all 127.0.0.1/32 ident
host all all 127.0.0.1/32 md5
# IPv6 local connections:
#host all all ::1/128 ident
host all all ::1/128 md5
بعد از ذخیره سازی با دستورات زیر فایل تنظیمات دیتابیس را ریستارت کنید
sudo systemctl restart postgresql sudo systemctl enable postgresqlبا ترمینال دستور زیر را وارد کنید و پایگاه داده . schema و user را بسازید
sudo su - postgres
psql
CREATE DATABASE <yourdatabasename>
CREATE USER myprojectuser WITH PASSWORD 'password';
GRANT ALL PRIVILEGES ON DATABASE myproject TO myprojectuser;
\q
خب دیتابیس ساخته شد میریم واسه جنگو
sudo pip install virtualenv
virtualenv myprojectenvsource myprojectenv/bin/activateخب حالا نصب کنید requiements.txt
pip install -r requiement.txtاز فایل setting ویرایش کنید مشخاصات پایگاه داده را
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'myproject',
'USER': 'myprojectuser',
'PASSWORD': 'password',
'HOST': 'localhost',
'PORT': '',
}
جدولها دیتابیس را migrate کنید
python manage.py makemigrationspython manage.py migrate
python manage.py createsuperuser
خب پروژه را اجرا کنید اگه مشکلی نبود ادامه توضیحات من رو بخونید :)))
python manage.py runserver 0.0.0.0:8000برای اجرا در nginx نیاز دارید تا gunicorn را نصب و اجرا کنید
pip install gunicorn cd ~/myprojectgunicorn --bind 0.0.0.0:8000 myproject.wsgi:applicationسرویس زیر را در بسازید
sudo nano /etc/systemd/system/gunicorn.serviceدر این فایل تنظیمات زیر را اعمال کنید
حواستون باشه مسیر پروژه تون را جایگزین کنید
[Unit]Description=gunicorn daemonAfter=network.target[Service]User=userGroup=nginxWorkingDirectory=/home/user/myprojectExecStart=/home/user/myproject/myprojectenv/bin/gunicorn --workers 3 --bind unix:/home/user/myproject/myproject.sock myproject.wsgi:application
[Install]WantedBy=multi-user.targetسرویس gunicorn را اجرا کنید
sudo systemctl start gunicornsudo systemctl enable gunicornاین بخش تمام شد حالا nginx را نصب کن
dnf install nginxsudo nano /etc/nginx/nginx.confتنظیمات زیر را اعمال کنید server { listen 80; server_name server_domain_or_IP; location = /favicon.ico { access_log off; log_not_found off; } location /static/ { root /home/user/myproject; } location / { proxy_set_header Host $http_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://unix:/home/user/myproject/myproject.sock; }}پس ریستارت کن امیدوارم اجرا بشه و
sudo nginx -tsudo systemctl start nginxsudo systemctl enable nginx
مطلبی دیگر از این انتشارات
اشتراک گذاری لوکال هاست در بستر اینترنت
مطلبی دیگر از این انتشارات
نظرسنجی برای یک مینی فریم ورک css به کمک js
مطلبی دیگر از این انتشارات
چند نکته جالب برای بهینه کردن داکرفایل Dockerfile - قسمت اول