И наконец, сочинение. Вы не хотите, чтобы ваш сайт отображал как 5000, так и 80 (вы не хотите, чтобы люди обходили nginx), поэтому просто не выставляйте 5000
жу за этимпример и этоответ на стеке потока и я застрял
Я использую этот пример на VPS для Digitalocean. Моя файловая структура выглядит следующим образом:
docker-compose.yml
mainweb/
nginx/
README
докер-compose.ymlversion: '2'
services:
app:
restart: always
build: ./mainweb
command: gunicorn -w 2 -b :5000 wsgi:app
networks:
- mainnet
expose:
- "5000"
ports:
- "5000:5000"
nginx:
restart: always
build: ./nginx
networks:
- mainnet
links:
- app
volumes:
- /www/static
expose:
- 8080
ports:
- "8880:8080"
networks:
mainnet:
mainweb / app.py
Dockerfile
requirements.txt
templates/
wsgi.py
mainweb / app.pyfrom flask import Flask, render_template
app=Flask(__name__)
@app.route('/')
def home()():
return render_template('templates/home.html')
if __name__=="__main__":
app.run(host="0.0.0.0", port=5000)
mainweb / DockerfileFROM python:3.5
MAINTAINER castellanprime
RUN mkdir /mainweb
COPY . /mainweb
WORKDIR /mainweb
RUN pip install -r requirements.txt
mainweb / шаблоны / home.html
mainweb / шаблоны / home.html<!doctype html>
<html>
<head>
<title> My website </title>
</head>
<body>
<h1> I am here </h1>
</body>
</html>
mainweb / wsgi.pyfrom app import app
if __name__=="__main__":
app.run()
Nginx Dockerfile
sites-enabled.conf
static/
Nginx / DockerfileFROM nginx:1.13.1-alpine
MAINTAINER castellanprime
ADD sites-enabled.conf /etc/nginx/conf.d/sites-enabled.conf
ADD static/ /www/static/
Nginx / сайты-enabled.confserver{
listen 8080;
server_name app; # Should I put my actual www.XXXXXX.XXXXX address here
charset utf-8;
location /static{
alias /www/static/;
}
location / {
proxy_pass http://app:5000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X_Forwared-For $proxy_add_x_forwarded_for;
}
}
Nginx / статический css/
js/
После того, как я запускаю командуdocker-compose up -d
Я проверяю www.XXXXXX.com:8880 или www.XXXXXX.com:8080 из другого веб-клиента в другой системе.
Я получаю стандартную веб-страницу nginx.
Как мне перенаправить его на home.html?