首先,如果我说了一些愚蠢的话,请原谅我,我没有服务器管理经验,但我被分配了这项任务。
对于我们的 Web 应用,我们希望设置一个代理服务器,以便拥有自己域名的客户可以指向我们的代理服务器,并且他们的域名将有效地作为我们应用的别名运行。我们希望使用代理服务器来实现这一点,而不是让他们必须直接使用站点的地址,以防将来发生更改。
我正在尝试在我们的暂存服务器中执行此操作,该服务器的主服务器具有以下 nginx 配置:
server {
listen 80;
server_name staging.oursite.com;
access_log /home/appname/logs/nginx-access.log;
error_log /home/appname/logs/nginx-error.log;
location /static/ {
alias /home/appname/appname/static/;
expires 365d;
}
location /site_media/ {
alias /home/appname/appname/media/;
expires 365d;
}
location / {
include proxy_params;
proxy_pass http://unix:/home/appname/run/gunicorn.sock;
}
error_page 502 /502.html;
location = /502.html {
root /home/appname/appname/error_page/;
}
}
我的理解是,设置代理所需要做的就是创建一个代理到其他服务器的新服务器块,因此我在下面添加了以下指令:
server {
listen 80;
server_name proxy.staging.oursite.com;
location / {
include proxy_params;
proxy_pass http://staging.oursite.com;
}
}
我重新启动了 nginx 以重新加载新配置,但是当proxy.staging.oursite.com
我重新启动时,出现以下错误:
502 Bad Gateway
答案1
proxy_pass URL 也应该以“/”结尾,否则您将得到一个无效的 URL。
尝试:
proxy_pass http://staging.oursite.com/;
答案2
我建议查看服务器访问和错误日志 -> /var/log/nginx/error.log
,/var/log/nginx/access.log
还请检查是否staging.oursite.com
可以访问。