1

So I'm trying to learn some web server configuration stuff. I've successfully installed nginx with php, and so on. I was in the process of trying to point my domain to my VPS, and that portion is also finished. The problem is however, currently I have two configurations in nginx/sites-enabled/, mydomain.com, and default.

When going to my domain, It successfully connects, however it does not pull up the test page I have for the domain (where root is set in mydomain.com), but rather goes to the page that is setup in default. the configuration for both is below. What do I need to do to have my domain point to the correct directory?

default:

server {
    listen 80;
    listen [::]:80 default_server ipv6only=on;

    root /usr/share/nginx/html;
    index index.html index.htm index.php;

    # Make site accessible from http://localhost/
    server_name localhost;

    location / {
        # First attempt to serve request as file, then
        # as directory, then fall back to displaying a 404.
        #try_files $uri $uri/ /index.html;
                try_files $uri $uri/ =404;
        # Uncomment to enable naxsi on this location
        # include /etc/nginx/naxsi.rules
    }

    location /doc/ {
        alias /usr/share/doc/;
        autoindex on;
        allow 127.0.0.1;
        allow ::1;
        deny all;
    }

    # Only for nginx-naxsi used with nginx-naxsi-ui : process denied requests
    #location /RequestDenied {
    #   proxy_pass http://127.0.0.1:8080;    
    #}

    #error_page 404 /404.html;

    # redirect server error pages to the static page /50x.html
    #
    #error_page 500 502 503 504 /50x.html;
    #location = /50x.html {
    #   root /usr/share/nginx/html;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
        location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini

        # With php5-cgi alone:
        # fastcgi_pass unix:/var/run/php5-fpm.sock;
        # With php5-fpm:
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #   deny all;
    #}
}

mydomain.com:

server {
    listen 80;
    listen [::]:80 default_server ipv6only=on;

    root /usr/share/nginx/html/mydomain.com;
    index index.html index.htm index.php;

    # Make site accessible from http://localhost/
    server_name mydomain.com;

    location / {
        # First attempt to serve request as file, then
        # as directory, then fall back to displaying a 404.
        #try_files $uri $uri/ /index.html;
                try_files $uri $uri/ =404;
        # Uncomment to enable naxsi on this location
        # include /etc/nginx/naxsi.rules
    }

    location /doc/ {
        alias /usr/share/doc/;
        autoindex on;
        allow 127.0.0.1;
        allow ::1;
        deny all;
    }

    # Only for nginx-naxsi used with nginx-naxsi-ui : process denied requests
    #location /RequestDenied {
    #   proxy_pass http://127.0.0.1:8080;    
    #}

    #error_page 404 /404.html;

    # redirect server error pages to the static page /50x.html
    #
    #error_page 500 502 503 504 /50x.html;
    #location = /50x.html {
    #   root /usr/share/nginx/html;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
        location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini

        # With php5-cgi alone:
        # fastcgi_pass unix:/var/run/php5-fpm.sock;
        # With php5-fpm:
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #   deny all;
    #}
}

1 Answer 1

0

Remove those location stanzas. You shouldn't need them.

Also remove listen [::]:80 default_server ipv6only=on;.

Are you sure you are not accidentally pre-pending a www.?

IIRC you should need a workers_connection line

Have you checked your error log?

3
  • removing that line fixed half the problem. now however, accessing the server directly (via IP, not domain), is showing the directory for the domain, not the one set in default, how would I fix that?
    – kennypu
    Sep 13, 2013 at 3:17
  • Have a look at dabase.com/e/04055
    – hendry
    Sep 13, 2013 at 3:21
  • along with the changes you've suggested, I changed the listen line to listen 80 default; and that took care of that. Thanks!!
    – kennypu
    Sep 13, 2013 at 3:26

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .