Nginx 配置问题

Nginx 配置问题

我在使我的 Nginx 网站正确显示方面遇到了很多麻烦。

我一直收到404错误,现在我又收到一个Connection Refused错误。

这是我的Nginx配置

user www-data;
worker_processes auto;
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;
        server_names_hash_bucket_size 64;
        include /etc/nginx/mime.types;
        default_type application/octet-stream;

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
        ssl_prefer_server_ciphers on;

        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/*;
}

它包含另外两个文件夹,配置文件为空,并且已启用站点包括指向我的 Vhost 配置的符号链接,如下所示。

server {
        listen 80;
        listen [::]:80;
    root /var/www/subdomain.mydomain.com;
    index index.php;
    server_name subdomain.mydomain.com www.subdomain.mydomain.com;

    location / {
       try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
           try_files $uri =404;
           fastcgi_pass unix:/run/php/php7.0-fpm.sock;
           fastcgi_index index.php
           fastcgi_param SCRIPT_FILENAME$document_root$fastcgi_script_name;
           include fastcgi_params;
    }

    location ~/\.ht {
            deny all;
    }
}

引用的文件夹确实存在,并且包含索引.php文件现在只回显一个字符串。

nginx 错误日志仅显示以下内容:

2016/11/24 22:35:40 [notice] 8834#8834: signal process started
2016/11/24 22:38:30 [notice] 8890#8890: signal process started
2016/11/24 23:13:48 [notice] 10108#10108: signal process started
2016/11/24 23:14:16 [notice] 10141#10141: signal process started

PHP-FPM已安装,并且 sock 存在于指定的目录中,并且 FPM 实际上正在运行,无论哪种方式似乎都不是PHP问题。

这使得配置本身或权限也许?

就像我说的,我的项目位于 /var/www 目录中

许可如下

drwxr-sr-x 2 www-data www-data 4096 Nov 24 23:31 subdomain.mydomain.com

其中的索引文件:

-rw-rw-r-- 1 myusername www-data 25 Nov 24 23:50 index.php

这些网站在 AWS 实例中运行。我已在安全组中允许使用端口 80,并且设置为允许从任何地方进行访问。

如果有人能帮助我,我将非常感激,因为我已经花了第三个小时试图解决这个问题...... :(

答案1

您不需要try_files在您的location ~ \.php$部分中执行此操作。您只需将处理直接传递给那里的 PHP-FPM 进程即可。

答案2

终于弄明白了...我在 Ubuntu 中为 sites-enabled 文件夹创建了错误的符号链接。

我记不清我做错了什么,但当它说你没有权限编辑它(即使使用 sudo)时,这就是符号链接错误的明显迹象。如果发生这种情况,则说明你的符号链接错误,你需要重新创建它,否则你的网站将无法正常工作。

我希望我的错误将来能对某些人有所帮助,谢谢大家的帮助:)

相关内容