1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Ubuntu22.04 nginxを設定する nginx+gunicorn+Django

Last updated at Posted at 2022-08-14

概要

リモートサーバのUbuntu22.04にインストールしたnginx1.22.0をgunicornと連携できるように設定します。さらに、Django+DRFのAPIサーバへの連携も行い、作業用PCのブラウザからアクセスできるようにします。nginx、gunicornはインストール済み、Django+DRFのAPIサーバは完成済みの状態です。

環境(開発環境)
Ubuntu22.04 IP 192.168.88.15
作業用PC Windows10 Pro IP 192.168.88.1
nginx 1.22.0 ポート80番
gunicorn 20.1.0
Python 3.10.6
Django 3.2.15 ポート8000番
DRF 3.13.1

設定するにあたって

ubuntu標準ではなくリポジトリ追加してnginxをインストールしたので、参考にさせてもらった情報とは/etc/nginx内のファイル・フォルダ構成が違いました。具体的には、sites-availableやsites-enabledフォルダがなく、proxy_paramsファイルがありませんでした。こちらのページを見させていただき、違うことに気づきました。

そこで、nginxのメインの設定ファイル(/etc/nginx/nginx.conf)を見ると、

/etc/nginx/nginx.conf 抜粋
include /etc/nginx/conf.d/*.conf;

と記述があり、デフォルトでは/etc/nginx/conf.dフォルダ内の.confファイルを読む設定になっていました。/etc/nginx/nginx.confにinclude /etc/nginx/sites-enabled/*;を追記して、sites-availableやsites-enabledフォルダなどをmkdirで作成する方法もありましたが、デフォルトの方法で進めようと思います。

/etc/nginx/conf.dフォルダ内に.confファイルを作成して、80番ポートへのアクセスをソケットに投げるの内容などを設定ファイルに書いていきます。もともとあった/etc/nginx/conf.d/default.confはバックアップを取って消しました。

設定

/etc/nginx/conf.dにnginxの設定ファイル(apitest.conf)を作成します。

$ sudo nano /etc/nginx/conf.d/apitest.conf
/etc/nginx/conf.d/apitest.conf
server {
    listen 80;
    server_name 192.168.88.15;

    location = /favicon.ico { access_log off; log_not_found off; }
    location /static/ {
        root /home/lustm5/solution;
    }

    location / {
        proxy_set_header Host $http_host;
        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 $scheme;
        proxy_pass http://unix:/run/gunicorn.sock;
    }
}

nginxとgunicornを再起動します。

$ sudo systemctl restart nginx
$ sudo systemctl restart gunicorn

nginxがエラーで再起動できない場合は、以下のコマンドで原因を探ります。

$ sudo systemctl status nginx

ufwのポート80を開けます。

$ sudo ufw allow 80

確認

ブラウザで192.168.88.15と入力してアクセス。無事表示されました。
image.png
管理サイトの表示が崩れてしまっているので、今後設定ファイルを書き換えて直します。
image.png

さいごに

一旦連携して動かせるようになりました。次は、管理サイトとの表示の件もあるのでnginxの設定ファイルをもう少し書き換えて本番環境に近づけていきたいと思います。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?