質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Q&A

解決済

3回答

40727閲覧

nginx.confの設定でエラー

tixure55

総合スコア400

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

0グッド

0クリップ

投稿2015/08/16 07:30

nginxをリバースプロキシとして使うテストをしています。
nginx.confを下記のように書いたのですが、下記のようなエラーが出てしまいます。
locationディレクティブをどのように書けばnginxを起動できますでしょうか。

nginx.conf

1 2```user nginx; 3worker_processes 1; 4 5error_log /var/log/nginx/error.log warn; 6pid /var/run/nginx.pid; 7 8 9events { 10 worker_connections 1024; 11} 12 13 14http { 15 include /etc/nginx/mime.types; 16 default_type application/octet-stream; 17 18 log_format main '$remote_addr - $remote_user [$time_local] "$request" ' 19 '$status $body_bytes_sent "$http_referer" ' 20 '"$http_user_agent" "$http_x_forwarded_for"'; 21 22 access_log /var/log/nginx/access.log main; 23 24 sendfile on; 25#tcp_nopush on; 26 27 keepalive_timeout 65; 28 29#gzip on; 30 31 include /etc/nginx/conf.d/*.conf; 32 location ~ \.php$ { 33 root /var/www; 34 fastcgi_pass 127.0.0.1:9000; 35 fastcgi_index index.php; 36 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 37 include fastcgi_params; 38 } 39} 40 41 42 43nginx -t 44nginx: [alert] could not open error log file: open() "/var/log/nginx/error.log" failed (13: Permission denied) 452015/08/16 16:26:29 [warn] 10838#0: the "user" directive makes sense only if the master process runs with super-user privileges, ignored in /etc/nginx/nginx.conf:2 462015/08/16 16:26:29 [emerg] 10838#0: "location" directive is not allowed here in /etc/nginx/nginx.conf:32 47nginx: configuration file /etc/nginx/nginx.conf test failed 48

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

takotakot

2015/10/21 01:15

色々な回答がありましたので、現在の nginx.conf と、起動時の問題について、追記されると良いと思います。
guest

回答3

0

ベストアンサー

エラーメッセージから察するに、スーパーユーザーでnginxを起動できていないのではないでしょうか?

sudo nginx -t等スーパーユーザー権限で起動してみてはどうでしょうか?

投稿2015/08/16 07:34

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tixure55

2015/08/16 07:44

上記の問題は、location ~ \.php$ { root /var/www; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }の箇所を消すことで解消できたのですが、nginxをリバースプロキシで使いたい場合は、php.iniの設定でopen_dirを設定する必要があるのでしょうか。それを記述してしまうと、エラーになってしまいます。また、ポートを82番に書き換えてnginxをリブートすると、やはりfailedになってしまいます。それはどのようにすればよろしいでしょうか。
guest

0

まずは、前の方もおっしゃる通り、sudoでスーパーユーザ権限で実行されてはどうでしょうか。
権限(permission)が無く、エラーログへの書き込みが出来ないとのメッセージが解消されます。

"location" directive is not allowed here in /etc/nginx/nginx.conf:32

ですが、locationは server の中に入れ無ければなりません。
ubuntuでは nginx.confで /etc/nginx/sites-enabledホルダ以下を includeしているので、
ココに、proxy.conf等の名前で、以下のようなファイルを設置すると良いです。
そのOSそれぞれ作法がありますので、default ファイルの設置などにならって、
作成してみては如何でしょうか?
以下は、php-fpmの例です。

location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /path/to/cakephp/app/webroot$fastcgi_script_name; fastcgi_intercept_errors on; include fastcgi_params; }

投稿2015/08/16 14:02

Ken.sakanakana

総合スコア1768

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

locationserver ディレクティブの中に書く必要があります。

http://nginx.org/en/docs/http/ngx_http_core_module.html#location

恐らく /etc/nginx/conf.d/ の中に server ディレクティブが書かれているファイルがあると思うので(default.conf とか)、その中に location を書くと良いです。

投稿2015/08/16 13:45

ngyuki

総合スコア4514

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問