Docker: nginx-proxy не пересылает запросы GET на wordpress

я пытаюсь настроить машину Ubuntu 16.04 так, чтобы контейнер nginx-proxy выполнял обратный прокси-сервер в контейнер wordpress.

Проблема, с которой я столкнулся, заключается в том, что при попытке доступа к веб-сайту из внешнего мира nginx пересылает только некоторые запросы GET, а именно. HTML-код домашней страницы и значка. Это не t перенаправлять любые другие запросы для загрузки других элементов страницы.

Вот мой docker-compose.yml:

version: "2"
services:

 mysql:
  image: mysql:latest
  container_name: db
  restart: always
  environment:
   - MYSQL_ROOT_PASSWORD=SuperSecretMysqlPassword
  volumes:
   - /home/docker-stuff/var-lib-mysql:/var/lib/mysql

 nginx-proxy:
  image: jwilder/nginx-proxy:alpine
  container_name: nginx
  restart: always
  ports:
   - "443:443"
   - "80:80"
  volumes:
   - /var/run/docker.sock:/tmp/docker.sock:ro

 wordpress:
  image: wordpress:latest
  container_name: wp
  restart: always
  environment:
   - VIRTUAL_HOST=example.com
   - WORDPRESS_DB_HOST=mysql
   - WORDPRESS_DB_USER=wordpress
   - WORDPRESS_DB_PASSWORD=SuperSecretWordpressPassword
  volumes:
   - /home/wp/:/var/www/html/

Вот результат docker-compose up , когда я пытаюсь получить доступ к веб-сайт (на порту 80):

nginx          | nginx.1    | 92.222.75.87 172.18.0.1 - - [23/Jun/2017:18:26:20 +0000] "POST /wp-cron.php?doing_wp_cron=1498242380.0386610031127929687500 HTTP/1.1" 503 213 "http://92.222.75.87/wp-cron.php?doing_wp_cron=1498242380.0386610031127929687500" "WordPress/4.8; https://92.222.75.87"
wp             | 172.18.0.3 - - [23/Jun/2017:18:26:19 +0000] "GET / HTTP/1.1" 200 17780 "-" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:53.0) Gecko/20100101 Firefox/53.0"
nginx          | nginx.1    | example.com 146.198.151.82 - - [23/Jun/2017:18:26:20 +0000] "GET / HTTP/1.1" 200 17467 "-" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:53.0) Gecko/20100101 Firefox/53.0"
nginx          | nginx.1    | 92.222.75.87 146.198.151.82 - - [23/Jun/2017:18:26:20 +0000] "GET /wp-content/themes/twentyseventeen/assets/images/header.jpg HTTP/1.1" 503 213 "http://example.com/" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:53.0) Gecko/20100101 Firefox/53.0"
nginx          | nginx.1    | 92.222.75.87 146.198.151.82 - - [23/Jun/2017:18:26:20 +0000] "GET /wp-content/themes/twentyseventeen/style.css?ver=4.8 HTTP/1.1" 503 213 "http://example.com/" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:53.0) Gecko/20100101 Firefox/53.0"
nginx          | nginx.1    | 92.222.75.87 146.198.151.82 - - [23/Jun/2017:18:26:20 +0000] "GET /wp-includes/js/jquery/jquery.js?ver=1.12.4 HTTP/1.1" 503 213 "http://example.com/" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:53.0) Gecko/20100101 Firefox/53.0"
nginx          | nginx.1    | 92.222.75.87 146.198.151.82 - - [23/Jun/2017:18:26:20 +0000] "GET /wp-includes/js/jquery/jquery-migrate.min.js?ver=1.4.1 HTTP/1.1" 503 213 "http://example.com/" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:53.0) Gecko/20100101 Firefox/53.0"
nginx          | nginx.1    | 92.222.75.87 146.198.151.82 - - [23/Jun/2017:18:26:20 +0000] "GET /wp-content/themes/twentyseventeen/assets/js/skip-link-focus-fix.js?ver=1.0 HTTP/1.1" 503 213 "http://example.com/" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:53.0) Gecko/20100101 Firefox/53.0"
nginx          | nginx.1    | 92.222.75.87 146.198.151.82 - - [23/Jun/2017:18:26:20 +0000] "GET /wp-content/themes/twentyseventeen/assets/js/global.js?ver=1.0 HTTP/1.1" 503 213 "http://example.com/" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:53.0) Gecko/20100101 Firefox/53.0"
nginx          | nginx.1    | 92.222.75.87 146.198.151.82 - - [23/Jun/2017:18:26:20 +0000] "GET /wp-content/themes/twentyseventeen/assets/js/jquery.scrollTo.js?ver=2.1.2 HTTP/1.1" 503 213 "http://example.com/" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:53.0) Gecko/20100101 Firefox/53.0"
nginx          | nginx.1    | 92.222.75.87 146.198.151.82 - - [23/Jun/2017:18:26:20 +0000] "GET /wp-includes/js/wp-embed.min.js?ver=4.8 HTTP/1.1" 503 213 "http://example.com/" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:53.0) Gecko/20100101 Firefox/53.0"
nginx          | nginx.1    | 92.222.75.87 146.198.151.82 - - [23/Jun/2017:18:26:20 +0000] "GET /wp-includes/js/wp-emoji-release.min.js?ver=4.8 HTTP/1.1" 503 213 "http://example.com/" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:53.0) Gecko/20100101 Firefox/53.0"
nginx          | nginx.1    | 92.222.75.87 146.198.151.82 - - [23/Jun/2017:18:26:20 +0000] "GET /wp-includes/js/jquery/jquery-migrate.min.js?ver=1.4.1 HTTP/1.1" 503 213 "http://example.com/" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:53.0) Gecko/20100101 Firefox/53.0"
nginx          | nginx.1    | 92.222.75.87 146.198.151.82 - - [23/Jun/2017:18:26:20 +0000] "GET /wp-content/themes/twentyseventeen/assets/images/header.jpg HTTP/1.1" 503 213 "http://example.com/" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:53.0) Gecko/20100101 Firefox/53.0"
nginx          | nginx.1    | 92.222.75.87 146.198.151.82 - - [23/Jun/2017:18:26:20 +0000] "GET /wp-content/themes/twentyseventeen/assets/js/skip-link-focus-fix.js?ver=1.0 HTTP/1.1" 503 213 "http://example.com/" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:53.0) Gecko/20100101 Firefox/53.0"
nginx          | nginx.1    | 92.222.75.87 146.198.151.82 - - [23/Jun/2017:18:26:20 +0000] "GET /wp-content/themes/twentyseventeen/assets/js/global.js?ver=1.0 HTTP/1.1" 503 213 "http://example.com/" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:53.0) Gecko/20100101 Firefox/53.0"
nginx          | nginx.1    | 92.222.75.87 146.198.151.82 - - [23/Jun/2017:18:26:20 +0000] "GET /wp-content/themes/twentyseventeen/assets/js/jquery.scrollTo.js?ver=2.1.2 HTTP/1.1" 503 213 "http://example.com/" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:53.0) Gecko/20100101 Firefox/53.0"
nginx          | nginx.1    | 92.222.75.87 146.198.151.82 - - [23/Jun/2017:18:26:20 +0000] "GET /wp-includes/js/wp-embed.min.js?ver=4.8 HTTP/1.1" 503 213 "http://example.com/" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:53.0) Gecko/20100101 Firefox/53.0"
wp             | 172.18.0.3 - - [23/Jun/2017:18:26:20 +0000] "GET /favicon.ico HTTP/1.1" 200 192 "-" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:53.0) Gecko/20100101 Firefox/53.0"
nginx          | nginx.1    | example.com 146.198.151.82 - - [23/Jun/2017:18:26:20 +0000] "GET /favicon.ico HTTP/1.1" 200 0 "-" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:53.0) Gecko/20100101 Firefox/53.0"

Все изображения только что извлечены из Docker Hub. Я попробовал "jwilder / nginx-proxy: latest" вместо alpine, результаты те же ...

Я не очень хорошо знаю nginx, поэтому был бы очень признателен за помощь ... Заранее большое спасибо!

0
задан 23 June 2017 в 21:41
1 ответ

После долгой отладки я нашел основную причину этой проблемы. Я подробно описываю это здесь в надежде, что это поможет другим.

Проблема заключалась в том, что ссылки на домашней странице были построены из IP-адреса хоста, а не самого имени хоста. Это заставило браузер выдавать запросы GET с заголовком «Host:», установленным на IP-адрес вместо имени хоста, и, очевидно, nginx не знал, что с этим делать (и запрос затем обрабатывался дополнительным server раздел в nginx.tmpl , который выдает 503 ответа на все запросы).

Почему на домашней странице wordpress были эти IP-адреса в ссылках? Вероятно, это потому, что я изначально установил wordpress, получив доступ к серверу напрямую с помощью IP-адреса, когда DNS еще не был запущен. Я удалил базу данных wordpress и переустановил ее, обратившись к серверу по имени хоста, и вуаля! Все работает как шарм!

По какой-то причине wordpress сохраняет имя хоста, которое вы используете для доступа к нему, и использует его для создания своего html ...

0
ответ дан 24 November 2019 в 04:20

Теги

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