Nano Hash - криптовалюты, майнинг, программирование

Несколько проектов Mezzanine на одном сервере с Nginx и Gunicorn: не удалось найти IP-адрес сервера

Я очень новичок в развертывании. Я пытаюсь развернуть два проекта Mezzanine 4.2.3 (они используют Django 1.10.8 в соответствии с требованиями.txt) на Ubuntu 16.04. Я успешно развернул первый с помощью этого руководство. Я могу получить к нему доступ через его доменное имя, скажем, example.com. Я пытаюсь сделать другой доступным либо на food.example.com, либо предпочтительно на example.com/food, но браузер возвращает: «IP-адрес сервера не найден».

Конфиг nginx для example.com в /etc/nginx/sites-available/example:

server {
    listen 80;
    server_name [SERVER IP ADDRESS] example.com;

    location = /favicon.ico { access_log off; log_not_found off; }
    location /static/ {
    root /home/example;
}

    location / {
    include proxy_params;
    proxy_pass http://unix:/home/example/example.sock;
}

Конфиг nginx для food.example.com в /etc/nginx/sites-available/food:

server {
    listen 81;
    server_name food.example.com;

    location = /favicon.ico { access_log off; log_not_found off; }
    location /static/ {
    root /home/food;
    }

    location / {
    include proxy_params;
    proxy_pass http://unix:/home/food/food.sock;
    }
}

Я пытался использовать example.com/food, но nginx продолжал говорить, что в нем есть подозрительные символы. Я не знаю, является ли это одной из проблем, препятствующих отображению страницы, но я все равно изменил его на субдомен food, чтобы попытаться изолировать проблему.

Конфигурационный файл gunicorn для example.com в /etc/systemd/system/gunicorn_example.service:

[Unit]
Description=gunicorn daemon
After=network.target

[Service]
User=root
Group=www-data
WorkingDirectory=/home/example
ExecStart=/home/example/env_example/bin/gunicorn --access-logfile - --workers 3 --bind unix:/home/example/example.sock example.wsgi:application

[Install]
WantedBy=multi-user.target

Конфигурационный файл gunicorn для food.example.com по адресу /etc/systemd/system/gunicorn_food.service:

[Unit]
Description=gunicorn daemon
After=network.target

[Service]
User=root
Group=www-data
WorkingDirectory=/home/food
ExecStart=/home/food/env_food/bin/gunicorn --access-logfile - --workers 3 --bind unix:/home/food/food.sock food.wsgi:application

[Install]
WantedBy=multi-user.target

Журнал Nginx не показывает ошибок.

systemctl status для nginx, gunicorn_example и gunicorn_food, похоже, указывают на то, что все в порядке. nginx -t говорит, что синтаксис nginx.conf и тест в порядке.

И gunicorn_example, и gunicorn_food.service работают.

И example.sock, и food.sock были успешно сгенерированы.

ps aux | grep gunicorn показывает бегущих рабочих.

Не уверен, что это важная деталь, но я не использую супервизор или выскочку для развертывания.

Я предполагаю, что я написал URL-адреса неправильно. Но я пробовал разные комбинации и не получил нужного результата.

example.com в urls.pyin the same folder assettings.py`:

urlpatterns += [
    url("^$", views.blog_post_list_index, name="home"),
]

food.example.com urls.py в той же папке, что и settings.py:

urlpatterns += [
    url("^food.example.com$", views.blog_post_list_index, name="home"),
    url("^food.example.com/", include('food_crud.urls')),
    url("^", include("mezzanine.urls")),
]

Приложение urls.py в каталоге приложений:

urlpatterns += [
    url('add/$', food_crud_views.FoodCreateView.as_view(), name='food add'),
    url('list/$', food_crud_views.FoodListView.as_view(), name='food list'),
    url('(?P<pk>\d+)/$', food_crud_views.FoodDetailView.as_view(), name='food detail'),
    url('(?P<pk>\d+)/update$', food_crud_views.FoodUpdateView.as_view(), name='food update'),
    url('(?P<pk>\d+)/delete$', food_crud_views.FoodDeleteView.as_view(), name='food delete'),
]

Что я пропустил?

Редактировать 18 февраля 2018 года: ALLOWED_HOSTS в settings.py содержит только ["example.com/food,"].


  • На следующем сайте еду ставишь на 81 порт. Попробуйте открыть example.com:81/food 17.02.2018
  • @Денис собирается example.com:81/food просто тайм-аут: ERR_CONNECTION_TIMED_OUT 18.02.2018

Ответы:


1

Прочитав больше, спросив в IRC и еще немного поэкспериментировав, оказалось, что единственное, что мне нужно было сделать, это заставить оба проекта прослушивать порт 80.

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

19.02.2018
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

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

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..