私はASP.NET Core MVC
アプリケーションを作成し、それをLinuxサーバーにデプロイしました。私がsitename.comに行くと、ブラウザーはHome/Indexページを表示します。asp.net core on linux with nginx routingが動作しません
しかし、私はsitename.com/Admin/Login
nginxのは404 Not Found
エラーがスローされますようsitename.com/Home/Index
または別のコントローラを移動しよう。何が問題になるはずですか?
私のStartup.cs/Configure
メソッドです。ここで
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole(Configuration.GetSection("Logging"));
loggerFactory.AddDebug();
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseBrowserLink();
}
else
{
app.UseExceptionHandler("/Home/Error");
}
app.UseStaticFiles();
app.UseSession();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
sites-available
フォルダ
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /var/www/sitename.com;
index index.html index.htm;
server_name sitename.com www.sitename.com;
location/{
try_files $uri $uri/ =404;
proxy_pass http://127.0.0.1:5000;
}
とnginx.conf
user www-data;
worker_processes 4;
pid /run/nginx.pid;
events {
worker_connections 768;
}
http {
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;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
gzip on;
gzip_disable "msie6";
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
mail {
}
これらのリクエストは、直接Kestrelに送信すると機能しますか? –
これらの行をbashで実行すると、正しいhtml応答が得られます。 'curl http:// localhost:5000/Home/Index'または' curl http:// localhost:5000/Admin/Login' @AlexeyAndrushkevich –
あなたの 'nginx.conf'ファイルを共有して、正しく設定されているか確認してください。 –