更改Nginx官方映像的端口和文档根目录
这是我第一次接触nginx时的备忘录。
它只是在本地主机上执行简单的操作,输出“Hello, World!”。
首先,以默认状态启动容器,然后确认端口和文档根目录的设置是在哪里进行的。
如果在重新启动容器后自定义的设置得到了反映,那么修改设置后再重新启动即可。
nginx官方镜像
以默认状态启动容器。
组成
.
├── docker-compose.yaml
└── nginx
└── html
└── index.html
docker-compose.yamlを作成
version: '3'
services:
web:
image: nginx:1.20.2
volumes:
# コンテナはデフォルトのドキュメントルートを指定
- ./nginx/html:/usr/share/nginx/html
ports:
# コンテナはデフォルトのポートを指定
- "8080:80"
index.htmlを作成
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>index</title>
</head>
<body>
<p>Hello, World!</p>
</body>
</html>
启动容器
$ docker compose up -d
当访问 http://localhost:8080/ 的时候,浏览器会显示“Hello, World!”。
デフォルトの設定を確認
nginxの設定ファイルは/etc/nginx/nginx.confです。
コンテナ内で確認します。
% docker compose exec web cat /etc/nginx/nginx.conf
nginx.confからconf.d/のconfファイルがincludeされていることが分かります。
# 一部抜粋
include /etc/nginx/conf.d/*.conf;
请确认本次使用的镜像中,conf.d/目录下只有一个conf文件,默认为default.conf。请查阅内容。
$ docker compose exec web cat /etc/nginx/conf.d/default.conf
やはりdefault.confの設定がデフォルトとして反映されているようです。
listenディレクティブでポート、locationディレクティブでドキュメントルートが指定されています。
# コメント部分は削除
server {
listen 80;
listen [::]:80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
設定変更後にコンテナを起動する
更改端口和文档根目录的配置。
在主机上创建default.conf,并在容器启动时将其覆盖到容器内的default.conf,以应用配置。
构成
.
├── docker-compose.yaml
└── nginx
├── default.conf # 追加
└── html
├── index.html
└── test_index.html # 追加
创建default.conf。
指定单独的端口和文档根目录。
由于目的是进行操作验证,因此设置仅包含最基本的内容。
server {
# 10080番ポートを使用
listen 10080;
# パスに対応したドキュメントルートを設定
location / {
# ディレクトリ
root /usr/share/nginx/test_html;
# トップページ
index test_index.html;
}
}
创建一个test_index.html。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>test index</title>
</head>
<body>
<p>test Hello, World!</p>
</body>
</html>
更改docker-compose.yaml文件的设置
version: '3'
services:
web:
image: nginx:1.20.2
volumes:
# コンテナのdefault.confを上書き
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf
# コンテナのドキュメントルートを変更
- ./nginx/html:/usr/share/nginx/test_html
ports:
# コンテナのポートを変更
- "8080:10080"
重新启动容器
$ docker compose down
$ docker compose up -d
当访问localhost:8080时,在浏览器中会显示“测试 Hello, World!”。可以确认容器的default.conf文件也被主机的配置所覆盖。
$ docker compose exec web cat /etc/nginx/conf.d/default.conf
我只能提供一种中文的翻译版本:
虽然这只是基本的部分,但我已经了解到了将设置应用到系统中的机制。请参考。
请使用公关
我们正在招募与我们一起工作的伙伴。
如果你想让所有的宅男宅女幸福,务必看一下!