docker 启动nginx
sudo docker run –name nginx -p 89:80 -v /home/lib/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/lib/nginx/log:/var/log/nginx -v /home/lib/nginx/conf/conf.d:/etc/nginx/conf.d –restart=always -d nginx:latest 上面的命令可以启动但是无法访问,原因是conf.d文件夹下没有配置文件,只有nginx.conf,去掉conf.d之后就可以了 sudo docker run –name nginx -d -p 8700:80 -p 2600:3600 -p 2700:3700 -v /home/lib/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/lib/nginx/log:/var/log/nginx -v /home/lib/nginx/html:/usr/share/nginx/html –restart=always nginx:latest 第一个 -p 是nginx本身的端口 第二、三个 -p 是nginx代理的一个服务的端口 前面的是容器的端口后面的是容器内部nginx监听的端口 server { listen 3600; //监听的端口(既是你访问的代理端口) server_name 192.168.30.129;//你访问的地址可以是域名 charset utf-8;//字符集 location / { //前端文件放的地方,此处注意()前面是挂载的本地地址,后面是容 器内部真实路径,当你访问代理的时候容器会向()去找,经过挂载后会向宿主机 ()去找,但是配置文件里面要写容器内部的地址,配置文件时给容器内nginx使用的,所以nginx 的配置以容器内的为准,且只识别容器内的路径,若你配置()是找不到的,会报404,且日志会报 (2019/09/23 02:50:34 [error] 7#7: *1 “/home/data/dma/designer/front/index.html” is not found (2: No such file or directory), client: 192.168.30.168, server: 192.168.30.129, request: “GET / HTTP/1.1”, host: “192.168.30.129:2700”) root /usr/share/nginx/html/dma-designer; index index.html index.htm; #try_files $uri $uri/ /index.html; } location /dma/{ proxy_pass http://192.168.30.129:3600/dma/; } location /dmm_cas/ { proxy_pass http://192.168.30.72:8080/cas; } error_page 500 502 503 504 /50x.html;
location = /50x.html { root html; } } nginx.conf