Ubuntu

在 Ubuntu 伺服器升級後緊急 Nginx 崩潰

  • May 26, 2020

之前嘗試將 Nginx 從 1.14 升級到 1.14.1。但是在 apt-get upgrade 我得到了:

mysite systemd[1]: Starting A high performance web server and a        reverse proxy server...
mysite nginx[31861]: nginx: [emerg] duplicate upstream  "fastcgi_backend" in /etc/nginx/sites-enabled/mysite.conf.save:1
mysite nginx[31861]: nginx: configuration file  /etc/nginx/nginx.conf test failed
mysite systemd[1]: nginx.service: Control process exited,  code=exited status=1
mysite systemd[1]: Failed to start A high performance web server     and a reverse proxy server.
mysite systemd[1]: nginx.service: Unit entered failed state.
mysite systemd[1]: nginx.service: Failed with result 'exit-code'.
dpkg: error processing package nginx-full (--configure):
subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of nginx:
nginx depends on nginx-full (<< 1.14.1-0+xenial0.1~) | nginx-light (<<   1.14.1-0+xenial0.1~) | nginx-extras (<< 1.14.1-0+xenial0.1~); however:
Package nginx-full is not configured yet.
Package nginx-light is not installed.
Package nginx-extras is not installed.
nginx depends on nginx-full (>= 1.14.1-0+xenial0) | nginx-light (>=  1.14.1-0+xenial0) | nginx-extras (>= 1.14.1-0+xenial0); however:
Package nginx-full is not configured yet.
Package nginx-light is not installed.
Package nginx-extras is not installed.

我在 mysites.conf 文件中有這些:

upstream fastcgi_backend {
server   127.0.0.1:9000;
#server unix:/run/php/php7.2-fpm.sock;
}

server {
listen 80;
server_name mysite.com;
return 301 https://www.example.com$request_uri;
}

server {
listen 80 default_server;
server_name www.example.com; # dev.www.example.com;
root   /home/public_html;

#check http_x_forwarded_proto value that comes from load balancer
set $my_http "http";
set $my_ssl "off";
set $my_port "80";

if ($http_x_forwarded_proto = "https") {
 set $my_http "https";
 set $my_ssl "on";
 set $my_port "443";
}

#cut off port from url
port_in_redirect off;

#setup log files
access_log  /home/www_logs/access.log;
error_log /home/www_logs/error.log;

include includes/blocks.conf;

# Include Security rules for Mageto
include includes/security.conf;

# Tell browsers that website should olways be accessible via HTTPS
# add_header Strict-Transport-Security "max-age=15984000" always;

# Include redirects
include includes/redirects.conf;

# Include static
include includes/static.conf;



# Add rewrite for product feeds
location ~ ^/en/skroutzfeed\.xml {
   expires 24h;
   try_files /home/public_html/skroutzfeed_en.xml /skroutzfeed_en.xml =404;
}
location ~ ^/el/skroutzfeed\.xml {
   expires 24h;
   try_files /home/public_html/skroutzfeed_gr.xml /skroutzfeed_gr.xml =404;
}
location ~ ^/skroutzfeed\.xml {
   expires 24h;
   try_files /home/public_html/skroutzfeed_gr.xml /skroutzfeed_gr.xml =404;
}
#include includes/phpmyadmin.conf;
#include includes/solr.conf;

#location ~ ^/el {
#    #set $magento_run_code "el";
#    #set $magento_run_type "store";
#}

#location ~ ^/en {
#    #set $magento_run_code "en";
#    #set $magento_run_type "store";
#}

location / {
   #expires 30d;
   index index.html index.php;
   set $magento_run_code "el";
   set $magento_run_type "store";
   try_files $uri $uri/ @handler;
}

location @handler {
   rewrite / /index.php;
}

#location = /js/index.php/x.js {
#    rewrite ^(.*\.php)/ $1 last;
#}

location ~ \.php {
   expires  off;
 # fastcgi_pass   fastcgi_backend;
   fastcgi_buffers 8 32k;
   fastcgi_buffer_size 64k;
   fastcgi_busy_buffers_size 64k;
   fastcgi_connect_timeout 3000s;
   fastcgi_read_timeout 3000s;
   fastcgi_send_timeout 3000s;
   fastcgi_param HTTPS $my_ssl;
   fastcgi_param REMOTE_ADDR $http_x_real_ip;
   fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
   include fastcgi_params;
   fastcgi_param REMOTE_ADDR $http_x_real_ip;
}
}

當我檢查時,我只有以下幾行:

upstream fastcgi_backend {
server   127.0.0.1:9000;
#server unix:/run/php/php7.2-fpm.sock;
}

我破壞了我的網站。有人可以幫忙嗎?

您已經upstream fastcgi_backend定義了兩次: inmysites.conf和 in wallpapershop.gr.conf.save。因此,您收到錯誤消息nginx: [emerg] duplicate upstream "fastcgi_backend"

通過刪除第二個配置文件(按照 Michael Hampton 的建議),您解決了問題。

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