37754


nginx初心者です。

レンタルVPSでWebサイトを公開しようと、CentOS7上でnginx1.12.1を動かしています。

起動しようとすると、以下のエラーが吐かれます。

[code]

    systemd[1]: Starting nginx - high performance web server...
    nginx[4361]: nginx: [emerg] "http" directive is not allowed here in /etc/nginx/conf.d/default.conf:1
    nginx[4361]: nginx: configuration file /etc/nginx/nginx.conf test failed
    systemd[1]: nginx.service: control process exited, code=exited status=1
    systemd[1]: Failed to start nginx - high performance web server.
    systemd[1]: Unit nginx.service entered failed state.
    systemd[1]: nginx.service failed.
    
[/code]

`/etc/nginx/conf.d/default.conf`の1行目から問題があるようで、default.confは以下のように記述しました。

[code]

    http {
        server {
            listen       80;
            server_name  ドメイン；
    
            charset UTF-8;
            #access_log  /var/log/nginx/host.access.log  main;
    
            location / {
                root   /var/www/html;
                index  index.html index.htm index.php;
            }
    
            #error_page  404              /404.html;
    
            # redirect server error pages to the static page /50x.html
            #
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   /usr/share/nginx/html;
            }
    
            # proxy the PHP scripts to Apache listening on 127.0.0.1:80
            #
            #location ~ \.php$ {
            #    proxy_pass   http://127.0.0.1;
            #}
    
            # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
            #
            location ~ \.php$ {
                root           /var/www/html;
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                include        fastcgi_params;
            }
    
            # deny access to .htaccess files, if Apache's document root
            # concurs with nginx's one
            #
            #location ~ /\.ht {
            #    deny  all;
            #}
        }
        }
    
[/code]

全体的に書き方には問題ないように思えますが、起動に失敗するのはなぜでしょうか？

教えていただけると幸いです。よろしくお願いします。


CC BY-SA 3.0
2017-09-06T04:17:08.457
37748
2017-09-06T08:14:42.340
25223
question
centos nginx
nginx 起動ができない


conf.d の下のファイルを include している親ファイルがあるはずです。

たぶん /etc/nginx/nginx.conf が Include しているのではと思いますが、Include された結果 http
ディレクティブが二重に定義されてしまっているのだと思います。

したがって、default.conf を
バーチャルサーバー向けの設定に変えるか、Includeしている親ファイルの方を修正するのが良いように見受けられます。


CC BY-SA 3.0
2017-09-06T08:14:42.340
37754
2017-09-06T08:14:42.340
5008
37748
answer