我正在嘗試配置 nginx,但儘管我多次嘗試,但仍無法使其工作。我需要的是:
- 80端口,
/download
由nginx提供服務 - 連接埠 80,其他任何內容都會重新導向到同一台機器,連接埠 8080
這工作正常,但現在我只需要在根的情況下(http://myhost/) 用戶端將重定向到位於 的預設應用程式/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 指令。