我有兩臺AP服務器,我想將NGINX設置爲代理服務器和負載均衡器。nginx無法解析上游
這裏是我的nginx.conf
文件:
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
large_client_header_buffers 8 1024k;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 650;
send_timeout 2000;
proxy_connect_timeout 2000;
proxy_send_timeout 2000;
proxy_read_timeout 2000;
gzip on;
#
# Load config files from the /etc/nginx/conf.d directory
# The default server is in conf.d/default.conf
map $http_upgrade $connection_upgrade {
default Upgrade;
'' close;
}
upstream backend {
server apserver1:8443;
server apserver2:8443;
}
server {
listen 8445 default ssl;
server_name localhost;
client_max_body_size 500M;
client_body_buffer_size 128k;
underscores_in_headers on;
ssl on;
ssl_certificate ./crt/server.crt;
ssl_certificate_key ./crt/server.key;
location/{
proxy_pass https://backend;
break;
}
}
}
apserver1
和apserver2
是我的AP服務器,實際上他們是IP地址。
當我通過https://my.nginx.server:8445
訪問nginx時,我可以獲取AP容器的默認頁面。就我而言,它是JETTY服務器的默認頁面。這意味着NGINX的作品。
如果正確的話,訪問https://my.nginx.server:8445/myapp
的用戶將獲得登錄頁面。如果用戶已經登錄,我的應用會將用戶重定向到https://my.nginx.server:8445/myapp/defaultResource
。
當我通過https://my.nginx.server:8445/myapp
作爲NOT-logged-in用戶訪問時,我可以正確地登錄頁面。
當我通過https://my.nginx.server:8445/myapp/defaultResource
作爲登錄用戶直接訪問時,我可以得到正確的頁面。
,但是當我訪問的URL https://my.nginx.server:8445/myapp
作爲登錄的用戶,(如果正確的網址應重定向到https://my.nginx.server:8445/myapp/defaultResource
),但nginx的網址轉換爲https://backend/myapp/defaultResource
,和Chrome給我下面的錯誤:
The server at backend can't be found, because the DNS lookup failed....(omited)
nginx,似乎沒有解決上游backend
。我的配置有什麼問題?
如果我使用http而不是https,則一切順利。
任何幫助表示讚賞。
你有沒有試着用'的http'代替'https'? – rednaw
@rednaw thx回覆。我沒有嘗試,因爲我必須使用'https'。我更新了我嘗試過的內容,請再次檢查。 – Freedom
您可以隨時嘗試查看問題是否與此相關... – rednaw