1

Я использую NGINX в качестве прокси-сервера на порт 80 и 443 для SSL, Apache на порт 8082 и Varnish на порт 81.

Причиной использования NGINX является отправка запросов HTTP и HTTPS в Varnish, а затем Varnish отправит их на сервер Apache.

Ниже мой конфигурационный файл NGINX по умолчанию:

#Redirect http www to https no-www
server {
server_name _;
access_log off;
 }

#Redirect http no-www to https no-www
server {
// listening to port 80
listen "actual-server-ip";
listen [::]:80;
server_name localhost;
 root /home/maindir;
index index.php;
 access_log off;
 port_in_redirect off;

 location / {
 allow 127.0.0.1;
  auth_basic "Please enter username";
  auth_basic_user_file /etc/nginx/.passfile1;
     }

  }

 server {
 // listening to port 443 for  https requests
  listen      443 ssl default_server;
  listen [::]:443 ssl default_server;
  server_name localhost;
  port_in_redirect off;
  access_log off;
 ssl_certificate /main/ssl/eth0___localhost.pem;
 ssl_certificate_key /main/ssl/eth0___localhost.key;
 ssl_trusted_certificate /main/ssl/eth0___localhost.ca;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_dhparam /root/dhparams.pem;
  ssl_prefer_server_ciphers on;
  ssl_ecdh_curve secp384r1;
  root /home/maindir;
  add_header Strict-Transport-Security "max-age=63072000; includeSubDomains;  preload";
  add_header X-Frame-Options SAMEORIGIN;
   add_header X-Content-Type-Options nosniff;
   index index.php index.html index.htm;

 location / {
        proxy_pass  http://127.0.0.1:81; // to direct requests to varnish
        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 $http_host;
       proxy_set_header X-Forwarded-Host $http_host;
      proxy_set_header HTTPS "on";
     proxy_read_timeout    90;
     proxy_connect_timeout 90;
     proxy_redirect   off;
        }

    location ~ /\.ht {
     deny  all;
       }

      }

Но у меня есть следующие проблемы:

  1. Он не направляет HTTP-запросы в HTTPS
  2. он не направляет не www на www

Итак, правильна ли следующая команда:

proxy_pass  http://127.0.0.1:81;  

направлять запросы из NGINX в Varnish или 127.0.0.1 должен быть реальным адресом сервера?
Пожалуйста, можете ли вы дать мне правильную конфигурацию для файла NGINX по умолчанию?

1 ответ1

0
# General HTTP to HTTPS
server {
        listen 80;
        server_name default_server;
        location / {
                return 302 https://$host$request_uri;
        }
}



# NON-WWW to WWW
# place this in your 'server' block for port 443
location / { 
    if ($http_host !~ "^www.domain.com"){ 
        rewrite ^(.*)$ $scheme://www.domain.com/$1 redirect; 
    } 
}

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .