Как я могу использовать обратный прокси-трафик c от Apache до nginx -Passsenger (Rails) с SSL? - PullRequest
0 голосов
/ 30 марта 2020

Я пытаюсь развернуть приложение rails. Я прошел через массу ошибок, но в настоящее время я застрял на ERR_TOO_MANY_REDIRECTS.

, мой сервер * Apache. Я настроил Nginx (с пассажиром) позади Apache и использую обратный прокси-сервер для переадресации трафика c на этом указанном c поддомене с Apache до Nginx. После этого я прикрепляю свои файлы конфигурации как фрагменты кода.

вот мои apache файлы conf:

# /etc/apache2/sites-enabled/hangzz.benhickson.com.conf
​
<VirtualHost *:80>
        ServerName hangzz.benhickson.com
        ServerAdmin ben@benhickson.com
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
​
        ProxyRequests Off
        <Proxy *>
                Order deny,allow
                Allow from all
        </Proxy>
​
        ProxyPass / http://127.0.0.1:8080/
        ProxyPassReverse / http://127.0.0.1:8080/
​
        <Location />
                Order allow,deny
                Allow from all
        </Location>
RewriteEngine on
RewriteCond %{SERVER_NAME} =hangzz.benhickson.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
​
​
# /etc/apache2/sites-enabled/hangzz.benhickson.com-le-ssl.conf
​
<IfModule mod_ssl.c>
<VirtualHost *:443>
        ServerName hangzz.benhickson.com
        ServerAdmin ben@benhickson.com
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
​
        ProxyRequests Off
        <Proxy *>
                Order deny,allow
                Allow from all
        </Proxy>
​
        ProxyPass / http://127.0.0.1:8080/
        ProxyPassReverse / http://127.0.0.1:8080/
​
        <Location />
                Order allow,deny
                Allow from all
        </Location>
SSLCertificateFile /etc/letsencrypt/live/hangzz.benhickson.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/hangzz.benhickson.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>

И моя NGINX конфигурация:

# /etc/nginx/sites-enabled/hangzz
​
server {
​
  listen 8080 ssl;
  listen [::]:8080 ssl;
​
  server_name hangzz.benhickson.com;
  root /home/ben/hangzz/current/public;
​
  passenger_enabled on;
  passenger_app_env production;
​
  proxy_set_header Host $http_host;
  proxy_set_header X-Forwarded-Proto https;
​
  location /cable {
    passenger_app_group_name hangzz_websocket;
    passenger_force_max_concurrent_requests_per_process 0;
  }
​
  # Allow uploads up to 100MB in size
  client_max_body_size 100m;
​
  location ~ ^/(assets|packs) {
    expires max;
    gzip_static on;
  }
​
}

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

config.force_ssl = true установлен в /config/environments/production.rb, потому что я получаю InvalidAuthenticityToken ошибки.

Я понимаю, что я где-то перенаправить L oop где-то, пожалуйста, помогите!

...