nginx 的安裝
mkdir /usr/local/docker
cd /usr/local/docker
docker run --name nginxtest -d nginx #運行一個測試的nginx
docker cp nginxtest:/etc/nginx ./ #把容器里的nginx的目錄復制
docker rm -f nginxtest #刪除測試的nginx-test
復制出來的nginx目錄結構
#復制出來的nginx目錄結構
[root@localhost docker]# tree nginx
nginx
├── conf.d
│ └── default.conf
├── fastcgi_params
├── koi-utf
├── koi-win
├── logs
│ ├── access.log
│ ├── error.log
│ ├── gin.haimait.com.access.log
│ ├── gin.haimait.com.error.log
│ ├── localhost.access.log
│ └── localhost.error.log
├── mime.types
├── modules -> /usr/lib/nginx/modules
├── nginx.conf
├── scgi_params
├── uwsgi_params
└── win-utf
運行mynginx容器
#運行mynginx 掛載到/wwwroot是為了保持容器和宿主機目錄一致,以免配置時出錯
docker run \
--name mynginx \
-p 8081:80 \
-p 443:443 \
-v /etc/localtime:/etc/localtime:ro \
-v /wwwroot:/wwwroot \
-v $PWD/nginx:/etc/nginx \
-v $PWD/nginx/logs:/var/log/nginx \
--restart always \
-d nginx
編寫默認的配置文件
vim $PWD/nginx/conf.d/default.conf
把內容換下面的內容
server {
listen 80;
server_name localhost;
access_log /var/log/nginx/localhost.access.log;
error_log /var/log/nginx/localhost.error.log;
# 配置前端靜態文件目錄
location / {
root /wwwroot/html;
index index.html index.htm index.php;
}
#location ~ \.php$ {
# fastcgi_pass myphp73-fpm:9000; #myphp73-fpm容器的名字
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
# include fastcgi_params;
#}
# 配置后台go服務api接口服務 代理到8877端口
#location ~ ^/goadminapi/ {
# 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;
# rewrite ^/goadminapi/(.*)$ /$1 break;
# proxy_pass http://127.0.0.1:8877;
# }
}
配置一個域名也指向到/wwwroot/html目錄 確定你的域名已經解析到服務器的ip上了
vim $PWD/nginx/conf.d/gin.haimait.com.conf
內容如下:
server {
listen 80;
server_name gin.haimait.com;
access_log /var/log/nginx/gin.haimait.com.access.log;
error_log /var/log/nginx/gin.haimait.com.error.log;
# 配置前端靜態文件目錄
location / {
root /wwwroot/html;
index index.html index.htm index.php;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
#location ~ \.php$ {
# fastcgi_pass myphp73-fpm:9000; #myphp73-fpm容器的名字
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
# include fastcgi_params;
#}
# 配置后台go服務api接口服務 代理到8877端口
#location ~ ^/goadminapi/ {
# 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;
# rewrite ^/goadminapi/(.*)$ /$1 break;
# proxy_pass http://127.0.0.1:8877;
# }
}
重啟nginx
docker restart mynginx
新建index.html
mkdir /wwwroot/html
vim /wwwroot/html/index.html
內容如下:
hello nginx , html
測試
以下說明都已經配置成功了
[root@localhost ~]# curl localhost:8081
hello nginx , html
[root@localhost ~]# curl gin.haimait.com:8081
hello nginx , html
瀏覽器訪問
刪除nginx容器重啟容器,wwwroot里的內容也不會丟
到此已經完成安裝
設置開機自動啟動容器
在運行docker容器時可以加如下參數來保證每次docker服務重啟后容器也自動重啟:
docker run --restart=always CONTAINER ID
如果已經啟動了則可以使用如下命令:
docker update --restart=always CONTAINER ID #設置啟動nginx時自動啟動
docker update --restart=no CONTAINER ID #設置啟動nginx時不啟動
[root@localhost www]# docker update --restart=always nginx
nginx