2015-12-15 141 views
0

我一直想弄清楚如何將服務器指向我的靜態頁面,我將它存儲在我的雲服務器中的某個地方。另外,我使用NodeJs作爲我的後端。如何設置nginx配置?

我的老問題:這不是指向我的myProjectX index.html,而是指向Nginx的默認網頁「Welcome to Nginx!」。我想不通爲什麼;/

更新

我的新的問題:在那之後我做了這個新的配置,它指向我一個404頁,而不是指着我的index.html

而且,第20行,它給我重複的「/」當我運行sudo的nginx的-t的錯誤調試目的

`nginx: [emerg] duplicate location "/" in /etc/nginx/sites-enabled/default:20 ` 

這裏是我的Nginx的配置文件...

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

 
    server_name www.andii90s.com; 
 

 
    root /home/andy/www/myProjectX/app; 
 
    index index.html index.htm; 
 

 

 
    location/{ 
 
     proxy_pass http://10.137.10.140:8080; 
 
     proxy_http_version 1.1; 
 
     proxy_set_header Upgrade $http_upgrade; 
 
     proxy_set_header Connection 'upgrade'; 
 
     proxy_set_header Host $host; 
 
     proxy_cache_bypass $http_upgrade; 
 
    } 
 

 
    location/{ 
 
     #Line 20 
 
     try_files $uri $uri/ =404; 
 
    } 
 

 
    error_page 404 /404.html; 
 
    error_page 500 502 503 504 /50x.html; 
 
    location = /50x.html { 
 
     root /home/andy/www/myProjectX/app; 
 
    } 
 
}

+0

您的配置文件不被讀取*或*您沒有重新啓動'nginx'。 –

回答

2

首先,重啓NGINX服務

service nginx restart 

如果這樣做的伎倆, 還要檢查的/ etc/nginx的/網站可用/如果您使用的是默認設置,如果您創建了新設備,則必須在/etc/nginx/ sites-enabled中提供/

sudo ln -s /etc/nginx/sites-available/yourconfig /etc/nginx/sites-enabled/ 

如果你想運行一個網站:

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

root /home/andy/www/myProjectX/app; 
index index.php index.html index.htm; 

server_name myUrl; 

location/{ 
    try_files $uri $uri/ =404; 
} 

error_page 404 /404.html; 
error_page 500 502 503 504 /50x.html; 
location = /50x.html { 
    root /home/andy/www/myProjectX/app; 
} 

而且,如果你想使PHP只是添加到您的配置文件:

location ~ \.php$ { 
    try_files $uri =404; 
    fastcgi_split_path_info ^(.+\.php)(/.+)$; 
    fastcgi_pass unix:/var/run/php5-fpm.sock; 
    fastcgi_index index.php; 
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
    include fastcgi_params; 
} 

如果你想使用NGINX作爲代理,例如Node.js應用程序使用這個:

server { 
listen 80; 
server_name example.com; 

location/{ 
    proxy_pass http://hereip:8080; 
    proxy_http_version 1.1; 
    proxy_set_header Upgrade $http_upgrade; 
    proxy_set_header Connection 'upgrade'; 
    proxy_set_header Host $host; 
    proxy_cache_bypass $http_upgrade; 
} 

這將使您的應用程序可以在您的根域中訪問,例如:example.com。 ;)

+0

嗨,我已經包括這行代碼 位置/ { try_files $ uri $ uri/= 404; } } 但它給了我一個錯誤,我有「/」在某處複製... – AndyHe

+0

它說在錯誤消息中有什麼錯誤'重複的位置'...您無法定義位置'/'兩次。將你添加的行移動到'/'的現有塊中 – mazerraxuz

+0

你想要什麼,一個使用普通的HTML/PHP等的靜態網站,或者一個運行在例如Node.js上的webapp? – Thom

2

請參閱本博客 http://caffeinecodes.blogspot.in/2017/02/nginx-settings.html

server { 
    listen 80; 
    server_name test.com; 
    location = /favicon.ico { access_log off; log_not_found off; } 
    location /static/ { 
     alias /Users/Afxal/workspace/test_project/static/; 
    } 
    location/{ 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header Host $http_host; 
     proxy_redirect off; 
     proxy_pass http://127.0.0.1:8000; 
    } 
}