Score:0

FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream

cn flag

Need help with fnd the issue on new server. Im running magento site with nginx php-fpm with varnish. The site get blank with only that text File not found.

And im getting error in nginx log

2022/12/17 12:06:25 [error] 166796#166796: *4 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 127.0.0.1, server: sample.com, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/var/php-fpm/sample.com.sock:", host: "sample.com"

In access log:

[17/Dec/2022:12:31:14 +0100] "GET / HTTP/2.0" 404 36 "-" "Mozilla/5.0 

Here is site nginx conf file:

    upstream fastcgi_backend2 {
    server unix:/var/php-fpm/sample.com.sock;}


server {
    listen xxx.xxx.xxx.xx:80;
    server_name sample.com www.sample.com;
    access_log /var/log/nginx/sample.com_access.log;
    error_log /var/log/nginx/sample.com_error.log;
    return 301 https://sample.com$request_uri;
    
    gzip on;
    gzip_vary on;
    gzip_proxied expired no-cache no-store private auth;
    gzip_min_length 256;
    gzip_comp_level 6;
    gzip_disable "msie6";
    gzip_buffers 16 8k;
    gzip_http_version 1.1;
    gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
    location ~ "\.php(/|$)" {
        default_type application/x-httpd-php;
        try_files $uri $fastcgi_script_name =404;
        fastcgi_pass unix:/var/php-fpm/sample.com.sock;
    }
}

server {
    server_name sample.com www.sample.com;

    access_log /var/log/nginx/sample.com_access.log;
    error_log /var/log/nginx/sample.com_error.log;

    resolver 8.8.8.8 8.8.4.4;  
    listen 443 ssl http2;

  ssl_certificate /etc/letsencrypt/live/sample.com/fullchain.pem; # managed by Certbot
  ssl_certificate_key /etc/letsencrypt/live/sample.com/privkey.pem; # managed by Certbot

    ssl_session_cache   shared:SSL:60m;

    ssl_session_timeout 220m;
    ssl_session_tickets off;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers off;


    # OCSP Stapling
    ssl_stapling on;
    ssl_stapling_verify on;

    location / {
        proxy_pass http://127.0.0.1:6081;
        proxy_set_header X-Real-IP  $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header X-Forwarded-Port 443; 
        proxy_set_header X-IP-For-Cache-Refresh $realip_remote_addr;
        proxy_set_header Host $host;
        proxy_redirect     off;
        proxy_set_header HTTPS on;
        proxy_connect_timeout 900; 
        proxy_send_timeout 900; 
        proxy_read_timeout 900; 
        send_timeout 900;
        proxy_buffers 728 1600k;
        proxy_buffer_size 1600k;

   }
}

location ~ (/customer/account/login|/customer/account/login/|/checkout) {
      proxy_pass http://127.0.0.1:8080;
      proxy_set_header X-Real-IP  $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto https;
      proxy_set_header X-Forwarded-Port 443;
      proxy_set_header X-IP-For-Cache-Refresh $realip_remote_addr;
      proxy_set_header Host $host;
      proxy_set_header HTTPS "on";
      proxy_connect_timeout 900;
      proxy_send_timeout 900;
      proxy_read_timeout 900;
      send_timeout 900;
      proxy_buffers 728 1600k;
      proxy_buffer_size 1600k;
    }
      

}

server {
    listen 8080;
    server_name sample.com www.sample.com;
   
    #root /home/sample/public_html;
    set $MAGE_ROOT /home/sample/public_html;
    include /home/sample/public_html/nginx.conf;
    #index index.php index.htm index.html;
    access_log /var/log/nginx/sample.com_backend_access.log;
    error_log /var/log/nginx/sample.com_backend_error.log;
    fastcgi_param GATEWAY_INTERFACE CGI/1.1;
    fastcgi_param SERVER_SOFTWARE nginx;
    fastcgi_param QUERY_STRING $query_string;
    fastcgi_param REQUEST_METHOD $request_method;
    fastcgi_param CONTENT_TYPE $content_type;
    fastcgi_param CONTENT_LENGTH $content_length;
    fastcgi_param SCRIPT_FILENAME /home/sample/public_html$fastcgi_script_name;
    fastcgi_param SCRIPT_NAME $fastcgi_script_name;
    fastcgi_param REQUEST_URI $request_uri;
    fastcgi_param DOCUMENT_URI $document_uri;
    fastcgi_param DOCUMENT_ROOT /home/sample/public_html;
    fastcgi_param SERVER_PROTOCOL $server_protocol;
    fastcgi_param REMOTE_ADDR $remote_addr;
    fastcgi_param REMOTE_PORT $remote_port;
    fastcgi_param SERVER_ADDR $server_addr;
    fastcgi_param SERVER_PORT $server_port;
    fastcgi_param SERVER_NAME $server_name;
  fastcgi_buffers 16 16k;
  fastcgi_buffer_size 32k;
    fastcgi_param HTTPS $https;
    location ~ (^|/)\. {
        return 403;
    }


    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass unix:/var/php-fpm/sample.com.sock;
     
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
  
   
    }
}

EDIT:

This is the file that i have in set as include home/sample/public_html/nginx.conf

root $MAGE_ROOT/pub;

index index.php;
autoindex off;
charset UTF-8;
error_page 404 403 = /errors/404.php;
#add_header "X-UA-Compatible" "IE=Edge";


# Deny access to sensitive files
location /.user.ini {
    deny all;
}

# PHP entry point for setup application
location ~* ^/setup($|/) {
    root $MAGE_ROOT;
    location ~ ^/setup/index.php {
        fastcgi_pass   fastcgi_backend2;

        fastcgi_param  PHP_FLAG  "session.auto_start=off \n suhosin.session.cryptua=off";
        fastcgi_param  PHP_VALUE "memory_limit=756M \n max_execution_time=600";
        fastcgi_read_timeout 600s;
        fastcgi_connect_timeout 600s;

        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

    location ~ ^/setup/(?!pub/). {
        deny all;
    }

   location ~ ^/setup/pub/ {
        add_header X-Frame-Options "SAMEORIGIN";
    }
}

# PHP entry point for update application
location ~* ^/update($|/) {
    root $MAGE_ROOT;

    location ~ ^/update/index.php {
        fastcgi_split_path_info ^(/update/index.php)(/.+)$;
        fastcgi_pass   fastcgi_backend2;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        fastcgi_param  PATH_INFO        $fastcgi_path_info;
        include        fastcgi_params;
    }

    # Deny everything but index.php
    location ~ ^/update/(?!pub/). {
        deny all;
    }

    location ~ ^/update/pub/ {
        add_header X-Frame-Options "SAMEORIGIN";
    }
}

location / {
    try_files $uri $uri/ /index.php$is_args$args;
    if ($http_user_agent ~* (SemrushBot) ) {
   return 403;
}
}
location /pub/.well-known/acme-challenge/ {
    try_files $uri $uri/ /index.php$is_args$args;

}

location /test.php {
    try_files /test.php =404;
}

location /pub/ {
    location ~ ^/pub/media/(downloadable|customer|import|custom_options|theme_customization/.*\.xml) {
        deny all;
    }
    alias $MAGE_ROOT/pub/;
    add_header X-Frame-Options "SAMEORIGIN";
}


location /static/ {
    # Uncomment the following line in production mode
     expires max;

    # Remove signature of the static files that is used to overcome the browser cache
    location ~ ^/static/version {
        rewrite ^/static/(version\d*/)?(.*)$ /static/$2 last;
    }

    location ~* \.(ico|jpg|jpeg|png|gif|svg|js|css|swf|eot|ttf|otf|woff|woff2|html|json|webp)$ {
        add_header Cache-Control "public";
        add_header X-Frame-Options "SAMEORIGIN";
        expires +1y;

        if (!-f $request_filename) {
            rewrite ^/static/(version\d*/)?(.*)$ /static.php?resource=$2 last;
        }
    }
    location ~* \.(zip|gz|gzip|bz2|csv|xml)$ {
        add_header Cache-Control "no-store";
        add_header X-Frame-Options "SAMEORIGIN";
        expires    off;

        if (!-f $request_filename) {
           rewrite ^/static/(version\d*/)?(.*)$ /static.php?resource=$2 last;
        }
    }
    if (!-f $request_filename) {
        rewrite ^/static/(version\d*/)?(.*)$ /static.php?resource=$2 last;
    }
    add_header X-Frame-Options "SAMEORIGIN";
}

location /media/ {

  try_files $uri $uri/ /get.php$is_args$args;

    location ~ ^/media/theme_customization/.*\.xml {
        deny all;
    }

    location ~* \.(ico|jpg|jpeg|png|gif|svg|js|css|swf|eot|ttf|otf|woff|woff2|webp)$ {
        add_header Cache-Control "public";
        add_header X-Frame-Options "SAMEORIGIN";
        expires +1y;
        try_files $uri $uri/ /get.php$is_args$args;
    }
    location ~* \.(zip|gz|gzip|bz2|csv|xml)$ {
        add_header Cache-Control "no-store";
        add_header X-Frame-Options "SAMEORIGIN";
        expires    off;
        try_files $uri $uri/ /get.php$is_args$args;
    }
    add_header X-Frame-Options "SAMEORIGIN";
}

location /media/customer/ {
    deny all;
}

location /media/downloadable/ {
    deny all;
}

location /media/import/ {
    deny all;
}

location /media/custom_options/ {
    deny all;
}

location /errors/ {
    location ~* \.xml$ {
        deny all;
    }
}

#Cache everything by default
set $no_cache 0;

#Only cache GET requests
 if ($request_method != GET){
        set $no_cache 1;
    }
    
#Don't cache POST requests
if ($request_method = POST)
{
    set $no_cache 1;
}

#Don't cache if the URL contains a query string
if ($query_string != "")
{
    set $no_cache 1;
}

#Don't cache the following URLs
 if ($request_uri ~* "/(customer/account/login|customer/account/login/|checkout)"){
     set $no_cache 1;
 }
 
#Don't cache if there is a cookie called PHPSESSID
if ($http_cookie = "PHPSESSID")
{
    set $no_cache 1;
}
# PHP entry point for main application
location ~ ^/(index|get|info|static|errors/report|errors/404|errors/503|health_check)\.php$ {
    try_files $uri =404;
    fastcgi_pass   fastcgi_backend2;
    fastcgi_buffers 16 16k;
    fastcgi_buffer_size 32k;

    fastcgi_param  PHP_FLAG  "session.auto_start=off \n suhosin.session.cryptua=off";
    fastcgi_param  PHP_VALUE "memory_limit=4096M \n max_execution_time=18000";
    fastcgi_read_timeout 600s;
    fastcgi_connect_timeout 600s;

    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;

}

gzip on;
gzip_disable "msie6";

gzip_comp_level 6;
gzip_min_length 1100;
gzip_buffers 16 8k;
gzip_proxied any;
gzip_types
    text/plain
    text/css
    text/js
    text/xml
    text/javascript
    application/javascript
    application/x-javascript
    application/json
    application/xml
    application/xml+rss
    image/svg+xml;
gzip_vary on;

# Banned locations (only reached if the earlier PHP entry point regexes don't match)
location ~* (\.php$|\.phtml$|\.htaccess$|\.git) {
    deny all;
}
cn flag
You have commented the `root` directive. How do you expect PHP-FPM to know where to look for scripts? :-)
user3715053 avatar
cn flag
Root is set in /home/sample/public_html/nginx.conf as in this directive set $MAGE_ROOT /home/sample/public_html; include /home/sample/public_html/nginx.conf; i have update my post and added nginx.conf file.
mangohost

Post an answer

Most people don’t grasp that asking a lot of questions unlocks learning and improves interpersonal bonding. In Alison’s studies, for example, though people could accurately recall how many questions had been asked in their conversations, they didn’t intuit the link between questions and liking. Across four studies, in which participants were engaged in conversations themselves or read transcripts of others’ conversations, people tended not to realize that question asking would influence—or had influenced—the level of amity between the conversationalists.