NGinx:将localhost / project设置为项目git文件夹

时间:2017-04-14 11:26:40

标签: nginx nginx-location

我目前正在空闲时间在一个小型网站上工作。为了开发,我将所有git存储库保存在〜/ git中。是否可以配置nginx,以便如果我转到localhost / A或localhost / B,它会分别使用〜/ git / A和〜/ git / B?

我正在使用fedora并尝试使用单个回购,但我一直得到404:

/etc/nginx/nginx.conf

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

events {
    worker_connections 1024;
}

http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

    server {
        listen       80;
        server_name  localhost;
        root         /home/MartenBE/git/;
        index        index.html index.php;

        location /A/ {
            alias /home/MartenBE/git/A/;
        }
    }

    server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  _;
        root         /usr/share/nginx/html;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }
}

2 个答案:

答案 0 :(得分:0)

我认为只有以下内容适合您。

server {
    listen       80;
    server_name  localhost;
    root         /home/MartenBE/git/;
    index        index.html index.php;
}

您不需要添加location模块,因为您已经定义了root。现在,如果您尝试 localhost / A / index.html ,Nginx将尝试在 /home/MartenBE/git/A/index.html 下找到它。

您正在尝试的请求是什么?

答案 1 :(得分:0)

首先,从主nginx conf文件中分离站点配置是很好的 请执行以下操作..

  • server中删除所有/etc/nginx/nginx.conf块。
  • 使用以下内容在/etc/nginx/sites-available/yourconf中创建文件。

    server { listen 80; server_name localhost; root /home/MartenBE/git/; index index.html index.php; }

  • /etc/nginx/sites-enabled/yourconf内创建配置文件的符号链接。

  • 删除/etc/nginx/sites-enabled/default&重新加载nginx配置。

注意:如果您使用的是ubuntu,请运行sudo service nginx reload