Ссылка на определенный домен для определенного порта: Nginx, Docker, облачный сервис Google - PullRequest
0 голосов
/ 27 ноября 2018

Я пытаюсь связать домен, который я купил, с моей службой Google Cloud, используя Docker и Nginx, но я пытался написать так много решений о Stackoverflow ... но все не удалось.

Что я пропустил... Есть ли у вас какие-либо идеи ?Есть мои файлы

Окружающая среда

Domain : Google domain

Server : Google Cloud Service / compute engine / Centos 7.0;

Container : Docker / Docker-compose / Nginx

Dockerfile

FROM nginx
WORKDIR /usr/share/nginx/html

COPY ./client/dist ./
COPY ./docker/nginx.conf /etc/nginx/conf.d/default.conf

EXPOSE 80

CMD ["nginx", "-g", "daemon off;"]

docker-compose

app:
    build:
      context: .
      dockerfile: ./Dockerfile
    environment:
      - NODE_ENV=prod
      - PORT=8081
    volumes:
      - /usr/share/nginx/html
    ports:
      - "8081:80"

Nginx

server {
    listen       80;
    server_name  example.net;

    root /usr/share/nginx/html;
    index index.html;
    charset utf-8;

    # enable gzip
    gzip on;
    gzip_disable "msie6";

    gzip_comp_level 6;
    gzip_min_length 1100;
    gzip_buffers 16 8k;
    gzip_proxied any;
    gzip_types
        text/plain
        text/css
        text/js
        text/xml
        text/javascript
        application/javascript
        application/x-javascript
        application/json
        application/xml
        application/rss+xml
        image/svg+xml;

    location ~* ^.+\.(ico|gif|jpg|jpeg|png)$ {
        expires      30d;
    }

    location ~* ^.+\.(css|js|txt|xml|swf|wav)$ {
        expires      24h;
    }

    location ~* ^.+\.(html|htm)$ {
        expires      1h;
    }

    location ~* ^.+\.(eot|ttf|otf|woff|svg)$ {
        expires max;
    }

    location / {
        proxy_pass http://localhost:8081;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_read_timeout 1800;
        proxy_connect_timeout 1800;
        try_files $uri /index.html;
    }
}

Брандмауэр Google Cloud *

Изображение порта брандмауэра Google Cloud *

У меня есть домен, который я купил (например, example.net), и у меня есть приложение VueJs, работающее на порту 8081. Мое приложение работает на example.net:8081 ... Но я хочу егоработает только на example.net ... Но ничего ...

Надеюсь, некоторые найдут, где я делаю ошибку ...

Спасибо, что прочитали

PS: Есть люди, которые скажут мне, что это, вероятно, дубликат поста, но ... 1. Я не нахожу ничего хорошего, я бы не стал просить о помощи, я бы ее нашел.2. Не будь злым, пожалуйста).

1 Ответ

0 голосов
/ 28 ноября 2018

8081:80 текущий порт контейнера привязки 80 to 8081 на вашем сервере.Но вы хотите доступ к своему домену без порта, верно?Итак, свяжите 80 port внутри контейнера с 80 port на сервере, изменив 8081:80 на 80:80.И убедитесь, что на реальной машине подачи ничего не используется 80 port по команде:

sudo lsof -i tcp:80

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...