我的目標是部署多個webapps並通過子域訪問它們,我當前在不同的端口上運行它們,我在服務器上運行了nginx,而容器運行的是Apache。Docker在子域上運行
docker run -p 8001:80 -d apache-test1
docker run -p 8002:80 -d apache-test2
,我能夠通過將
http://example.com:8001
訪問他們,但我想通過子域,而不是
http://example.com:8001 -> http://test1.example.com
http://example.com:8002 -> http://test2.example.com
訪問它們我使用以下服務器設置在服務器上運行nginx
server {
server_name test1.anomamedia.com;
location/{
proxy_redirect off;
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_pass http://localhost:8001;
}
}
server {
server_name test2.anomamedia.com;
location/{
proxy_redirect off;
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_pass http://localhost:8002;
}
}
如果它的任何幫助,這是我的Dockerfile
FROM ubuntu
RUN apt-get update
RUN apt-get -y upgrade
RUN sudo apt-get -y install apache2 php5 libapache2-mod-php5
# Install apache, PHP, and supplimentary programs. curl and lynx-cur are for debugging the container.
RUN DEBIAN_FRONTEND=noninteractive apt-get -y install apache2 libapache2-mod-php5 php5-mysql php5-gd php-pear php-apc php5-curl curl lynx-cur
# Enable apache mods.
RUN a2enmod php5
RUN a2enmod rewrite
EXPOSE 80
# Copy site into place.
ADD html /var/www/html
# Update the default apache site with the config we created.
ADD apache-config.conf /etc/apache2/sites-enabled/000-default.conf
# By default, simply start apache.
CMD /usr/sbin/apache2ctl -D FOREGROUND
以及實際的問題是什麼? –
子域部分不工作,它在問題中... – santi6291
正如https://meta.discourse.org/t/how-do-you-go-on-configuring-another-sub-domain -with-the-nginx-instance-inside-the-docker/16846/16,你可以嘗試使用'proxy_pass http://0.0.0.0:8002;'(而不是localhost) – VonC