【问题标题】:Server displays 404 when using https [nginx]服务器在使用 https [nginx] 时显示 404
【发布时间】:2017-05-16 21:11:01
【问题描述】:

任何帮助将不胜感激。

我收到了来自letsencrypt 的SSL 证书,并且正在尝试为我的服务器同时支持HTTP 和HTTPS。证书很好,但我在尝试使用 https 访问我的网站时得到 404。这是我的配置文件:

server {
  server_name my.domain.org;

  root /var/www/my.domain.org/htdocs;
  index index.php index.html index.html;

  server_name my.domain.org;
  location / {
    try_files $uri $uri/ /index.php?$args;
  }

  # Add trailing slash to */wp-admin requests.
  rewrite /wp-admin$ $scheme://$host$uri/ permanent;

  location ~ \.php$ {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini

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

  location = /favicon.ico {
    access_log off;
    log_not_found off;
  }

  location = /robots.txt {
    access_log off;
    log_not_found off;
  }

  location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
    expires max;
    log_not_found off;
  }
}

server {
  listen 443;

  ssl on;
  ssl_certificate /etc/letsencrypt/live/my.domain.org/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/my.domain.org/privkey.pem;

  server_name my.domain.org;
  access_log /var/log/nginx/nginx.vhost.access.log;
  error_log /var/log/nginx/nginx.vhost.error.log;

  location / {
    root /var/www/my.domain.org/htdocs;
    index index.php index.html index.html;
  }
}

【问题讨论】:

    标签: ssl nginx server


    【解决方案1】:

    https 的配置与 http 没有区别。

    所以,只需复制相同的 http 配置并添加 ssl 特定部分:

    # https
    server {
      listen 443 ssl; 
      # for http2 support uncomment line bellow and comment line above
      # listen 443 ssl http2;  
    
      ssl on;
      ssl_certificate /etc/letsencrypt/live/my.domain.org/fullchain.pem;
      ssl_certificate_key /etc/letsencrypt/live/my.domain.org/privkey.pem;
    
      server_name my.domain.org;
    
      root /var/www/my.domain.org/htdocs;
      index index.php index.html index.html;
    
      location / {
        try_files $uri $uri/ /index.php?$args;
      }
    
      rewrite /wp-admin$ $scheme://$host$uri/ permanent;
    
      location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
      }
    
      location = /favicon.ico {
        access_log off;
        log_not_found off;
      }
    
      location = /robots.txt {
        access_log off;
        log_not_found off;
      }
    
      location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
        expires max;
        log_not_found off;
      }
    }
    
    #http
    server {
      listen 80;
      root /var/www/my.domain.org/htdocs;
      index index.php index.html index.html;
    
      server_name my.domain.org;
      location / {
        try_files $uri $uri/ /index.php?$args;
      }
    
      rewrite /wp-admin$ $scheme://$host$uri/ permanent;
    
      location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
      }
    
      location = /favicon.ico {
        access_log off;
        log_not_found off;
      }
    
      location = /robots.txt {
        access_log off;
        log_not_found off;
      }
    
      location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
        expires max;
        log_not_found off;
      }
    }
    

    【讨论】:

    • 谢谢,我很感激。还有一个需要澄清的问题,您在这里粘贴的是我的整个配置文件吗? (省略其他服务器 {} 块)或者这只是替换我现在用于 SSL 的块?
    • @nginthrowaway 我已经更新了我的答案你可以复制所有
    猜你喜欢
    • 2016-10-24
    • 2017-09-19
    • 1970-01-01
    • 1970-01-01
    • 2020-07-28
    • 1970-01-01
    • 1970-01-01
    • 2021-10-15
    • 2019-11-10
    相关资源
    最近更新 更多