我試圖設置網絡套接字通過Nginx的鳳凰應用程序,但不斷得到403錯誤。任何人都可以建議正確的配置,使這項工作在生產 - 開發env是好的。如何在Nginx背後使用Phoenix設置Websockets?
我的Nginx的conf:
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 CONF:
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
我可以提供任何額外的信息,如果有必要的要求。
該應用程序可以很好地到達域名,最後和唯一剩下的問題是讓網絡套接字工作。
非常感謝任何能指引我走向正確方向的人。
是的,我錯過了地圖聲明。所以我已經將它添加到該域的nginx conf中,並重新啓動了nginx,但仍然收到相同的錯誤。我有一個與我的服務器配置相匹配的vagrant虛擬機,並在此基礎上構建exrm版本,如果出現構建問題,我將無法訪問它,但事實並非如此。確切的問題可以在這裏看到[link](phoenix.hollyer.me.uk),如果你去到聯繫頁面,並檢查瀏覽器控制檯,你會看到錯誤。 –
正確的md鏈接:[link](http://phoenix.hollyer.me.uk/contact) –
我編輯了答案。 – TheAnh