<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های زهرا ردانی پور</title>
        <link>https://virgool.io/feed/@zraddani</link>
        <description>مهندس نرم افزارم و چند سالی هست در این حوزه فعالیت دارم. اینجا مطالبی که یادگیریش برای جذاب بوده را به اشتراک میذارم. سایت من هست zraddani.ir</description>
        <language>fa</language>
        <pubDate>2026-06-10 12:57:14</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/635596/avatar/RE2ZEC.jpeg?height=120&amp;width=120</url>
            <title>زهرا ردانی پور</title>
            <link>https://virgool.io/@zraddani</link>
        </image>

                    <item>
                <title>تنظیمات replicate برای پایگاه داده ی mysql</title>
                <link>https://virgool.io/@zraddani/%D8%AA%D9%86%D8%B8%DB%8C%D9%85%D8%A7%D8%AA-replicate-%D8%A8%D8%B1%D8%A7%DB%8C-%D9%BE%D8%A7%DB%8C%DA%AF%D8%A7%D9%87-%D8%AF%D8%A7%D8%AF%D9%87-%DB%8C-mysql-thwua6pmzcmc</link>
                <description>این نوشته برای حالتی است که پایگاه داده برروی یک کانتینر اجرا می شود و تنظیمات mysql با تعریف volume  قابل تغییر می باشد.اسکریپت های مربوط به این نوشته در این لینک قرار دارد. https://github.com/zahrardn/docker-servers-mysql-replicate شما یک پایگاه داده ی master و یک یا چندین slave  دارید.master:پایگاه داده ی اصلی است که دیتای آن برای شما بسیار حائز اهمیت است و برای همین می خواهید برای آن replicate ایجاد کنید.ابتدا برروی سرور لاگین کنید. در فایل env تنظیمات لازم را انجام دهید.اسکریپت run-master را اجرا کنید.اگر با موفقیت انجام شده باشد هنگامی که به phpmyadmin لاگین میکنید در لیست دیتابیس ها مشخص است که کدام یک تنظیمات replicate برای آن انجام شده است.slave:پایگاه داده هایی است که قرار است بعنوان stand by برای دایگاه داده ی اصلی وجود داشته باشد و هر تغییری برروی دایگاه داده ی master روی آن ها اعمال می شود.ابتدا برروی سرور لاگین کنید. در فایل env تنظیمات لازم را انجام دهید.اسکریپت run-slave را اجرا کنید.اگر با موفقیت انجام شده باشد هنگامی که به phpmyadmin لاگین می کنید، در تب replicate در قسمت slave هیچ خطایی ندارید و تصویری مشابه زیر می بینید.</description>
                <category>زهرا ردانی پور</category>
                <author>زهرا ردانی پور</author>
                <pubDate>Mon, 12 Apr 2021 13:47:07 +0430</pubDate>
            </item>
                    <item>
                <title>استفاده از subdomain برای سرویس های مختلف برروی سرور لینوکس</title>
                <link>https://virgool.io/@zraddani/%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-subdomain-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%B3%D8%B1%D9%88%DB%8C%D8%B3-%D9%87%D8%A7%DB%8C-%D9%85%D8%AE%D8%AA%D9%84%D9%81-%D8%A8%D8%B1%D8%B1%D9%88%DB%8C-%D8%B3%D8%B1%D9%88%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-smtue3xlaat3</link>
                <description>اگر سرور شما لینوکس است ولی هاست اشتراکی و یا سروری با cpanel و یا direct admin استفاده نمی کنید و سرویس های مختلفی برروی سرور اجرا میکنید که هر کدام بر روی پورت مجزایی expose شده است ولی هر سرویس را میخواهید برروی subdomain خاصی اجرا کنید، این مقاله برای شما نوشته شده است.اگر دامنه ی مورد نظر به ip سرور متصل شده است این مرحله را را انجام داده اید در غیر این صورت از ارائه دهنده ی سرور، آدرس dns سرور را بگیرید برای مثال :dns.xaas.ir و dns2.xaas.irاین آدرس ها را باید برای دامنه های ir در سایت nic.ir برای دامنه ی مربوطه ثبت کنید.حدودا ۲۴ ساعت زمان می برد تا دامنه به سرور متصل شود. پس از این اتصال باید ping دامنه ی مورد نظر و هر subdomain از آن را داشته باشید.در مرحله ی بعد شما برای ارائه ی سرویس وب از وب سروری مانند nginx, apache استفاده میکند که در این مقاله در مورد nginx صحبت شده ولی مشابه آن برای وب سرور های دیگر نیز تنظیمات باید انجام شود.در فایل /etc/nginx/nginx.conf و یا فایل هایی که در آن import شده اند باید تنظیمات مربوطه را انجام داد.فرض میکنیم وب اپلیکیشنی با فریمورک لاراول بر روی پورت 8080 با تنظیمات زیر برای nginx در حال استفاده است:server {    listen 8080;    index index.php index.html;    error_log  /var/log/nginx/error.log;    access_log /var/log/nginx/access.log;    root /var/www/project_dir/public;    location ~ \.php$ {        try_files $uri =404;        fastcgi_split_path_info ^(.+\.php)(/.+)$;        fastcgi_pass laravel-app:9000; #9000 is laravel app expose port        fastcgi_index index.php;        include fastcgi_params;        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;        fastcgi_param PATH_INFO $fastcgi_path_info;    }    location / {        try_files $uri $uri/ /index.php?$query_string;        gzip_static on;    }}حال می خواهیم این اپ را با app.domain.ir اجرا کنیم. بنابراین خطوط زیر را به فایل کانفیگ nginx اضافه میکنیم:server {    listen 80;    server_name app.domain.ir;    location / {        proxy_set_header Host $host;        proxy_pass http://127.0.0.1:8080;        proxy_redirect off;    }}بعد از آن nginx را restart کرده و با دامنه ی ذکر شده به سرویس مورد نظر دسترسی داریم.</description>
                <category>زهرا ردانی پور</category>
                <author>زهرا ردانی پور</author>
                <pubDate>Tue, 30 Mar 2021 13:10:11 +0430</pubDate>
            </item>
                    <item>
                <title>طراحی api قبل از کدنویسی با نرم افزار stoplight</title>
                <link>https://virgool.io/@zraddani/%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C-api-%D9%82%D8%A8%D9%84-%D8%A7%D8%B2-%DA%A9%D8%AF%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D8%A8%D8%A7-%D9%86%D8%B1%D9%85-%D8%A7%D9%81%D8%B2%D8%A7%D8%B1-stoplight-yr4igwdns2v5</link>
                <description>برای شروع دولوپ بهتره اول api ها طراحی بشن و بعد کدنویسی شروع بشه که در مواقعی که طراح api و توسعه دهنده ی آن فرق داره، بسیار کاربردیه.دو نرم افزار postman و stoplight برای اینکار وجود دارن که در این مقاله در مورد stoplight صحبت میشه. در این نرم افزار تحت وب که استفاده ازش بسیار راحته، rest api ها تعریف میشن.بعد از ثبت نام یه workspace میسازه که قابلیت اعطای دسترسی به اعضای تیم با تعیین سطح محدودیت را داره.میتونید api ها را دسته بندی کنید که برای هر دسته یک فایل json خروجی میده که این فایل json را swagger ui میشناسه. البته تعریف api ها در این نرم افزاز کاملا ویژوال هست و اصلا نیاز ب کدنویسی نداره.در stoplight نوع هر api تعریف میشه، پارامتر ها و ریسپانس ها از هر نوعی مشخص میشن. برای هر api تگ تعریف میشه. مدل میشه تعریف کرد و هر مدل را در تعریف api های مختلف استفاده کرد.از openapi پشتیبانی میکنه، یعنی اگر هنگام generate کد های فرانت با openapi به خطایی بربخوره، هنگام تعریف api این خطا در نرم افزار مشخصه و لازم نیس توسعه دهنده ی فرانت این خطا را اعلام کنه پس سرعت کار بیشتر میشه.مدل های مختلف security را پشتیبانی میکنه، مثلا من از تایپ های مختلف oauth استفاده کردم و بسیار ساده بود.تقریبا تمام فیچر هایی ک swagger پشتیبانی میکنه را در این نرم افزار بشکل ویژوال میبینید.با source control هایی مثل گیت لب یکپارچه شده، پس شما میتونین نسخ api هایی که طراحی کردید را نگهداری کنید.میتونید یه روال deploy هم براش درنظر بگیرید که هر زمان api های طراحی شده، تغییری کرد و روی گیت push شد، از طریق یک docker image از swagger ui روی سرور توسعه قابل نمایش باشه. پس با هر تغییری در طراحی api ها، swagger ui نسخه ی جدید api ها را نمایش میده.البته بگم تحریمیم و از شکن استفاده کنید!آدرسش هم هست: stoplight.io</description>
                <category>زهرا ردانی پور</category>
                <author>زهرا ردانی پور</author>
                <pubDate>Thu, 11 Feb 2021 16:51:28 +0330</pubDate>
            </item>
            </channel>
</rss>