利用docker容器技术,可以让我们很方便的搭建服务,完全可以用“招之即来,挥之即去”形容。比如搭建网站,需要建立3个容器:nginx、php、mysql,通过docker技术安装这个三服务都是分分钟的事,如果自行编译,需要的时间就非常多了。
和传统的LNMP环境相比,使用容器服务如何配置多个虚拟主机呢?这个也很简单,本着一个容器提供一个服务的原则,我安装了nginx、php、mysql这3个容器。下面我就说一下配置。
1、nginx容器打开了端口:-p 80:80和-p 443:443,该容器名为nginx;
2、mysql容器打开了端口:-p 3306:3306,该容器名为mysql;
3、php容器打开了端口:-p 9000:9000,该容器名为php;
4、最关键的就是配置nignx网站文件了,在配置文件目录内新建1个虚拟主机的配置文件:yourname.conf,我写的配置内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| server { listen 80; server_name www.yourdomain.com; return 301 https://www.yourdomain.com$request_uri; }
server { listen 443 ssl http2; server_name www.yourdomain.com;
ssl_certificate /etc/nginx/SSL/yourdomain.cer; ssl_certificate_key /etc/nginx/SSL/yourdomain.key; ssl_session_timeout 5m; ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; ssl_ciphers HIGH:!aNULL:!MD5; ssl_session_cache builtin:1000 shared:SSL:10m;
client_max_body_size 128M;
location / { root /usr/share/nginx/html/website; index index.html index.php; }
location ~ [^/]\.php(/|$) { root /var/www/html/website; fastcgi_pass php:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www/html/website$fastcgi_script_name; include fastcgi_params; }
access_log /var/log/nginx/website.log; }
|
注意:建立容器时,宿主主机的web目录请同时挂载到php容器和nginx容器的web目录,这样在宿主主机中修改网站文件会同时同步到php容器和nginx容器中。