首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nginx子域- Home Assistant

Nginx子域- Home Assistant
EN

Stack Overflow用户
提问于 2017-12-11 23:01:41
回答 2查看 1.9K关注 0票数 0

我有一个Home Assistant实例运行在同一台服务器上,就像我的nginx代理一样,现在我想在我的公共域下创建一个子域。为了使我的Home Assistant实例在以下url下可用https://something.com/homeassistant。我目前在nginx代理上使用以下代码:

代码语言:javascript
复制
location / {
    proxy_pass http://localhost:8080/;
    proxy_set_header Host $host;

    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
}

我已经尝试过了:

代码语言:javascript
复制
location /homeassistant {
    proxy_pass http://localhost:8080/;
    proxy_set_header Host $host;

    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
}

但是这根本不起作用..

我在这里也使用了这个指南:https://home-assistant.io/docs/ecosystem/nginx_subdomain/

如何配置nginx来提供如上所述的服务?

EN

回答 2

Stack Overflow用户

发布于 2018-10-27 06:37:38

我的反向代理nginx的配置,带有子域和https:

代码语言:javascript
复制
server {
    listen       443 ssl;
    server_name  homeassistant.domain.tld;

    ssl on;
    ssl_certificate /etc/letsencrypt/live/domain.tld/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/domain.tld/privkey.pem;
    ssl_prefer_server_ciphers on;

    location / {
        proxy_pass http://<local-IP>:8123;
        proxy_set_header Host $host;

        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }

    location /api/websocket {
        proxy_pass http://<local-IP>:8123/api/websocket;
        proxy_set_header Host $host;

        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";

    }

}

只需删除ssl部分,并用listen 80;替换listen 443 ssl;即可。

票数 2
EN

Stack Overflow用户

发布于 2018-02-13 17:27:41

您提到https://something.com/homeassistant作为子域。据我所知,子域类似于https://homeassistant.something.com,其中homeassistant是something.com的子域。然而,这似乎是一个次要的细节。

你使用docker进行设置吗?我已经使用docker配置在一个子域上设置了homeassistant,如下所示:

停靠容器中的Nginx代理

代码语言:javascript
复制
docker run --name nginx-proxy \
-p 80:80 -p 443:443 -d --restart=always -v /etc/nginx/conf.d -v /etc/nginx/vhost.d -v /usr/share/nginx/html -v /etc/nginx/certs/:/etc/nginx/certs:ro --label com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy nginx

接下来,为config-generator创建模板:

代码语言:javascript
复制
curl https://raw.githubusercontent.com/jwilder/nginx-proxy/master/nginx.tmpl > /etc/nginx/templates/nginx.tmpl

设置代理Nginx代理配置生成器

代码语言:javascript
复制
docker run --name nginx-config-gen \
-d --restart=always --volumes-from nginx-proxy -v /etc/nginx/templates/:/etc/docker-gen/templates/:ro  -v /var/run/docker.sock:/tmp/docker.sock:ro --label com.github.jrcs.letsencrypt_nginx_proxy_companion.docker_gen jwilder/docker-gen -notify-sighup nginx-proxy -watch -wait 5s:30s /etc/docker-gen/templates/nginx.tmpl /etc/nginx/conf.d/default.conf

处理您的SSL证书的SSL伙伴

代码语言:javascript
复制
docker run --name nginx-letsencrypt \
-d --restart=always --volumes-from nginx-proxy -v /etc/nginx/certs/:/etc/nginx/certs:rw -v /var/run/docker.sock:/var/run/docker.sock:ro jrcs/letsencrypt-nginx-proxy-companion

因此,当你运行它的时候,你就有了一个加载代理的SSL,它可以自动为新镜像进行配置。接下来,我们可以添加:

代码语言:javascript
复制
docker run --name domain.com \
-p 8888:80 -d --restart=always -v /etc/nginx/apps/www.domain:/etc/nginx/conf.d -e VIRTUAL_HOST=www.domain.com -e LETSENCRYPT_HOST=www.domain.com -e LETSENCRYPT_EMAIL=hosting@domain.com nginx

若要为您的域启动get服务器,请将其自动绑定到您的代理并为其获取SSL证书。您可以通过相同的方式添加更多站点,只要该域是唯一的。使用homeAssistant的子域可以像这样的homeassistant.domain.com:

代码语言:javascript
复制
docker run -d -p 8080:8123 --name home-assistant --net=host --restart=always --device=/dev/ttyACM0  -v /opt/homeAssistant:/config -v /etc/localtime:/etc/localtime:ro -e VIRTUAL_HOST=homeassistant.domain.com -e LETSENCRYPT_HOST=homeassistant.domain.com -e LETSENCRYPT_EMAIL=hosting@domain.com   homeassistant/home-assistant

在这种情况下,请确保在您的home-assistant配置文件夹(在本例中为/opt/homeAssistant)中创建一个空的www目录,以便能够由letsEncrypt完成SSL域测试。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47755689

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档