首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google计算引擎Dokku Nginx

Google计算引擎Dokku Nginx
EN

Stack Overflow用户
提问于 2015-02-25 21:06:20
回答 1查看 761关注 0票数 1

我试图使用一个虚拟机运行一个web服务器,使用和Dokku。

我所做的:

  • 我使用创建了一个虚拟机(实例)
  • 我启用了TCP:80端口以允许web应用程序的传入连接。
  • 我在虚拟机中安装了Dokku
  • 我使用git push dokku master部署了我的web应用程序
  • 服务器运行正常(我已经使用dokku日志查看了日志,myapp )

但是,我不能使用实例的外部ip地址访问它

我想这是nginx的问题

EN

回答 1

Stack Overflow用户

发布于 2015-03-12 16:56:53

我在/home/dokku//中更改了默认的nginx.conf。

这一次:

代码语言:javascript
复制
upstream $APP-domains { server $INTERNAL_IP:$PORT; }
server {
  listen        [::]:80;
  listen        80;
  server_name   $EXTERNAL_IP;

  location / {
    proxy_pass http://$APP-domains; 
    proxy_http_version 1.1;
    proxy_set_header Upgrade $$http_upgrade;
    proxy_set_header Connection upgrade;
    proxy_set_header Host $$host;
    proxy_set_header X-Forwarded-Proto $$scheme;
    proxy_set_header X-Forwarded-For $$remote_addr;
    proxy_set_header X-Forwarded-Port $$server_port;
    proxy_set_header X-Request-Start $$msec;
    proxy_cache_bypass $$http_upgrade;
  }
 }

$APP、$PORT、$INTERNAL_IP、$EXTERNAL_IP应该根据部署的dokku应用程序进行更改。

$PORT =/home/dokku//港口

$INTERNAL_IP = /home/dokku//IP

$APP = app_name

$EXTERNAL_IP =您的公共IP

更改应用程序位置内的nginx.conf后,应该重新启动NGINX (sudo service nginx重新启动)

这是一个使用fabric来处理此过程的python要点:

代码语言:javascript
复制
@task
def config_vhost(ip, app):
    """Use the nginx template to redirect app to port 80"""
    port = run('cat /home/dokku/{}/PORT'.format(app))
    internal_ip = run('cat /home/dokku/{}/IP'.format(app))

    values = {'EXTERNAL_IP': ip, 'INTERNAL_IP': internal_ip, 'PORT': port, 'APP': app}

    nginx = open(NGINX_TEMPLATE, 'r').read()
    nginx_template = string.Template(nginx)

    nginx_conf = nginx_template.substitute(values)
    sudo("echo '{}' > /home/dokku/{}/nginx.conf".format(nginx_conf, app))
    sudo("service nginx restart")
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28729573

复制
相关文章

相似问题

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