我正在尝试配置 nginx,但尽管我多次尝试,它还是无法正常工作。我需要的是:
- 端口 80,
/download
由 nginx 提供服务 - 端口 80,其他内容重定向到同一台机器的端口 8080
这很好用,但现在我只需要在根的情况下(http://我的主机/)客户端被重定向到默认应用程序/Games
。我当前的配置是错误的,并无限循环地重定向我。我从中得到了一些想法这里但无法使其工作。重定向示例:
ex1: http://myhost/ --> http://myhost/Games --> http://localhost:8080/Games
ex2: http://myhost/Books --> http://localhost:8080/Books
我努力了
location / {
proxy_pass http://localhost:8080/Games;
}
但这似乎对一切都起作用(例如:/Books、/XYZ、...)。我认为指定精确根目录时的重定向是最干净的。
另外,我需要在 HTTPS 上复制此内容。我想这也适用于“stream”元素。
nginx.conf:
http {
server {
listen 80;
root /home/www/;
location = / {
return 301 http://$host/Games;
}
location / {
proxy_pass http://localhost:8080;
}
location /download/ {
....
}
}
}
stream {
server {
listen 443;
...
}
}
答案1
这里的问题到底是什么?您的配置对我有用:
server {
listen 80;
listen [::]:80;
server_name 192.168.0.2;
root /var/www;
location = / {
return 301 http://$host/folder;
}
location / {
proxy_pass http://otherserver:80;
}
}
日志:
[22/Feb/2018:17:04:55 +0100] "GET / HTTP/1.1" 301
[22/Feb/2018:17:04:55 +0100] "GET /folder HTTP/1.1" 301
[22/Feb/2018:17:04:55 +0100] "GET /folder/ HTTP/1.1" 200
[22/Feb/2018:17:11:29 +0100] "GET /index.html HTTP/1.0" 200
您在日志中看到了什么?请求是否完全无法代理,还是本地主机导致了问题?您的本地主机的配置是什么样的?信息太少,无法帮助您。
另外,我需要在 HTTPS 上复制此内容。我想这也适用于“stream”元素。
不确定您的意思,但您可以添加具有相同配置的另一个服务器块,listen 443
而不是listen 80
添加 ssl 指令。