Vì vậy, tôi chạy một nginx container với docker-compose:
dịch vụ:
nginx:
xây dựng:
bối cảnh: .
dockerfile: dockerfile
khởi động lại: luôn luôn
container_name: webserver_nginx
tên máy chủ: nginx
stop_grace_period: 1m30s
kiểm tra sức khỏe:
kiểm tra: ["CMD-SHELL", "curl -sf http://127.0.0.1/ -o /dev/null || thoát 1"]
khoảng cách: 1m30s
thời gian chờ: 10s
thử lại: 3
start_period: 40s
cổng:
- 443:443
- 80:80
khối lượng:
# Hạn chế dịch vụ bằng mật khẩu
- ./.credentials/.htpasswd:/var/.credentials/.htpasswd
# Cấu hình Nginx
- ./nginx.conf:/etc/nginx/nginx.conf
- ./proxy_params:/etc/nginx/proxy_params
- ./conf:/etc/nginx/conf.d
#Nginx phục vụ các tệp tĩnh
- /var/backups/off:/var/web_data/off
# Ghi nhật ký Nginx
- /var/log/nginx:/var/log/nginx
mạng:
- máy chủ web_mạng
mạng:
máy chủ web_mạng:
bên ngoài: đúng
Dockerfile:
TỪ nginx
CMD ["nginx", "-g", "tắt daemon;"]
nginx.conf của tôi:
người dùng nginx;
worker_processes tự động;
error_log /var/log/nginx/error.log cảnh báo;
pid /var/run/nginx.pid;
sự kiện {
công_nhân kết_nối 1024 ;
}
http {
bao gồm /etc/nginx/mime.types;
ứng dụng default_type/octet-stream;
log_format chính '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log chính;
gửi tệp trên;
keepalive_timeout 65;
bao gồm /etc/nginx/conf.d/*.conf;
}
và cấu hình cho vùng chứa của tôi:
người phục vụ {
nghe 80;
nghe [::]:80;
server_name name.com;
vị trí / quản trị viên {
proxy_pass http://off:4000;
proxy_set_header Máy chủ lưu trữ $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_read_timeout 100;
proxy_http_version 1.1;
}
vị trí/tĩnh {
bí danh /var/web_data/off/collectstatic;
}
địa điểm/phương tiện {
bí danh /var/web_data/off/upload;
}
địa điểm / {
trả lại 404;
}
}
vì vậy bất cứ khi nào tôi cố gắng yêu cầu http://name.com/admin
tôi nhận được loại nhật ký này từ access.log:
127.0.0.1 - - [16/May/2022:15:53:42 +0000] "GET / HTTP/1.1" 404 153 "-" "curl/7.74.0" "-"
127.0.0.1 - - [16/May/2022:15:55:12 +0000] "GET / HTTP/1.1" 404 153 "-" "curl/7.74.0" "-"
127.0.0.1 - - [16/May/2022:15:56:42 +0000] "GET / HTTP/1.1" 404 153 "-" "curl/7.74.0" "-"
và tôi gặp lỗi 502 Gateway từ nginx trên trình duyệt
ngay cả khi tôi cố gắng truy cập trang web chính như http://name.com/
tôi liên tục gặp lỗi 502
vùng chứa của tôi soạn giống như:
phiên bản: '3.8'
dịch vụ:
tắt:
xây dựng:
bối cảnh: .
dockerfile: triển khai/beta/Dockerfile
lập luận:
WORKING_DIR: /ứng dụng
container_name: tắt
tên máy chủ: django
khởi động lại: 'luôn luôn'
lệnh: gunicorn -c triển khai/beta/configs/gunicorn/conf.py --chdir api api.wsgi:application
khối lượng:
# Mã nguồn dự án
- .:/ứng dụng
# Thu thập tệp tĩnh
- /var/backups/offch/collectstatic:/collectstatic
# Tệp phương tiện (Tải lên)
- /var/backups/offch/upload:/app/media/upload
- /var/log/upstart:/var/log/upstart
stop_grace_period: 1m30s
kiểm tra sức khỏe:
kiểm tra: ["CMD", "curl", "-f", "http://127.0.0.1:4000"]
khoảng cách: 1m30s
thời gian chờ: 10s
thử lại: 3
start_period: 40s
cổng:
- "4000:4000"
mạng:
- máy chủ web_mạng
mạng:
máy chủ web_mạng:
bên ngoài: đúng
Nhân tiện, tôi có thể truy cập trang web thông qua ip và cổng. Tôi chỉ gặp sự cố này với nginx.