@adonia
2018-05-25T06:17:01.000000Z
字数 2192
阅读 168
nginx
docker pull nginx
;下载完成后,通过docker images
查看镜像docker run -d -p 8080:80 --rm nginx
;启动完成后,通过docker ps -a
查看。
➜ nginx docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6693be7a2d81 nginx "nginx -g 'daemon ..." 5 minutes ago Up 5 minutes 0.0.0.0:8080->80/tcp sad_allen
Tips: 启动完成后,可以在浏览器中访问
http://localhost:8080
检测服务启动是否正常。
为了方便配置nginx,需要把nginx的配置暴露在docker容器之外。
* 首先,将容器中的配置拷贝至本地:docker cp 6693be7a2d81:/ect/nginx /Users/adonia/workspace/nginx
;拷贝完成后,在/Users/adonia/workspace/nginx
目录下,会多出个nginx
目录,重命名为conf
。其下即为nginx
的配置文件。
➜ nginx ll conf
total 72
drwxr-xr-x 3 adonia staff 96 4 30 21:55 conf.d
-rw-r--r-- 1 adonia staff 1007 4 10 00:01 fastcgi_params
-rw-r--r-- 1 adonia staff 2837 4 10 00:01 koi-utf
-rw-r--r-- 1 adonia staff 2223 4 10 00:01 koi-win
-rw-r--r-- 1 adonia staff 5170 4 10 00:01 mime.types
lrwxr-xr-x 1 adonia staff 22 5 22 00:12 modules -> /usr/lib/nginx/modules
-rw-r--r-- 1 adonia staff 643 4 10 00:01 nginx.conf
-rw-r--r-- 1 adonia staff 636 4 10 00:01 scgi_params
-rw-r--r-- 1 adonia staff 664 4 10 00:01 uwsgi_params
-rw-r--r-- 1 adonia staff 3610 4 10 00:01 win-utf
配置文件入口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 /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
三个需要定制化的配置:
1. nginx的配置文件目录(/etc/nginx -> /Users/adonia/workspace/nginx/conf)
2. nginx的日志目录(/var/log/nginx -> /Users/adonia/workspace/nginx/log)
3. nginx的静态文件目录(/usr/share/nginx/html -> /Users/adonia/workspace/nginx/html)
Tips: 需手动创建三个目录。
docker stop 6693be7a2d81
,由于启动参数中增加了--rm
,停止容器之后,容器文件即被删除。
docker run --rm -d -p 8080:80 --volume $PWD/conf:/etc/nginx --volume $PWD/log:/var/log/nginx --volume $PWD/html:/usr/share/nginx/html nginx
<html>
<body>
<h3>hello world!</h3>
</body>
</html>
在浏览器中访问localhost:8080
,就应该显示新的页面内容了。
为了验证可在外部定制化nginx配置,将/Users/adonia/workspace/nginx/conf/nginx.conf
中的error_log
的级别由warn
改成debug
。重载nginx: docker exec d4a0d0ff5d05 nginx -s reload
。重载成功后,通过查看/Users/adonia/workspace/nginx/log/error.log
验证。