Я пытаюсь настроить веб-сокеты для перехода через Nginx в приложение Phoenix, но продолжаю получать ошибку 403. Может ли кто-нибудь посоветовать правильную конфигурацию, чтобы это работало в продакшене - среда разработки в порядке.
Моя конфа Nginx:
upstream phoenix {
server 127.0.0.1:4000 max_fails=5 fail_timeout=60s;
}
server {
server_name <app-domain>;
listen 80;
location / {
allow all;
# Proxy Headers
proxy_http_version 1.1;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Cluster-Client-Ip $remote_addr;
# The Important Websocket Bits!
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass http://phoenix;
}
}
Моя конфигурация prod.exs:
use Mix.Config
config :logger, level: :info
config :phoenix, :serve_endpoints, true
config :app, App.Endpoint,
http: [port: 4000],
url: [host: "127.0.0.1", port: 4000],
root: '.',
cache_static_manifest: "priv/static/manifest.json",
server: true
config :app, App.Repo,
username: System.get_env("MONGO_USERNAME"),
password: System.get_env("MONGO_PASSWORD"),
database: "template",
hostname: "localhost",
pool_size: 10
Я могу предоставить любую дополнительную информацию по запросу, если это необходимо.
Приложение может быть доступно через доменное имя, последняя и единственная оставшаяся проблема — заставить работать веб-сокеты.
Большое спасибо всем, кто может указать мне в правильном направлении.