方法一:通過docker方式搭建
1、創建一個nginx配置文件/etc/nginx/nginx.conf
user nginx;
worker_processes 1;error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;events {worker_connections 1024;
}http {include mime.types;default_type application/octet-stream;server {listen 80;server_name localhost;root /usr/share/nginx/html;index index.html index.htm;autoindex on; # 開啟目錄列表location / {try_files $uri $uri/ =404;}}
}
請確保 server
指令在 http
塊內。其中?autoindex on; ?# 開啟目錄列表
2、運行docker的nginx把配置文件映射到容器內部
docker run --name retrievl_nginx -d \-v /path/to/your/nginx.conf:/etc/nginx/nginx.conf \-v /path/to/files:/usr/share/nginx/html \-p 9993:80 \nginx
這里的 /path/to/your/nginx.conf
是你修改后的配置文件路徑。
3、重啟 Nginx 容器:
docker restart retrievl_nginx
4、瀏覽器訪問,服務器ip:9993?
方法二:通過k3s中配置ConfigMap方式搭建
1、在對應的命名空間中創建ConfigMap文件
ConfigMap的名稱和KEY可以自定義,value的內容跟上面的通過docker方式創建的nginx.conf內容一樣。
2、通過字典的形式把ConfigMap的value內容掛載到容器中。內容作為nginx.cofig文件的內容,如下:
TIP
- 在這個例子中,我們使用 ConfigMap?nginx-config?中的 KEY nginx-conf?中的內容掛載到容器的?/etc/nginx/nginx.conf?路徑,以此替換了容器鏡像中該路徑原來的文件內容;
- 也可以將 ConfigMap 作為一個數據卷(在掛載時不指定數據卷內子路徑)掛載到容器,此時 ConfigMap 將映射成一個文件夾,每一個 KEY 是文件夾下的文件名,KEY 對應的 VALUE 是文件當中的內容。
3、配置服務的端口,因為nginx.conf文件中監聽的端口是80,所以下面TargetPort也需要填寫80
4、啟動后在瀏覽器通過服務器 ip:Nodeport 訪問
更多的ConfigMap的內容參考:
使用ConfigMap配置您的應用程序 | Kuboard