Nginx 配置到 github 页面和主页

Nginx 配置到 github 页面和主页

我正在尝试配置 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;
    }
}

相关内容