Переадресация нагрузки nginx 404

0

У меня 3 сервера. Первый сервер имеет nginx как балансировку нагрузки. Второй и третий серверы имеют apache. В моем nginx conf у меня есть следующее:

upstream backend  {
  server ec2-54-148-248-231.us-west-2.compute.amazonaws.com;
  server ec2-54-148-34-166.us-west-2.compute.amazonaws.com;
}

server {
        listen 80 default_server;
        listen [::]:80 default_server ipv6only=on;

        root /usr/share/nginx/html;
        index index.html index.htm;

        # Make site accessible from http://localhost/
        server_name localhost;

        location / {
                proxy_pass  http://backend;
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ =404;
                # Uncomment to enable naxsi on this location
                # include /etc/nginx/naxsi.rules
        }
}

Проблема в том, что когда я открываю первый сервер, он перенаправляет меня ко второму или третьему, но я не могу загрузить какие-либо относительные URL-адреса (например: css или js файлы) внутри моего сайта, и все ссылки возвращают ошибку 404.

вы можете попробовать мой сервер балансировки нагрузки на линии url => http://ec2-54-148-96-241.us-west-2.compute.amazonaws.com/

  • 0
    Какого черта вы кладете nginx поверх apache?
  • 0
    я следовать этому учебник digitalocean.com/community/tutorials/... , но я не знаю точно , почему я выбираю апач быть под nginx.i думает , я выбираю апач как нормальная вещь для меня , потому что я использую PHP.
Показать ещё 7 комментариев
Теги:
nginx
load-balancing

1 ответ

0

Я обнаружил, что nginx с балансировкой нагрузки с круговым или минимальным подключением, каждый последующий запрос клиентов может быть потенциально распространен на другой сервер. поэтому на моем сайте после первого запроса на ex => http://ec2-54-148-96-241.us-west-2.compute.amazonaws.com/site/index, тогда сделайте запрос http://ec2- 54-148-96-241.us-west-2.compute.amazonaws.com/assets/f352c4d6/css/bootstrap.css он переходит на другой сервер, но для активов f352c4d6 не найден на другом сервере, поэтому возвратите 404.

Решение: вы должны использовать ip_hash; с балансировкой нагрузки nginx, чтобы поддерживать один и тот же сервер для одного ip, также вы можете использовать leas_connect для распределения трафика пользователя по меньшей мере.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню