Настройка Apache и NGINX веб-серверов

Настройка Apache и NGINX веб-серверов

Один из наиболее частых вопросов о том, почему на сайте работает только главная страница доски объявлений, в то время как другие разделы, такие как страница добавления объявления (add-listing.html), страница регистрации (registration.html) и так далее, недоступны.  В этом  разделе мы проясним причины и предложим возможные решения.

Описание проблемы #

Опытные пользователи могут заметить, что указанные выше «симптомы» указывают на неправильно настроенный веб-сервер. Мы также напоминаем нашим пользователям, что мы предоставляем информацию о системных требованиях нашего софта, но не несем ответственности за его некорректную работу из-за неправильных настроек сервера. Мы не занимаемся администрированием серверов, но готовы предоставить рекомендации по решению данной проблемы.

А именно проблема неработающих страниц, кроме главной страницы сайта, связана с настройкой веб сервера.

Самые распространенные веб сервера  — это Apache и NGINX.

Решение #

Чтобы избежать проблемы вам нужно рассмотреть 2 сценария:

1. если на сервере установлен Apache ,

2. если у вас связка с сервером NGINX.

Если у вас на сервере работает Apache веб-сервер: #

— убедитесь, что включен модуль Apache rewrite в админ-панели  > Общие > Базовые настройки > Общие > Модуль Apache > Включить

— на вашем сервере установлен модуль Apache rewrite

— в корневой директории сайта присутствует файл .htaccess

Если у вас Nginx веб-сервер: #

— убедитесь, что включена опция в админ-панели  > Общие > Базовые настройки > Общие > Модуль Apache > Включить

— убедитесь, что вы добавили в конфигурационный файл* nginx следующие правила (в тексте нужно подставить своё имя домена и корневой путь сайта):


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
keepalive_requests 100;
keepalive_timeout 1200s;
client_max_body_size 32M;

index index.php index.html;

location / {
    try_files $uri $uri/ @flynax-main;
}

gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript text/woff2;

location ~* \.(woff|woff2|ttf|eot|otf|json)$ {
    add_header Access-Control-Allow-Origin "*";
    add_header Cache-Control "public, immutable, max-age=31536000";
    expires 1y;
    access_log off;
}

location ~* \.(jpg|jpeg|gif|png|svg|woff|woff2|pdf|swf)$ {
    expires 1y;
}

location ~* \.(css|js)$ {
    expires 93d;
}


location @flynax-main {
    if ($subdomain != '') {
        rewrite ^(.*)$ /index.php?page=$subdomain&wildcard&rlVareables=$request_uri last;
    }

    rewrite "^/api/v[0-9]+/?.*$" /plugins/api/request.php last;

    rewrite "^/([^//]+)/?(.*)?/index([0-9]*)(.html|/)$" /index.php?page=$1&rlVareables=$2&pg=$3 last;
    rewrite "^/([^/]+)(/?([^:]{2,}))?-l?([0-9]+)(.html|/)$" /index.php?page=$1&rlVareables=$3&listing_id=$4 last;
    # rewrite "^/((\w{2})/)?([\w-_]{3,})$" /index.php?page=$3&lang=$2&account_request last;
    rewrite "^/([^//]+)/?(^/*)?.html$" /index.php?page=$1 last;
    rewrite "^/([^//]+)/?(.*)?/?(.*)?(.html|/+)$" /index.php?page=$1&rlVareables=$2 last;

    rewrite "^/sitemap.xml$" /plugins/sitemap/sitemap.php last;
    rewrite "^/plugins/iFlynaxConnect/api.json$" /plugins/iFlynaxConnect/request.php last;
    rewrite "^/plugins/hybridAuthLogin/(.*)$" /plugins/hybridAuthLogin/requests.php?provider=$1 last;
    rewrite "^/plugins/accountSync/api/v[0-9]+/.+$" /plugins/accountSync/requests.php last;
    rewrite "^/(.*)\-feed\.xml(.*)" /plugins/xmlFeeds/export.php?format=$1&$2 last;

    # Try to get file from template_core if it's missing in template
    if (!-e $request_filename){
        rewrite templates\/(.*?\/)(.*)$ /templates/template_core/$2 break;
    }

    return 404;
}

location /flynax/ {
    try_files $uri $uri/ @flynax-sub;
}

location @flynax-sub {
    # if ($subdomain != '') {
    #     rewrite ^(.*)$ /flynax/index.php?page=$subdomain&wildcard&rlVareables=$request_uri last;
    # }

    rewrite "^/flynax/api/v[0-9]+/?.*$" /flynax/plugins/api/request.php last;

    rewrite "^/flynax/([^//]+)/?(.*)?/index([0-9]*)(.html|/)$" /flynax/index.php?page=$1&rlVareables=$2&pg=$3 last;
    rewrite "^/flynax/([^/]+)(/?([^:]{2,}))?-l?([0-9]+)(.html|/)$" /flynax/index.php?page=$1&rlVareables=$3&listing_id=$4 last;
    # rewrite "^/flynax/((\w{2})/)?([\w-_]{3,})$" /flynax/index.php?page=$3&lang=$2&account_request last;
    rewrite "^/flynax/([^//]+)/?(^/*)?.html$" /flynax/index.php?page=$1 last;
    rewrite "^/flynax/([^//]+)/?(.*)?/?(.*)?(.html|/+)$" /flynax/index.php?page=$1&rlVareables=$2 last;

    rewrite "^/flynax/sitemap.xml$" /flynax/plugins/sitemap/sitemap.php last;
    rewrite "^/flynax/plugins/iFlynaxConnect/api.json$" /flynax/plugins/iFlynaxConnect/request.php last;
    rewrite "^/flynax/plugins/hybridAuthLogin/(.*)$" /flynax/plugins/hybridAuthLogin/requests.php?provider=$1 last;
    rewrite "^/flynax/plugins/accountSync/api/v[0-9]+/.+$" /flynax/plugins/accountSync/requests.php last;
    rewrite "^/flynax/(.*)\-feed\.xml(.*)" /flynax/plugins/xmlFeeds/export.php?format=$1&$2 last;

    # Try to get file from template_core if it's missing in template
    if (!-e $request_filename){
        rewrite templates\/(.*?\/)(.*)$ /templates/template_core/$2 break;
    }

    return 404;
}

location ~ \.php$ {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass php:9000;
    fastcgi_index index.php;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param PATH_INFO $fastcgi_path_info;
}

location ~ /\. {
    deny all;
}

*Для справки, файл nginx config — это файл, в котором задаётся количество рабочих процессов и определяется вся работа Nginx. По умолчанию, конфиг Nginx называется nginx. conf и располагается в каталоге /etc/nginx , /usr/local/nginx/conf , или /usr/local/etc/nginx .

Powered by BetterDocs