PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : سه سوال در باب nginx اول برای تبدیل htaccess در nginx چه کار باید کرد ؟



unix_magnet
December 1st, 2016, 16:03
برای تبدیل htaccess در nginx چه کار باید کرد ؟

یک سایتی هست که کد های apache رو تبدیل می کنه به قابلیت خونده شدن در nginx

بعد اون کد کجا باید قرار بگیره ؟

یک نفر گفته بودن باید به این شکل ذخیره بشه در روت سایت اما جواب نمیگیرم nginx.conf.txt
سوال دومم اینه که من nginx رو به صورت مستقیم و ماژول directadmin نصب کردم

الان من کدوم فایل رو باید برای انجام تغییرات ویرایش کنم ؟

nano /usr/local/directadmin/custombuild/configure/nginx/conf/nginx.conf
یا
nano /etc/nginx/nginx.conf


سوال سومم اینه که این دستور رو به اخر فایل بالا اضافه کردم اما موقع reload ارور میگیرم دلیلش چیه

gzip on;


پیشاپیش ممنون

OnlineServer
December 1st, 2016, 16:16
این موارد و باید در قفایل کانفیگ هر یوزر جدا گانه قرار بدید.

/usr/local/directadmin/data/users/USERNAME/nginx.conf

unix_magnet
December 1st, 2016, 16:22
این موارد و باید در قفایل کانفیگ هر یوزر جدا گانه قرار بدید.

/usr/local/directadmin/data/users/USERNAME/nginx.conf

دستور موجود در فایل رو در مسیر فوق قرار دادم



# nginx configuration
location / {
if (!-e $request_filename){
rewrite ^(.*)$ /index.php break;
}
}

ارور گرفتم


/etc/init.d/nginx reload
nginx: [emerg] "location" directive is not allowed here in /usr/local/directadmin/data/users/*/nginx.conf:37
nginx: configuration file /etc/nginx/nginx.conf test failed

rahyarco
December 1st, 2016, 16:44
برای تبدیل htaccess در nginx چه کار باید کرد ؟

یک سایتی هست که کد های apache رو تبدیل می کنه به قابلیت خونده شدن در nginx

بعد اون کد کجا باید قرار بگیره ؟

یک نفر گفته بودن باید به این شکل ذخیره بشه در روت سایت اما جواب نمیگیرم nginx.conf.txt
سوال دومم اینه که من nginx رو به صورت مستقیم و ماژول directadmin نصب کردم

الان من کدوم فایل رو باید برای انجام تغییرات ویرایش کنم ؟

nano /usr/local/directadmin/custombuild/configure/nginx/conf/nginx.conf
یا
nano /etc/nginx/nginx.conf


سوال سومم اینه که این دستور رو به اخر فایل بالا اضافه کردم اما موقع reload ارور میگیرم دلیلش چیه

gzip on;


پیشاپیش ممنون










برای تبدیل کدهای httacess به nginx


می توانید از سایت های زیر استفاده کنید .


https://winginx.com/en/htaccess
https://www.nginx.com/blog/converting-apache-to-nginx-rewrite-rules/


البته برای ورد پرس از لینک زیر استفاده کنید :


https://www.nginx.com/resources/wiki/start/topics/recipes/wordpress/


کد های httacess برای هر سایت یا به عبارتی هر یوزر اعمال می شود


به همین منظور شما باید کد ها یی که تبدیل می کنید را در فایل کانفیگ nginxآن یوزر تغییر دهید


بهترین راه در دایرکت ادمین به ترتیب زیر هست :


وارد ادمین دایرکت ادمین شوید .


بر روی Custom HTTPd Configurations
کلیک کنید .


در صفحه ای که باز می شود بر روی دامنه ای که می خواهید
کد ها روی آن اعمال شود کلیک کنید
در این قسمت می توانید کد ها را وارد کنید .


البته به این نکته توجه کنید
کد هایی که در این قسمت وارد می کنید در
بلوک server { } اعمال می شود .




ساختار nginx در دایرکت ادمین
به دلیل ساخت اتوماتیک
viitural host
قدری متفاوت هست




gzip به صورت پیشفرض روی تنظیمات nginx در دایرکت ادمین


فعال هست .


تنظیمات آن هم در مسیر و فایل زیر می باشد :


/etc/nginx/nginx-gzip.conf




اینکه بعد از وارد کردن gzip on پیغام خطا دریافت می کنید به دلیل جایگاه اشتباه کد و تکراری بودن آن هست .

unix_magnet
December 1st, 2016, 17:35
.
.
.
/etc/nginx/nginx-gzip.conf
اینکه بعد از وارد کردن gzip on پیغام خطا دریافت می کنید به دلیل جایگاه اشتباه کد و تکراری بودن آن هست .
ممنون از توضیحات شما
ولی این توضیحات جواب سوال من نبود .
Custom HTTPd Configurations همون لینکی هست که دوست عزیزمون بالا بهش اشاره کردن ولی این گرافیکی و اون در ترمینال

rahyarco
December 1st, 2016, 18:33
ممنون از توضیحات شما
ولی این توضیحات جواب سوال من نبود .
Custom HTTPd Configurations همون لینکی هست که دوست عزیزمون بالا بهش اشاره کردن ولی این گرافیکی و اون در ترمینال


توضیحات سعی کردم کامل خدمتتون عرض کنم
تا مشکلی نباشد .


شما زمانی که nginx آپدیت کنید یا
از ./build rewrite_confs
در کاستوم بیلد استفاده کنید


تغییراتی که به صورت دستی در فایل ها داده اید
از بین می رود !


پس استفاده از
Custom HTTPd Configurations
فقط دسترسی گرافیکی به فایل نیست
بلکه راه اصولی و پیشنهادی دایرکت ادمین برای اضافه کردن اینگونه دستورات در nginx هست .

در مورد پیغام خطا و gzip هم توضیح دادم خدمتتون ، اگر جای متوجه نشدید اعلام کنید تا بیشتر توضیج بدم .

unix_magnet
December 1st, 2016, 18:42
توضیحات سعی کردم کامل خدمتتون عرض کنم
.
.
.
در مورد پیغام خطا و gzip هم توضیح دادم خدمتتون ، اگر جای متوجه نشدید اعلام کنید تا بیشتر توضیج بدم .
خیلی ممنون من موقعی که دستور مربوطه رو وارد می کنم ارور میگیرم مشکل از چی می تونه باشه اون بالا ارور مربوطه رو نوشتم

unix_magnet
December 1st, 2016, 22:02
مشکل اولم رو حل کردم

مشکل دومم در حد یک سوال هست اما همچنان حل نشده هست یعنی جوابی نگرفتم

مشکل سومم دستوراتی شبیه به این رو کجا باید دقیقا وارد کنیم ؟
داخل
http
}
{
یا بیرون اون ؟


server_tokens off;
add_header X-Frame-Options Deny;
expires 365d;

rahyarco
December 1st, 2016, 22:40
مشکل اول :


Custom HTTPd Configurations

مشکل دوم و سوم :

server_tokens off;

در فایل زیر موجود هست .




/etc/nginx/nginx-defaults.conf


همانطور که گفتم یک سری تنظیمات مربوط به یوزر هست و یک سری تنظیمات مربوط به سرور

server_tokens off مربوط به سرور هست و در فایل nginx-defaults.conf هم موجود هست . ساختار nginx در دایرکت ادمین با فایل های آموزشی در اینترنت متفاوت هست و باید بدانید هر کد را در کدام فایل قرار دهید . وقتی شما کدی را می زنید که در تنظیمات nginx هست منطقی هست که با پیغام خطا روبرو شوید .

در دایرکت ادمین برخی از تنظیمات سمت سرور را باید در فایل های زیر که در پوشه /
etc/nginx/ قرار دارد ویرایش کنید .

nginx-events.conf
nginx-defaults.conf
nginx-gzip.conf
nginx_limits.conf

در هنگام وارد کردن کد ها هم باید به ساختار کد توجه کنید برای مثال کد expires 365d; به تنهایی معنایی ندارد !

برای کش شدن عکس ها و برخی از فایل ها از کد زیر




location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 365d;
}



در قسمت
Custom HTTPd Configurations باید استفاده کنید .

برخی از تنظیمات در ورژن های مختلف هم متفاوت هست و ممکن است با پیغام خطا روبرو شوید !
برای همین در nginx ابتدا فایل config را چک می کنند که مشکلی وجود نداشته باشد

برای این کار پس از ویرایش کد زیر را می زنند :




/etc/init.d/nginx configtest





پیغام خطایی که شما دریافت کردید هم خروجی این دستور هست .

در انتها اگر کدی را با ساختار اشتباه و در جای غیر مناسب وارد کنید وب سرور از کار می افتد !
برای اعمال درست تغییرات می توانید در سایت دایرکت ادمین و گوگل سرچ کنید یا از افراد با تجربه در این زمینه درخواست آموزش کنید .