Помогите переписать правила с .htaccess на nginx

12
Y
На сайте с 24.09.2007
Offline
116
3109

Помогите переписать правила для двух сайтов на движках Joomla и WP по аналогии как написано здесь http://vds-admin.ru/content/view/39/6/

Пробовал вставлять, не помогает...что делать, где копать?

Наверно что-то забываю.

Некоторые вещи настолько просты, что некоторые считают их настолько сложными (с) Yurgon.com
G
На сайте с 26.05.2009
Offline
5
#1

Yurgon, так а что не получается..? правила по ссылке, 100% рабочие.

какая версия nginx.. ? директива try_files появилась с версии 6.36 стабильной ветки

mstar
На сайте с 19.12.2005
Offline
133
#2

Я плюнул на эту затею, вместо fastcgi поставили апач и забыли о "переписывании правил".

Разработка сайтов (http://www.mstarproject.com/?action=tecdoc_mysql_site) - удобные веб приложения по разумной цене.
G
На сайте с 26.05.2009
Offline
5
#3

mstar, уж не такая это и нерешаемая проблема.. что-бы жертвовать из-за нее ресурсами

Y
На сайте с 24.09.2007
Offline
116
#4

дело в том что не понятна полная структура конфига, у меня сейчас в данный момент такое:

server {
listen *****:80;
server_name ******.com www.******.com ;
access_log /var/log/httpd/domains/*******.log main;
error_log /var/log/httpd/domains/*******.error.log error;
location ~* ^.+\.(php)$ {
client_max_body_size 1024m;
fastcgi_pass unix:/tmp/php.videomag.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/videomag/domains/******/public_html$fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;

}

location / {
proxy_pass http://*****:8080/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 300m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 64k;
proxy_buffers 32 64k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 10m;
rewrite ^(/)$ /index.php;
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php?q=$1 last;
}
root /home/videomag/domains/*****/public_html;
}
location ~* ^.+\.(flv|jpg|jpeg|gif|mp3|png|avi|vob|mpg|mpeg|mp4|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|wav|bmp|rtf|js|swf)$ {

root /home/videomag/domains/*******/public_html;
}
}

Подскажите куда это ставить:

location / {
try_files $uri $uri/ @wordpress;
index index.php index.html index.htm;
}

location ~ \.php$ {
try_files $uri @wordpress;
fastcgi_pass unix:/tmp/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

location @wordpress {
fastcgi_pass unix:/tmp/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
include fastcgi_params;
}
G
На сайте с 26.05.2009
Offline
5
#5

Yurgon, что-то вы тут немного напутали.. в какой роли у вас Апач выступает и куда делась часть fastcgi_param ?

этот локейшн,

location / {

proxy_pass http://*****:8080/;
...........

все запросы к корню сайта, отправляет на обработку Apache..

сделайте тестовый конфиг, то есть просто скопируйте текущий конфиг, например, в nginx.conf_bak( на всякий случай ), а в nginx.conf пропишите примерно следующее:

server {

listen *****:80;
server_name ******.com www.******.com ;
access_log /var/log/httpd/domains/*******.log main;
error_log /var/log/httpd/domains/*******.error.log error;

root /home/videomag/domains/*****/public_html;

location / {
try_files $uri $uri/ @wordpress;
index index.php index.html index.htm;
}

location ~ \.php$ {
try_files $uri @wordpress;
client_max_body_size 1024m;
fastcgi_pass unix:/tmp/php.videomag.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

location @wordpress {
fastcgi_pass unix:/tmp/php.videomag.sock;
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
include fastcgi_params;
}
}

и проверьте, если не работает, посмотрите, что там в логи упадет.

вообще не видя сервера, трудно ориентироваться.. ну и желательно знать круг решаемых задач..

и версию nginx конечно.. ( nginx -v )

icq в профиле

Himiko
На сайте с 28.08.2008
Offline
560
#6

Если у вас на порту 8080 Apache, то вообще не нужно ничего переписывать.

Профессиональное администрирование серверов (https://systemintegra.ru). Круглосуточно. Отзывы (/ru/forum/834230) Лицензии (http://clck.ru/Qhf5) ISPManager,VDSManager,Billmanager e.t.c. по низким ценам.
G
На сайте с 26.05.2009
Offline
5
#7

Himiko, если я правильно понял, идея, обойтись без Апача. .

nginx и fastcgi

Y
На сайте с 24.09.2007
Offline
116
#8
grayscale:
Yurgon, что-то вы тут немного напутали.. в какой роли у вас Апач выступает и куда делась часть fastcgi_param ?
этот локейшн,
location / {

proxy_pass http://*****:8080/;
...........

все запросы к корню сайта, отправляет на обработку Apache..
сделайте тестовый конфиг, то есть просто скопируйте текущий конфиг, например, в nginx.conf_bak( на всякий случай ), а в nginx.conf пропишите примерно следующее:
server {

listen *****:80;
server_name ******.com www.******.com ;
access_log /var/log/httpd/domains/*******.log main;
error_log /var/log/httpd/domains/*******.error.log error;

root /home/videomag/domains/*****/public_html;

location / {
try_files $uri $uri/ @wordpress;
index index.php index.html index.htm;
}

location ~ \.php$ {
try_files $uri @wordpress;
client_max_body_size 1024m;
fastcgi_pass unix:/tmp/php.videomag.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

location @wordpress {
fastcgi_pass unix:/tmp/php.videomag.sock;
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
include fastcgi_params;
}
}

и проверьте, если не работает, посмотрите, что там в логи упадет.

вообще не видя сервера, трудно ориентироваться.. ну и желательно знать круг решаемых задач..
и версию nginx конечно.. ( nginx -v )
icq в профиле

спасибо большое, помогло

mstar
На сайте с 19.12.2005
Offline
133
#9
grayscale:
mstar, уж не такая это и нерешаемая проблема.. что-бы жертвовать из-за нее ресурсами

Ресурсы разные бывают: память, процессор, время, програмисты...

Так вот если на одном сервере один сайт - то можно пожертвовать временем, чтобы сэкономить память и процессор. А когда програмистов несколько и сайтов рабочих на сервере несколько - то чтобы снести апач нужно:

1) научить всех програмистов новым правилам создания редиректов, чтобы сайты можно было дальше поддерживать

2) отладить на всех сайтах новые правила, чтобы не слетели

В моем случае проще и дешевле оставить апач.

G
На сайте с 26.05.2009
Offline
5
#10

mstar, 1) никто не говорил ни о каком сносе апача..

2) ваши программисты не умеют делать редиректы, или в nginx они делаются каким-то экзотическим образом ?

3) куда какие правила слетают..?

ну и в конце концов, вы можете держать на своей машине любой веб-сервер, какой посчитаете нужным, хоть на перле написанный, из 30 строк..

если мне не изменяет зрение, вам в данном топике, никто ничего не навязывал и не предлагал.. а то что вы на что-то там забили, ну так это ваши личные трудности, к данной теме они, по-моему, вообще отношения никакого не имеет..

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий