nginxコンテナ設定ファイルの独立した実装

nginxコンテナ設定ファイルの独立した実装

コンテナを作成する

[root@server1 ~]# docker run -it --name nginx1 -v /opt/data/web2:/web -p 81:80 centos:latest /bin/bash
[ルート@608de4875036 /]#

Webディレクトリに入り、nginxパッケージをダウンロードします

[root@608de4875036 web]# wget http://nginx.org/download/nginx-1.20.1.tar.gz

ディレクトリを解凍する

[root@608de4875036 ウェブ]# ls
nginx-1.20.1 nginx-1.20.1.tar.gz

依存パッケージをインストールする

[root@608de4875036 web]# yum -y インストール pcre-devel openssl openssl-devel gd-devel gcc gcc-c++ make
[root@608de4875036 web]# yum -y groups mark install '開発ツール'

ユーザーを作成

[root@608de4875036 web]# useradd -r -M -s /sbin/nologin nginx
[root@608de4875036 web]# id nginx
uid=998(nginx) gid=996(nginx) グループ=996(nginx)

ログ保存ファイルアドレスを作成する

[root@6ad47178bdd6 web]# mkdir ログ

コンパイルしてインストールする

[root@608de4875036 ウェブ]# ls
ログ nginx-1.20.1 nginx-1.20.1.tar.gz
[root@608de4875036 web]# cd nginx-1.20.1
[root@608de4875036 nginx-1.20.1]# ls
自動設定 html README
変更 ライセンス src を構成する
CHANGES.ru 貢献者

[root@608de4875036 nginx-1.20.1]# ./configure \
--prefix=/web/nginx \
--user=nginx \
--group=nginx \
--デバッグあり\
--http_ssl_module \ で始まる
--http_realip_module \ で始まる
--http_image_filter_module \ で始まる
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_stub_status_module \
--http-log-path=/web/log/access.log \
--error-log-path=/web/log/error.log

[root@608de4875036 nginx-1.20.1]# make && make install

カタログを見る

[root@6ad47178bdd6 ウェブ]# ls
ログ nginx nginx-1.20.1 nginx-1.20.1.tar.gz


[root@608de4875036 web]# cd nginx
[root@608de4875036 nginx]# ls
conf html ログ sbin

環境変数の設定

[root@608de4875036 nginx]# ls
conf html ログ sbin
[root@608de4875036 nginx]# cd sbin/
[root@608de4875036 sbin]# ls
nginx
[root@608de4875036 sbin]# pwd
ウェブサーバ

[root@608de4875036 sbin]# echo "export PATH=/web/nginx/sbin:\$PATH" > /etc/profile.d/nginx.sh
[root@608de4875036 sbin]# ソース /etc/profile.d/nginx.sh
[root@608de4875036 sbin]# どのnginx
nginx の sbin ディレクトリに、

サービスを開始する

[root@608de4875036 sbin]# ss -antl
状態 受信Q 送信Q ローカルアドレス:ポート ピアアドレス:ポート プロセス         
聞く 0 128 0.0.0.0:80 0.0.0.0:*   

コンテナ上のサービスを表示する

[root@608de4875036 ウェブ]# ls
nginx nginx-1.20.1 nginx-1.20.1.tar.gz
[root@608de4875036 web]# cd nginx
[root@608de4875036 nginx]# ls
client_body_temp html sbin
conf ログ scgi_temp
fastcgi_temp プロキシー_temp uwsgi_temp

ホストマシンで表示

[root@server1 ~]# cd /opt/data/
[root@server1 データ]# ls
ウェブ1 ウェブ2
[root@server1 データ]# cd web2
[root@server1 web2]# ls
ログ nginx nginx-1.20.1 nginx-1.20.1.tar.gz

[root@server1 web2]# cd nginx
[root@server1 nginx]# ls
client_body_temp html sbin
conf ログ scgi_temp
fastcgi_temp プロキシー_temp uwsgi_temp

データが同期されたことがわかります

ホスト上の構成ファイルを変更する

xyという名前のディレクトリを作成し、ゲームコードをこのディレクトリにコピーします。

[root@server1 html]# パスワード
/opt/data/web2/nginx/html
[root@server1 html]# mkdir yx
[root@server1 html]# cd yx
[root@server1 yx]# ls
画像 index.html js

ディレクトリテストを作成する

[root@server1 html]# mkdir テスト
[root@server1 html]# ls
[root@server1 html]# ls
50x.html index.html テスト yx
[root@server1 html]# mv 50x.html index.html test/
[root@server1 html]# ls
テストyx

nginx.conf設定ファイルを変更する

[root@server1 conf]# vi nginx.conf

........

    サーバー{
         8080を聴く;
         サーバー名 test.example.com;

         位置 / {
             root /web/nginx/html/test; #コンテナ内のファイルアドレス index index.html index.htm;
         }
    }

   サーバー{
        聞く 80;
        サーバー名 xy.example.com;

        #文字セット koi8-r;

        #access_log ログ/host.access.log メイン;

        位置 / {
            root /web/nginx/html/yx; #コンテナ内のファイルアドレス index index.html index.htm;
        }
.....

しかし、この変更には問題があります。 1 つのポートのみがマップされ、他のポートはマップされません。

[root@server1 conf]# docker ポート 608de4875036
80/tcp -> 0.0.0.0:81
80/TCP -> :::81

どうすれば解決できますか?

このコンテナを削除する

[root@server1 ~]# docker stop 608de4875036
608de4875036
[root@server1 ~]# docker rm 608de4875036
608de4875036

ここのデータはまだホストマシン上に残っています

[root@server1 web2]# ls
ログ nginx nginx-1.20.1 nginx-1.20.1.tar.gz

このディレクトリをコンテナマッピングとして再作成します

[root@server1 ~]# docker run -it --name nginx2 -v /opt/data/web2:/web -p 80:80 -p 8080:8080 centos:latest /bin/bash
[ルート@6ad47178bdd6 /]#

ホストマシンで表示

[root@server1 ~]# docker ps
コンテナID イメージ コマンド 作成ステータス ポート名
6ad47178bdd6 centos:latest "/bin/bash" 23 秒前 22 秒前にアップ 0.0.0.0:80->80/tcp、:::80->80/tcp、0.0.0.0:8080->8080/tcp、:::8080->8080/tcp nginx2
[root@server1 ~]# docker ポート 6ad47178bdd6
80/tcp -> 0.0.0.0:80
80/tcp -> :::80
8080/tcp -> 0.0.0.0:8080
8080/tcp -> :::8080

コンテナ内でデータが同期されているかどうかを確認する

[root@6ad47178bdd6 /]# ls
bin ホーム lost+found opt 実行 sys var
dev lib メディア proc sbin tmp web
など lib64 mnt ルート srv usr
[root@6ad47178bdd6 /]# cd web/
[root@6ad47178bdd6 ウェブ]# ls
nginx nginx-1.20.1 nginx-1.20.1.tar.gz
[root@6ad47178bdd6 web]# cd nginx
[root@6ad47178bdd6 nginx]# ls
client_body_temp html sbin
conf ログ scgi_temp
fastcgi_temp プロキシー_temp uwsgi_temp
#データ同期

サービスを開始する

#環境変数を記述する [root@6ad47178bdd6 /]# cat /etc/profile.d/nginx.sh 
PATH=/web/nginx/sbin:$PATH をエクスポートします
#nginxユーザーを作成 [root@6ad47178bdd6 /]# useradd -r -M -s /sbin/nologin nginx
[ルート@6ad47178bdd6 /]# nginx
[root@6ad47178bdd6 /]# ss -antl
状態 受信Q 送信Q ローカルアドレス:ポート ピアアドレス:ポート プロセス         
聞く 0 128 0.0.0.0:80 0.0.0.0:*                            
聞く 0 128 0.0.0.0:8080 0.0.0.0:*   

192.168.244.145:80 にアクセス

ここに画像の説明を挿入

192.168.244.145:8080にアクセスしてください

ここに画像の説明を挿入

独立した nginx コンテナ設定ファイルの実装に関するこの記事はこれで終わりです。関連する独立した nginx コンテナ設定ファイルの詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Nginx 設定ファイルの詳細な説明と最適化の提案ガイド
  • nginx 設定ファイルパスとリソースファイルパスを表示する方法
  • Nginx設定ファイルの詳細な説明
  • nginx設定ファイルの解釈の詳細な説明
  • Nginx 静的ファイル サービスの構成と最適化の詳細な説明

<<:  MySQLの整数および文字列インデックスの無効化または暗黙的な変換に関する簡単な説明

>>:  便利で使いやすいウェブアプリケーションを設計するための 10 のヒント

推薦する

Linux TTY/PTS の違いの概要

キーボードで文字を入力すると、対応するプロセスにどのように送信されるのでしょうか? ps や who...

柔軟で安定した高品質の HTML および CSS コード標準を作成するためのガイド

黄金律常に同じコーディング標準セットに従ってください。同じプロジェクトに何人の人が関わっているかに関...

外部キー制約を持つテーブルデータを削除する MySQL メソッドの紹介

MySQLでテーブルやデータを削除する場合、 [エラー] 1451 - 親行を削除または更新できませ...

MySQLトリガーの使用例の詳細

MySQL トリガー構文の詳細: トリガーは、特定のテーブル内のデータが挿入、削除、または更新される...

Facebook によるインターネット サービスのほぼ完璧な再設計

<br />出典: http://www.a-xuan.cn/?p=197 先ほどFac...

MySQL インデックスの正しい使い方とインデックスの原理の詳細な説明

1. はじめになぜインデックスが必要なのでしょうか?一般的なアプリケーション システムでは、読み取り...

docker compose を使用してハーバープライベートウェアハウスをインストールする詳細なチュートリアル

概要港とは何ですか?英語の単語の意味は「港」です。 Harborはコンテナ(貨物)を保管するために使...

VueはCanvasを使用してランダムなサイズで重なり合わない円を生成します

目次キャンバス関連文書エフェクト画像表示ケースの完全なコード親コンポーネントコードサブコンポーネント...

Vue3 における親コンポーネントと子コンポーネント間の値の転送の詳細な説明

vue3 が誕生してからかなり時間が経ち、筆者も最近になって vue3 を学び始めました。 vue2...

CSS マスクを使用して PNG 画像のサイズを大幅に最適化します (推奨)

この記事は共有および集約することを歓迎します。全文を転載する必要はありません。著作権を尊重してくださ...

Mysql SQL ステートメントのコメント

MySQL SQL ステートメントにコメントを追加できます。MySQL SQL ステートメントのコメ...

Vueは物流タイムライン効果を実現します

この記事では、物流タイムライン効果を実現するためのVueの具体的なコードを例として紹介します。具体的...

echarts と vue.js を統合する際に発生するいくつかの問題の概要

序文現在、私は Beetlex のデータ分析プラットフォームに取り組んでいます。この製品の開発では、...

MySQLのパスワードを忘れた場合の対処方法

MySQL パスワードを忘れた場合の解決策: [root@localhost ~]# mysql -...

Linux で g++ を使用してプログラムをコンパイルする際の -I (大文字の i)、-L (大文字の l)、-l (小文字の l) の機能の詳細な説明

初心者の Linux ユーザーとして、私は単純なgcc/g++操作を何度も使用してきましたが、少し複...