我正在尝试配置 Nginx 以使用类似代理的域传递到 github 页面,并且在根域上有一个登录页面。
通过这种配置,githubpages 的代理可以正常工作,但如果我检查 example.com,它也会转到 github pages。
我的配置是这样的:
server {
listen 80 ;
index index.html index.htm;
server_name example.com www.example.com ;
location = / {
index index.html;
root /home/landing/public_html ;
}
location / { #this work fine
proxy_set_header Host enlaorbita.github.io;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://user.github.io/;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
它必须做:
example.com 或 www.example.com --> 转到我自己的登陆页面(不起作用)
example.com/repo/ --> 转到 user.github.io/repo。是的,它有效。
谢谢
答案1
该index
指令是导致内部重定向至/index.html
,因此它与您的location /
块相匹配。
您需要一个单独的位置块来处理/index.html
并确保它不会与该location /
块匹配。如果您在 中使用了任何其他静态资源(如图像或 CSS)index.html
,您也需要一个位置块来处理它们。示例:
server {
listen 80;
server_name example.com www.example.com;
root /home/landing/public_html;
location = / {
index index.html;
}
location /index.html {
# Empty block -- root is set above
}
location /static {
# Also an empty block
# Put your static files in /home/landing/public_html/static, and access
# them at example.com/static/filename
}
location / {
proxy_set_header Host user.github.io;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://user.github.io/;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}