Всем привет!
Нашел ахренительно дешевый и вроде как быстрый VPS хостинг (по крайней мере сравнение времени ответа магазина на ihor.ru и этом показывает выигрыш в ПЯТЬ РАЗ). Полкз все сам настраивать, вроде все настроил и заработало. Но уперся в NginX. Скажите мне, вот эта статья актуальна?
http://www.cs-cart.ru/docs/4.3.x/install/vps/nginx/
Ибо я сразу споткнулся что у меня нет
Найдите на сервере и откройте файл:
/etc/nginx/sites-available/default
Но есть
/etc/nginx/conf.d/default.conf
И в нем
server { listen 80; server_name localhost; #charset koi8-r; #access_log /var/log/nginx/log/host.access.log main; location / { root /usr/share/nginx/html; index index.html index.htm; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # #location ~ \.php$ { # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; # include fastcgi_params; #} # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} }
Означает ли это что:
1. У меня по факту не работае ваще NginX?
2. Надо все переделывать как в статье Баженова?
Но у меня на этой машине несколько сайтов...
И нет ли где какого-свежего мануала по настройке centos?
Спасибо!
Инструкция в официальной документации несколько устарела и местами не соответствует действительности. Полагаю, однажды я найду время отправить коллегам PR.
Судя по вашему описанию, у вас работает виртуальный хост localhost, который раздаёт статические файлы из каталоге /usr/share/nginx/html. Для работы магазина на CS-Cart этого недостаточно.
Несколько способов настроить веб-сервер на вашем VPS:
- Воспользоваться Ansible-сценариями от команды CS-Cart. К сожалению, проект плохо поддерживается, однако для CentOS оно должно работать. Если у вас возникнут вопросы, я с удовольствием проконсультирую по Ansible. Наша команда готовит альтернативные сценарии на SaltStack для автоконфигурирования серверов CentOS/RHEL/Scientific Linux.
- Установить панель управления ISPManager, cPanel, и пр. и забыть о проблемах. К сожалению, это чревато тем, что более тонкие настройки всё равно придётся вносить вручную и как-нибудь «дружить» с панелями управления.
- Обратиться к профессионалам (мы готовы вам помочь — напишите на sales@simtechdev.com).
- Настроить самостоятельно.
Если вы будете настраивать самостоятельно, я рекомендую воспользоваться связкой NGINX + Apache (mod_php SAPI), чтобы не испытывать проблем при переписывании правил Apache под NGINX. Описывать каждый шаг достаточно долго, потому раскрою только основные моменты при работе с CentOS:
1. Подключите репозитории epel-release и remi-release.
2. Установите NGINX, настройте каждый виртуальный хост (/etc/nginx/conf.d/*.conf) согласно этому образцу:
upstream apache {
    server 127.0.0.1:8080 max_fails=0;
}
server {
listen 80;
server_name example.com;
server_name www.example.com;
root /var/www/html/example.com;
client_max_body_size 100m;
    
location @backend {
    proxy_pass http://apache;
    proxy_set_header Host            $host;
    proxy_set_header X-Real-IP       $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location / {
    try_files /maintenance.html @backend;
    location ~* \.(jpeg|ico|jpg|gif|png|css|js|pdf|txt|tar|wof|csv|zip) {
        access_log off;
        try_files $uri @backend;
        expires max;
        add_header Access-Control-Allow-Origin *;
        add_header Cache-Control public;
    }
}
}
    
    ServerAdmin root@example.com
    ServerName example.com
    ServerAlias www.example.com
ServerSignature Off
CustomLog /var/log/httpd/access.log combined
ErrorLog /var/log/httpd/error.log
LogLevel  warn
DocumentRoot /var/www/html/example.com
<Directory />
    Options -Indexes +MultiViews +FollowSymlinks +SymLinksIfOwnerMatch +IncludesNoExec
    AllowOverride All
</Directory>
<Directory /var/www/html/example.com>
    Options -Indexes +MultiViews +FollowSymlinks +SymLinksIfOwnerMatch +IncludesNoExec
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>
<Directory ~ ".*\.svn">
    Order allow,deny
    Deny from all
    Satisfy All
</Directory>
<Directory ~ ".*\.git">
    Order allow,deny
    Deny from all
    Satisfy All
</Directory>
<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresDefault "access plus 1 month"
</IfModule>
<IfModule mod_headers.c>
    <FilesMatch "\.(jpg|jpeg|gif|png|js|css)$">
        Header set Cache-control "public, max-age=86400"
    </FilesMatch>
    <FilesMatch "\.(ttf|ttc|otf|eot|woff|css)$">
        Header set Access-Control-Allow-Origin "*"
    </FilesMatch>
</IfModule>
<IfModule mod_setenvif.c>
    BrowserMatch ^Mozilla/4 gzip-only-text/html
    BrowserMatch ^Mozilla/4\.0[678] no-gzip
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
</IfModule>
4. Перезагружайте каждый из веб-серверов.
5. Готово.
Разумеется, в работе есть много нюансов, потому качественную настройку я рекомендую доверить специалистам.