我试图让Nginx作为传输web客户端的反向代理。这两个都在单独的码头集装箱与码头组成。
我以前读过类似的问题,但这些问题对我没有用:https://unix.stackexchange.com/questions/64812/get-transmission-web-interface-working-with-web-server
https://stackoverflow.com/questions/15391073/nginx-transmission-daemon-url-rewrite
Nginx给了我一个错误:
6#6:*3 "/etc/nginx/html /transmission/web/ index.html“(2:没有此类文件或目录),客户端: 172.18.0.1,服务器: torrent.localhost,请求:"GET /传输/web/ HTTP/1.1",主机:"torrent.localhost”
这让我怀疑proxy_pass没有正常工作,因为它仍然试图从文件系统中获取html文件。
任何帮助都是非常感谢的!
hello world!404: Not Founddocker-compose.yml:
version: "2"
services:
nginx:
image: nginx
container_name: nginx-proxy
volumes:
- ./nginx/nginx.conf:/etc/nginx/nginx.conf
- ./www:/data/www
ports:
- "80:80"
- "443:443"
transmission:
image: linuxserver/transmission
container_name: transmission
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/London
- USER=username
- PASS=password
volumes:
- ./transmission/config:/config
- ./transmission/downloads:/downloads
- ./transmission/watch:/watch
ports:
- "9091:9091"
- "51413:51413"
- "51413:51413/udp"
restart: unless-stoppednginx.conf:
events {
}
http {
server {
listen 80;
server_name localhost 127.0.0.1;
root /data/www;
location = / {
index index.html;
}
}
server {
server_name torrent.localhost;
location = / {
proxy_read_timeout 300;
proxy_pass_header X-Transmission-Session-Id;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://transmission:9091;
}
}
}index.html:
hello world!发布于 2019-12-27 18:11:18
你的问题在于“位置”之后的等号。如果位置需要匹配确切的请求URI,则可以使用等号。
您可能希望删除等号("=")如下:
server {
server_name torrent.localhost;
location / { # <-- remove "=" sign
proxy_read_timeout 300;
proxy_pass_header X-Transmission-Session-Id;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://transmission:9091;
}
}发布于 2019-12-31 09:27:28
您可以通过将容器添加到单个网络来实现。您可以在停靠-撰写文件中定义网络。下面的例子,
version: "2"
services:
nginx:
image: nginx
container_name: nginx-proxy
volumes:
- ./nginx/nginx.conf:/etc/nginx/nginx.conf
- ./www:/data/www
ports:
- "80:80"
- "443:443"
networks:
NETWORKNAME:
ipv4_address: 10.5.2.1
transmission:
image: linuxserver/transmission
container_name: transmission
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/London
- USER=username
- PASS=password
volumes:
- ./transmission/config:/config
- ./transmission/downloads:/downloads
- ./transmission/watch:/watch
ports:
- "9091:9091"
- "51413:51413"
- "51413:51413/udp"
restart: unless-stopped
networks:
NETWORKNAME:
ipv4_address: 10.5.2.2
networks:
NETWORKNAME:
driver: bridge
ipam:
config:
- subnet: 10.5.0.0/16
gateway: 10.5.0.1请按您的意愿替换NETWORKNAME。另外,根据您的需求选择子网掩码(您也可以随意选择IP)。然后将您的nginx conf更改如下,
server {
listen 80;
server_name "abc.example.com"; #your domain name
location / {
limit_except GET POST PUT HEAD DELETE OPTIONS PATCH {
deny all;
}
proxy_pass https://10.5.2.2; #IP of your web container
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_intercept_errors on;
}
}下面的项目使用Nginx容器作为反向代理。您可以参考该项目,并找到更有帮助的信息。OrangeHRM文档化开发环境
https://serverfault.com/questions/995822
复制相似问题