Nginx в качестве обратного прокси-сервера для Apache (RHEL 8), переписывает http на https, ERR_TOO_MANY_REDIRECTS - PullRequest
0 голосов
/ 04 февраля 2020

Я пытался настроить Nginx в качестве обратного прокси-сервера для Apache, но безрезультатно, и мой мозг начал таять. Я использую систему CentOS 8 с Apache, настроенным на прослушивание только через порт 8080. У меня есть один виртуальный хост Apache, настроенный таким образом:

<VirtualHost *:8080>
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /home/user/public_html/example.com

    <Directory /home/user/public_html/example.com>
        Options -Indexes +FollowSymLinks
        AllowOverride All
    </Directory>

    ErrorLog /var/log/httpd/example.com-error.log
    CustomLog /var/log/httpd/example.com.log combined
</VirtualHost>

Nginx действует как обратный прокси-сервер и прослушивает для соединений HTTP и HTTPS и прокси соединения с Apache. domain.com содержит приложение PHP (Laravel). У меня есть следующая конфигурация сервера с Nginx:

server {
  listen 80 default_server;
  listen [::]:80 default_server;
  server_name example.com www.example.com;
  return 301 https://example.com$request_uri;
}

server {
  listen 443 ssl default_server;
  listen [::]:443 ssl default_server;
  server_name example.com www.example.com;
  root /home/user/public_html/example.com;
  index index.php index.html index.htm;
  ssl on;
  ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
  ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
  ssl_session_cache shared:SSL:20m;
  ssl_session_timeout 60m;
  ssl_prefer_server_ciphers on;
  add_header Strict-Transport-Security max-age=16000000;

  location / {
    try_files $uri $uri/ /index.php;
  }

  location ~ \.php$ {
    proxy_set_header X-Real-IP  $remote_addr;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header Host $host;
    proxy_pass http://127.0.0.1:8080;
    #proxy_redirect off;
  }

  location ~ /\.ht {
    deny all;
  }
}

Любая помощь очень ценится. Не удается загрузить приложение, все запросы возвращают ERR_TOO_MANY_REDIRECTS.

1 Ответ

0 голосов
/ 17 марта 2020

Nginx прокси для apache

server {
       listen 443 ssl;
       server_name www.example.com example.com;

       ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
       ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
       ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
       ssl_ciphers         HIGH:!aNULL:!MD5;

        location / {
            proxy_pass http://127.0.0.1:8080;
            proxy_set_header X-Real-IP  $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto https;
            proxy_set_header X-Forwarded-Port 443;
            proxy_set_header Host $host;
        }
        location /.git {
            deny all;
            return 404;
        }
}

Также проверьте htaccess для блока перенаправления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...