прокси-домен nginx для URL-адреса, отображение старого домена

У меня есть два поддомена, которые я хочу связать следующим образом: https://suba.example.org/ - мой основной субдомен, https://subb.example.org/ - мой вторичный субдомен. На suba у меня есть сервер, на котором запущено веб-приложение, subb предназначен только для перенаправления. У этого сервера в suba есть URL-адрес, давайте назовем его https://suba.example.org/foo.php/bar .

Все, что я хочу, это чтобы всякий раз, когда я набирал https: //subb.example.org/ в моем браузере отображается содержимое https://suba.example.org/foo.php/bar , , но URL должен содержать https://subb.example.org/ .

На данный момент он будет правильно отображать содержание https://suba.example.org/foo .php / bar , но браузер будет показывать URL-адрес содержимого, а не https://subb.example.org/ . Я несколько раз перезапускал nginx-сервер и использовал окно в режиме инкогнито, чтобы убедиться, что браузер не кэширует никаких данных.

Происходит следующее:

  • Я открываю https: // subb.example.org/ в окне Chrome в режиме инкогнито на моем рабочем столе: он покажет правильный вывод из https://suba.example.org/foo.php/bar , ], но показывает https://suba.example.org/foo.php/bar в строке URL
  • Я открываю https://subb.example.org/ в любом другом браузере / компьютере (включая окно инкогнито Chrome на другом компьютере): он покажет контент из https://suba.example.org/foo.php/bar с https://subb.example.org Панель URL, но только текст, без CSS или изображения. Как сайт 80-х. pastebin.com/a6kfqhMn

1
задан 13 November 2017 в 21:57
1 ответ

Решением было перенаправить запросы CSS, графики и т. Д. На https://suba.example.org . Таким образом, моя новая конфигурация сайта для https://subb.example.org выглядит следующим образом:

server {
listen 443 ssl;

root /config/www;
index index.html index.htm index.php;

### Server Name
server_name https://subb.exmaple.org;

### SSL Certificates
ssl_certificate /config/keys/letsencrypt/fullchain.pem;
ssl_certificate_key /config/keys/letsencrypt/privkey.pem;

### Diffie–Hellman key exchange
ssl_dhparam /config/nginx/dhparams.pem;
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';


### Extra Settings
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;

### Add HTTP Strict Transport Security
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains";
add_header Front-End-Https on;

client_max_body_size 0;

location ^~ /core/ {
proxy_pass https://suba.exmaple.org;
}

location ^~ /apps/ {
proxy_pass https://suba.exmaple.org;
}

location ^~ /index.php/ {
proxy_pass https://suba.exmaple.org;
}

location / {
proxy_pass https://suba.exmaple.org/foo.php/bar;
}
}

Здесь часть с местоположением ^ ~ ... вот чего не хватало. Я знаю, что это не лучшая практика, так как мне пришлось просмотреть весь исходный код, чтобы найти, чего не хватает и что мне придется перенаправить. Возможно, когда-нибудь кто-нибудь прочитает эти строки и подскажет мне лучший способ перенаправить реальное содержимое веб-сервера. Но до тех пор это решение будет работать.

0
ответ дан 4 December 2019 в 04:45

Теги

Похожие вопросы