docker pull nginx:1.17.2
docker run -it -d --name mynginx -p 8080:80 -v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf(这个镜像内的路径的nginx.conf不能写错了) -v /home/nginx/www:/home/nginx/www(只需要映射存在的路径即可,起码在本地操作方便) --privileged --net=host(网络映射模式) nginx:1.17.2
把nginx的配置文件和web路径与本地映射一下,方便修改配置和存放项目。
本地nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 8080;
server_name localhost;
# Vue路由模式为history需添加的配置
location / {
root /home/nginx/www;
index index.html;
}
# 获取真实IP以及Websocket需添加的配置
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# 客户端Body大小限制(文件上传大小限制配置)
client_max_body_size 5m;
error_page 500 502 503 504 404 /50x.html;
location = /50x.html {
root html;
}
#php环境安装完毕之后开启这段配置
#location ~ \.php$ {
# fastcgi_pass 172.18.0.2:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /www/$fastcgi_script_name;
# include fastcgi_params;
#}
}
}
进入nginx容器命令:
docker exec -it mynginx /bin/bash
PHP安装:
docker pull php:7.1.30-fpm
docker run --name myphp7 -v /home/nginx/www:/www -d php:7.1.30-fpm
-v /home/nginx/www:/www 这个映射是为了配置nginx的时候方便,后面用得到
docker inspect --format='{{.NetworkSettings.IPAddress}}' dockerphp-fpm
查找php镜像的ip地址
nginx 配置:
location ~ \.php$ {
fastcgi_pass 172.18.0.2(这个ip要使用 docker inspect --format='{{.NetworkSettings.IPAddress}}' myphp7 查一下):9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /www/$fastcgi_script_name;
include fastcgi_params;
}
配置完毕:
docker restart mynginx
在/home/nginx/www下面放个Index.php
<?php
phpinfo();
?>