PDA

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



succes
July 28th, 2017, 18:01
سلام دوستان

من از آپاچی به عنوان وب سرور استفاده میکردم و الان برای این اپ ، انجینکس خیلی بهینهتر هست و دقیقا عین سرور مبدا ( که با لمپ ساخته و کانفیگ کرده بودم و برنامه به خوبی اجرا میشد ) یک سرور دیگری نصب کردم با همون کانفیگ ولی به جای آپاچی از انجینکس استفاده کردم.

الان nginx نمیتونه url هارو هندل کنه و لود بشه . من برای اینکار چه کانفیگی روی nginx پیاده کنم ؟

مشاهده بفرمایید :

http://5.63.12.38/webservice/rest_srv.php/setCoord?type=2&id=524&x=111&y=111

و اینکه این موارد رو هم تست کردم ولی جواب نداد :



location /webservice {
rewrite /webservice(.*) /$1 break;
*****_pass http://localhost:3200;
*****_redirect off;
*****_set_header Host $host;
}



تشکر

starting
July 28th, 2017, 19:09
به بخش زیر برید و ویرایش کنید

/etc/nginx/sites-available/default
خط های زیر را از کامنت در بیارید

listen 80; ## listen for ipv4; this line is default and implied
listen [::]:80 default_server ipv6only=on; ## listen for ipv6

سورو نیم رو به عبارت زیر تغییر دهید

# Make site accessible (...)
server_name localhost;
ببینید ایندکس ها رو درست تعریف کردید

root /usr/share/nginx/www;
index index.php index.html index.htm;
مورد زیر از کامنت خارج کنید

# pass the PHP scripts to FastCGI server listening on (...)
#
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
# NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini

# With php5-cgi alone:
#fastcgi_pass 127.0.0.1:9000;
# With php5-fpm:
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
/etc/.../fpm/php.ini رو ویرایش کنید و مقدار cgi.fix_pathinfo رو به صفر تغییر بدهید ==> ورزن php مثلا بجای 3 نقطه php5
nginx service و php5-fpm رو ری استارت کنید
در آخر اگر دیدید مشکلتون حل نشد ارور لاگ ها رو ببینید همینطوری نمیشه راهنمایی کرد
+
آموزش در سایت مرجع نیز مشاهده گردد ببینید جایی رو از قلم ننداختید یا اشتباهی نکردید
Pitfalls and Common Mistakes | NGINX (http://jee.ir/jBgxV)

succes
July 28th, 2017, 19:41
به بخش زیر برید و ویرایش کنید

/etc/nginx/sites-available/default
خط های زیر را از کامنت در بیارید

listen 80; ## listen for ipv4; this line is default and implied
listen [::]:80 default_server ipv6only=on; ## listen for ipv6

سورو نیم رو به عبارت زیر تغییر دهید

# Make site accessible (...)
server_name localhost;
ببینید ایندکس ها رو درست تعریف کردید

root /usr/share/nginx/www;
index index.php index.html index.htm;
مورد زیر از کامنت خارج کنید

# pass the PHP scripts to FastCGI server listening on (...)
#
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
# NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini

# With php5-cgi alone:
#fastcgi_pass 127.0.0.1:9000;
# With php5-fpm:
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
/etc/.../fpm/php.ini رو ویرایش کنید و مقدار cgi.fix_pathinfo رو به صفر تغییر بدهید ==> ورزن php مثلا بجای 3 نقطه php5
nginx service و php5-fpm رو ری استارت کنید
در آخر اگر دیدید مشکلتون حل نشد ارور لاگ ها رو ببینید همینطوری نمیشه راهنمایی کرد
+
آموزش در سایت مرجع نیز مشاهده گردد ببینید جایی رو از قلم ننداختید یا اشتباهی نکردید
Pitfalls and Common Mistakes | NGINX (http://jee.ir/jBgxV)


ممنون از راهنماییتون

من این خط رو در جای خودش به فایل default انجینکس اضافه کردم :



rewrite /webservice/(.*) /$1 break;


و خطای not found حل شد و صفحه سفید داد.

الان خطاهای php رو روشن کردم و با خطای زیر روبرو هستم :



آیا مشکل nginx حل شده و این خطا به nginx ربطی ندارد ؟ و یا این هم دلیلش nginx هست ؟

تشکر

- - - Updated - - -

خطای ایجاد شده :

36419

bigcowboy
July 28th, 2017, 21:28
این خطا نیست یک نوتایس هست که مربوط به اسکریپت هستش و مهم نیست ، توی تنظیمات php یا همین انجین اکس نمایش وارنینگ ها رو غیر فعال کنید

https://www.google.com/search?num=100&client=firefox-b&q=disable+warning+in+php+ini&oq=php+display+warnings+off

succes
July 29th, 2017, 02:09
من با تست هایی که زدم متوجه شدم همه کد ها به خوبی اجرا میشن فقط مشکلم اینه که nginx آدرس url هارو نمیتونه ترجمه کنه ، یعنی گیرمون در یک مرحله مونده به خوندن کدهاست. به مرحله کد نمیرسه که بخونه ، not found میده چون url رو نمیتونه لود کنه.

چه راهکاری برای حل این مورد دارید ؟

starting
July 29th, 2017, 02:56
من با تست هایی که زدم متوجه شدم همه کد ها به خوبی اجرا میشن فقط مشکلم اینه که nginx آدرس url هارو نمیتونه ترجمه کنه ، یعنی گیرمون در یک مرحله مونده به خوندن کدهاست. به مرحله کد نمیرسه که بخونه ، not found میده چون url رو نمیتونه لود کنه.

چه راهکاری برای حل این مورد دارید ؟
سلام
دوست من بعنوان تجربه یک موردی رو خدمتتون عرض کنم
انجین خیلی نچسبه و تخصص خودش رو میخواد باور کنید ساده ترین مرحله آن راه اندازیشه و وقتهایی پیش میاد عیبهایی میخورید که اگر روش مسلط نباشید شاید چندین روز معطلتون کنه
اگر واقعا برای خودتون و یادگیری میخواید خیلی خوبه اما برای ران کردن آن و تحویل مشتری دادن بدون شک در طول خدمات به مشکلات بزرگی میخورید
اگر هدف یادگیری محض نیست فعلا از nginx reverse p-r-ox-y apache centos بهره ببرید خیلی هم خوبه
اگر برای یادگیریه دقیقا لاگ رو بزارید ببینم عیب از چیه
کانفیگ لاگ

/etc/nginx/nginx.conf

log_format compression '$remote_addr - $remote_user [$time_local] '
'"$request" $status $bytes_sent '
'"$http_referer" "$http_user_agent" "$gzip_ratio"';

access_log /path/to/access.log compression buffer=32k;

/path/to/access.log
به مسیر لاگ دقت کنید ببینید کجاست
بعد

service nginx reload
تست کنید محتویات لاگ رو بزارید

succes
July 29th, 2017, 03:22
سلام
دوست من بعنوان تجربه یک موردی رو خدمتتون عرض کنم
انجین خیلی نچسبه و تخصص خودش رو میخواد باور کنید ساده ترین مرحله آن راه اندازیشه و وقتهایی پیش میاد عیبهایی میخورید که اگر روش مسلط نباشید شاید چندین روز معطلتون کنه
اگر واقعا برای خودتون و یادگیری میخواید خیلی خوبه اما برای ران کردن آن و تحویل مشتری دادن بدون شک در طول خدمات به مشکلات بزرگی میخورید
اگر هدف یادگیری محض نیست فعلا از nginx reverse p-r-ox-y apache centos بهره ببرید خیلی هم خوبه
اگر برای یادگیریه دقیقا لاگ رو بزارید ببینم عیب از چیه
کانفیگ لاگ

/etc/nginx/nginx.conf

log_format compression '$remote_addr - $remote_user [$time_local] '
'"$request" $status $bytes_sent '
'"$http_referer" "$http_user_agent" "$gzip_ratio"';

access_log /path/to/access.log compression buffer=32k;

/path/to/access.log
به مسیر لاگ دقت کنید ببینید کجاست
بعد

service nginx reload
تست کنید محتویات لاگ رو بزارید




ممنون از راهنمایی خوبتون ، ممکنه بفرمایید


نصب nginx reverse p-r-ox-y apache centos چگونه هست ؟
آیا این هم یک نوع وب سرور هست ؟
کارش و سرعتش و امنیتش چگونه هست


با تشکر

bigcowboy
July 29th, 2017, 14:56
شما الان توی ریرایت کردن مشکل دارید ؟
این یک کانفیگی هست که قبلا روی انجین اکس با php-fpm انجام دادم و تا مدت ها باهاش کار میکردم

این کانفیگ برای ویرچوال هاست server.ir
در مسیر
/var/htdocs/server.ir/www
برای ریرایت کردن
^/mypages/(.*)/(.*)$ /mypage.php?v=$1&d=$2
هستش
یک نگاهی بهش بندازیید شاید کمک کنه

در ضمن اون هدر های متد option هم اختیاریه و خودم واسه کار خودم تعریف کردم ..





server {
listen 80;
server_name server.ir
client_max_body_size 120M;



root /var/htdocs/server.ir/www;




location ~* \.php$ {
fastcgi_read_timeout 900;
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_intercept_errors on;
}





location / {
root /var/htdocs/server.ir/www;
index index.html index.htm index.php;

if ($request_method = OPTIONS ) {
add_header Content-Length 0;
add_header Content-Type text/plain;
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Headers 'origin, x-requested-with, content-type, accept';
add_header Access-Control-Allow-Methods 'GET, POST';
return 200;
}

try_files $uri $uri/ @router;

}

location @router {
rewrite ^/mypages/(.*)/(.*)$ /mypage.php?v=$1&d=$2 last;
}



}

succes
July 29th, 2017, 15:10
ممنونم

خب الان مشکل من با این آدرس هست ، تمامی آدرس ها به خوبی کار میکنه ( در خوندن کد ها مشکلی ندارم ، در url های این مدلی مشکل دارم که حتی به مرحله خوندن کد هم نمیرسه :


http://5.63.12.38/webservice/rest_srv.php/setCoord?type=2&id=524&x=111&y=111.





این کانفیگ برای ویرچوال هاست server.ir
در مسیر
/var/htdocs/server.ir/www
برای ریرایت کردن

اینا شفافه و اوکی میکنم



^/mypages/(.*)/(.*)$ /mypage.php?v=$1&d=$2

من اینو باید به این تغییر بدم ؟




^/mypages/(.*)/(.*)$ /rest_srv.php
?v=$1&d=$2


یا این ؟





^/mypages/(.*)/(.*)$ /rest_srv.php/setCoord
?v=$1&d=$2


یا این ؟




^/mypages/(.*)/(.*)$ /webservice/rest_srv.php
?v=$1&d=$2


تشکر

succes
July 29th, 2017, 20:13
کسی هست که با هزینه این مورد رو رفع کنه ؟ لطفا پ خ کنید.