永恒笔记
nginx部署到容器中的网络问题modified | Saturday 7 June 2025 |
---|
问题:nginx将请求反向代理至其他容器内的server,该如何配置。
将80端口的请求反向代理到容器a的3002端口,则需要配置一下nginx.conf中的upstream,以及让容器a和容器b处于同一个docker network下。
核心就是,在容器b中,可以识别到{服务b的容器名:3002}。
1user nginx;
2worker_processes auto;
3
4error_log /var/log/nginx/error.log warn;
5pid /var/run/nginx.pid;
6
7events {
8 worker_connections 1024;
9}
10
11http {
12 include /etc/nginx/mime.types;
13 default_type application/octet-stream;
14
15 log_format main '$remote_addr - $remote_user [$time_local] "$request" '
16 '$status $body_bytes_sent "$http_referer" '
17 '"$http_user_agent" "$http_x_forwarded_for"';
18
19 access_log /var/log/nginx/access.log main;
20
21 sendfile on;
22 #tcp_nopush on; // Uncomment if you want to disable TCP push
23 keepalive_timeout 65;
24
25 #gzip on; // Uncomment if you want to enable gzip compression
26
27 upstream myapp {
28 server chatgpt-web:3002;
29 }
30 server {
31 listen 80;
32 server_name localhost;
33
34 location / {
35 root /usr/share/nginx/html;
36 index index.html index.htm;
37 }
38
39 error_page 500 502 503 504 /50x.html;
40 location = /50x.html {
41 root /usr/share/nginx/html;
42 }
43 }
44
45 server {
46 listen 80;
47 server_name chat1.oldwinter.top 35.77.211.36;
48
49 location / {
50 proxy_pass http://myapp;
51 proxy_set_header Host $host;
52 proxy_set_header X-Real-IP $remote_addr;
53 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
54 }
55 }
56}
1version: '3'
2
3services:
4 nginx:
5 image: nginx
6 ports:
7 - "80:80"
8 volumes:
9 - /home/ubuntu/nginx/nginx.conf:/etc/nginx/nginx.conf
10 depends_on:
11 - chatgpt-web
12
13 chatgpt-web:
14 image: chenzhaoyu94/chatgpt-web # 总是使用 latest ,更新时重新 pull 该 tag 镜像即可
15 container_name: chatgpt-web
16 ports:
17 - 0.0.0.0:3002:3002