我有一个使用npm webpack构建的webapp,生成一个文件夹,将文件夹推送到centos文件夹,然后启动nginx docker为其提供服务,它工作正常,一些文件如下: nginx.yml:
version: '2'
services:
nginx:
image: nginx:1.14.0
volumes:
- ./../www:/usr/share/nginx/html
# ./../www is /home/example1/www
- ./nginx/site.conf:/etc/nginx/conf.d/default.conf
- ./ssl:/etc/nginx/ssl
ports:
- "443:443"
- "80:80"
和site.conf:
server {
listen 80 default;
server_name example1.com www.example1.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443;
index index.html;
server_name localhost;
error_log /var/log/nginx/error.log;
ssl related ...
location / {
root /usr/share/nginx/html;
}
location /api {
proxy_pass http://www.example1.com:8080/api;
}
}
现在我想服务另一个站点(例如example2.com),所以我用npm webpack生成了另一个文件夹,将其推送到/ home / example2 / www,因为这次nginx将服务两个站点,因此我删除了
- ./../www:/usr/share/nginx/html
来自nginx.yml 并将一个带有端口8081的服务器部分添加到site.conf,并添加
root /home/example1/www;
root /home/example2/www;
在site.conf的每个服务器部分中。但是,这两个站点均不起作用,我在互联网上进行了搜索,大多数帖子建议设置一个nginx-proxy,并将每个webapp托管在其他docker容器上。
一个nginx泊坞窗容器可以服务两个站点吗? 以及如何?
答案 0 :(得分:0)
nginx映像包括/etc/nginx/conf.d中的所有* .conf文件。尝试运行此命令以验证:docker run --rm -it nginx cat /etc/nginx/nginx.conf
因此,这意味着您应该可以在其中放入尽可能多的conf文件,nginx将为您提供服务。
所以这意味着您可以像这样使站点文件和conf文件大量存储:
services:
nginx:
image: nginx:1.14.0
volumes:
- ./../www:/usr/share/nginx/html
- ./../example1:/home/example1/www
- ./nginx/site.conf:/etc/nginx/conf.d/default.conf
- ./nginx/site2.conf:/etc/nginx/conf.d/site2.conf
在site2.conf中:
server_name example2.com www.example2.com;
location / {
root /home/example1/www;
}