我试图使用一个虚拟机运行一个web服务器,使用和Dokku。
我所做的:
但是,我不能使用实例的外部ip地址访问它
我想这是nginx的问题
发布于 2015-03-12 16:56:53
我在/home/dokku//中更改了默认的nginx.conf。
这一次:
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要点:
@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")https://stackoverflow.com/questions/28729573
复制相似问题