我正在尝试在托管多个网站的计算机上部署nginx / gunicorn / django堆栈。而且我可以在最终需要的除80端口之外的任何其他端口上执行此操作,因为HTTP守护程序正在使用该端口。而且我不知道杀死httpd进程的后果。在我部署docker之前,php已使用cpanel在此网站上运行。
使用:80端口的进程是
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 22466/httpd
tcp6 0 0 :::80 :::* LISTEN 22466/httpd
有任何提示或想法吗?
编辑: 我的配置文件可以工作8000端口,当我将端口更改为80时,我遇到的问题是:
docker-compose.yml
version: '2'
services:
nginx:
image: nginx:latest
container_name: ng01
ports:
- "8000:8000"
volumes:
- ./src:/src
- ./config/nginx:/etc/nginx/conf.d
- /static:/static
- ./src/media:/media
depends_on:
- web
web:
build: .
container_name: dg01
command: bash -c "python manage.py collectstatic --no-input && python manage.py makemigrations && python manage.py migrate && gunicorn mydjango.wsgi -b 0.0.0.0:8000"
depends_on:
- db
volumes:
- ./src:/src
- /static:/static
- /media:/media
expose:
- "8000"
db:
image: postgres:latest
container_name: ps01
nginx conf
upstream web {
ip_hash;
server web:8000;
}
server {
location /static/ {
autoindex on;
alias /static/;
}
location /media/ {
autoindex on;
alias /media/;
}
location / {
proxy_pass http://web/;
}
listen 8000;
server_name server_domain_here;
}
答案 0 :(得分:0)
在docker中,您可以将容器内部使用的端口80重定向到主机上的另一个端口。
docker run -d -p 8080:80 <your image>
那么您的主机将不会有冲突。