使用nginx将url路由到目录

使用nginx将url路由到目录,nginx,Nginx,假设这是运行nginx的服务器的ip: 1.2.3.4 假设我已经购买了这个url: www.abcd.com 我编辑了www.abcd.com的DNS记录,如下所示: (使用Godaddy作为注册人) A(主机) 主机|指向| TTL @| 1.2.3.4 |现场直播 在浏览器的url栏中输入1.2.3.4将带我进入服务器的nginx欢迎页面。因为我把我的url指向了同一个地址www.abcd.com,虽然它解析为1.2.3.4,但也会将我带到同一个页面 这是我的nginx配置文件: sudo

假设这是运行nginx的服务器的ip:

1.2.3.4

假设我已经购买了这个url:

www.abcd.com

我编辑了www.abcd.com的DNS记录,如下所示:

(使用Godaddy作为注册人)

A(主机)

主机|指向| TTL

@| 1.2.3.4 |现场直播

在浏览器的url栏中输入1.2.3.4将带我进入服务器的nginx欢迎页面。因为我把我的url指向了同一个地址www.abcd.com,虽然它解析为1.2.3.4,但也会将我带到同一个页面

这是我的nginx配置文件:

sudo nano/opt/nginx/conf/nginx.conf=>

在我的服务器上,我具有以下结构:

~/public/rails/test/index.html
以下是index.html包含的内容:

sudo nano/opt/nginx/conf/nginx.conf=>

有效!从www.abcd.com路由已成功!
我期望发生的事情:

访问www.abcd.com将由名称服务器转发至1.2.3.4。当请求到达1.2.3.4时,nginx将看到它来自www.abcd,并将此文件提供给用户:

~/public/rails/test/index.html

简言之:

www.abcd.com=>有效!从www.abcd.com路由已成功

实际发生的情况:

访问www.abcd.com由名称服务器转发至1.2.3.4。然而,尽管我的配置文件不起作用,这是非常困难的。它只是向用户显示nginx的“欢迎”消息,就好像我没有碰过配置文件一样

我试过了

sudo服务nginx站

sudo服务nginx启动

sudo服务nginx重启

在编辑配置之后,没有发生任何不同的事情


我做错了什么?我在哪里可以找到日志来查看到底发生了什么?nginx的欢迎屏幕代表什么?我的道路错了?什么?这里是盲目的。

您的服务器阻塞根指令设置为/public/rails/test(绝对路径),而您说您希望它为用户提供~/public/rails/test/index.html。字符~表示当前用户的主目录,是一个相对路径

因此:尝试在服务器块中设置绝对路径(例如/home/myuser/public/rails/test

  • 添加
    server\u name
    带和不带
    www
  • 添加此行
    index.html
  • /public/rails/test
    之前添加
    ~
    符号。比如:
    root~/public/rails/test
  • 试试这个:

    server {
      listen 80;
      server_name abcd.com www.abcd.com;
      index index.html; # add this line
      root ~/public/rails/test; # add "~" sign '/public/rails/test'
      server_name www.abcd.com;
    }
    
    <h1> It works! Routing from <i>www.abcd.com</i> has been successful! </h1>
    
    server {
      listen 80;
      server_name abcd.com www.abcd.com;
      index index.html; # add this line
      root ~/public/rails/test; # add "~" sign '/public/rails/test'
      server_name www.abcd.com;
    }