我想在反向代理中重写 URL,因此在我的情况下,我想更改如下所示的 url,我运行了一些容器,因此它们现在可以调用,但是使用端口和本地主机,我添加了一个带有 nginx 反向代理的新容器,并且我想通过这个恢复我的 url,但我不知道应该如何在此路径 /etc/nginx/nginx.conf 中定义 nginx.conf:
when I enter some url it should call like below:
http://addons.example.com => http://localhost:89
http://my.example.com => http://localhost
http://phpmyadmin.example.com => http://localhost:5054
由于我的配置,当我调用时,docker log 中出现了这个错误http://addons.project.com/test.php:
production_nginx | 2022/02/23 13:49:27 [error] 31#31: *1 open() "/etc/nginx/html/test.php" failed (2: No such file or directory), client: 172.25.0.1, server: my.project.com, request: "GET /test.php HTTP/1.1", host: "addons.project.com"
这是我的 nginx 配置:
events {
}
http {
client_max_body_size 20m;
proxy_cache_path /etc/nginx/cache keys_zone=one:500m max_size=1000m;
server {
server_name my.example.com;
location /my.example.com/ {
proxy_pass http://127.0.0.1:80;
rewrite ^/my.example.com(.*)$ $1;
}
location /addons.example.com/ {
proxy_pass http://127.0.0.1:89;
rewrite ^/addons.example.com(.*)$ $1;
}
}
}
提前致谢
答案1
您正在寻找虚拟主机设置,而不是location
单个server
块中的块。
您当前的设置对应于以下 URL:
https://my.example.com/my.example.com -> 127.0.0.1:80
https://my.example.com/addons.example.com -> 127.0.0.1:89
您可能需要单独的server
块:
server {
server_name my.example.com;
proxy_pass http://localhost;
}
server {
server_name addons.example.com;
proxy_pass http://localhost:89;
}
server {
server_name phpmyadmin.example.com;
proxy_pass http://localhost:5054;
}
rewrite
如果您无法正确配置应用程序的基本 URL,则可能需要这些语句。