我正在尝试设置一个反向代理,该代理可以将所有请求从 mysite.com:3005/Photos / 重定向到 mysite.com/Photos /
我已在 sites-available 文件夹中的配置文件中设置了反向代理。
以下是配置文件设置:
server {
listen 80;
root /var/www/html/mysite.com/site1/;
index index.php index.html index.htm istaff.html index.cgi;
server_name localhost *.mysite.com;
location /api/{
proxy_pass http://127.0.0.1:3001/api/;
}
location /site1/{
proxy_pass http://127.0.0.1:80/site1/;
}
location /Photos/ {
proxy_pass http://127.0.0.1:3005/Photos/;
}
当我在URL中输入:3005时,我现在可以访问该图像,但是没有端口号,就会出现404错误。
答案 0 :(得分:1)
拥有日志并知道您尝试使用哪个URL来访问图像将很有帮助。看起来您遇到的问题是URL匹配和转发。
根据我对您的配置文件的读取,访问:
http://example.com/Photos/sample.jpg
将http请求代理到:
http://example.com:3005/Photos//Photos/sample.jpg
“在URL中放入:3005时”不会出现404错误,因为您实际上并未使用Nginx代理该呼叫。
您应该将Nginx配置调整为如下所示:
server {
listen 80;
root /var/www/html/mysite.com/site1/;
index index.php index.html index.htm istaff.html index.cgi;
server_name localhost *.mysite.com;
location /api {
proxy_pass http://127.0.0.1:3001;
}
location /site1 {
proxy_pass http://127.0.0.1:80;
}
location /Photos/ {
proxy_pass http://127.0.0.1:3005;
}
}
根据Nginx的运行方式,您可能会对/ site1位置转发流量产生疑问。看起来好像是在将流量路由回自己。但是,如果Nginx在外部环路上侦听,并且您将流量转发到内部环路,则应该可以正常工作。