2015-12-15 143 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; 
    } 
}