Domain-Name-System

嘗試在 nginx 中設置 vhost,域指向預設值

  • September 13, 2013

所以我正在嘗試學習一些網路伺服器配置的東西。我已經用php成功安裝了nginx,等等。我正在嘗試將我的域指向我的 VPS,並且該部分也已完成。然而問題是,目前我在 nginx/sites-enabled/、mydomain.com 和 default 中有兩個配置。

轉到我的域時,它成功連接,但是它不會拉出我為該域提供的測試頁面(其中 root 在 mydomain.com 中設置),而是轉到預設設置的頁面。兩者的配置如下。我需要做什麼才能讓我的域指向正確的目錄?

預設:

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;
   #}
}

刪除那些位置節。你不應該需要它們。

同時刪除listen [::]:80 default_server ipv6only=on;.

你確定你不會不小心預先掛起 www.?

IIRC你應該需要一條workers_connection線

你檢查過你的錯誤日誌嗎?

引用自:https://serverfault.com/questions/538563