docker部署安装Nginx
前言
Nginx是一个高性能的HTTP和反向代理web服务器,同事也提供了IMAP/POP3/SMTP服务。
特点:
- 轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器
- 占用内存少
- 并发能力强
应用
动静分离
Nginx可以作为静态web服务器来部署静态资源,包含一些常见的html页面、css文件、js文件、图片等。动静分离是将动态内容例如php、jsp等转发到tomcat等容器服务上,将静态内容例如html、图片就直接访问。
反向代理
反向代理服务器位于用户和目标服务器之间,对于用户而言,反向代理服务器相当于目标服务器,用户只需要访问反向代理服务器,反向代理服务器负责将用户请求转发给目标服务器,保护了真实的目标服务器。
负载均衡
避免单独一个服务器压力过大导致服务崩溃,Nginx需要将不同用户的请求转发给不同的服务器,包装集群里面的每一台服务器都能正常运作。主要有轮询(默认)、权重(weight,加权轮询)、ip_hash等。
安装步骤
查询镜像
docker search nginx
拉取镜像
docker pull nginx
创建文件夹
mkdir -p /usr/services/docker/nginx/conf.d
mkdir -p /usr/services/docker/nginx/log
mkdir -p /usr/services/docker/nginx/html
创建配置文件
touch nginx.conf
启动
docker run --restart unless-stopped --name nginx -p 80:80 -p 8080:8080 -p 8081:8081 -v /usr/services/docker/nginx/nginx.conf:/etc/nginx/nginx.conf:ro -v /usr/services/docker/nginx/conf.d:/etc/nginx/conf.d:ro -v /usr/services/docker/nginx/html:/usr/share/nginx/html:ro -v /usr/services/docker/nginx/log:/var/log/nginx -d nginx
解释:
-p 指定多个端口
:ro 表示只读
扩展
-
使用allow和deny允许或者禁止某个ip访问是,docker部署使用桥接网络只会获取到docker宿主机的ip,所以无法对ip进行过滤,使用host网络模式可以解决该问题。
-
nginx.conf文件
# For more information on configuration, see: # * Official English Documentation: http://nginx.org/en/docs/ # * Official Russian Documentation: http://nginx.org/ru/docs/ user nginx; worker_processes auto; error_log /var/log/nginx/error.log; pid /run/nginx.pid; # Load dynamic modules. See /usr/share/nginx/README.dynamic. include /usr/share/nginx/modules/*.conf; events { worker_connections 1024; } http { 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; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; # Load modular configuration files from the /etc/nginx/conf.d directory. # See http://nginx.org/en/docs/ngx_core_module.html#include # for more information. include /etc/nginx/conf.d/*.conf; }
-
default.conf
server { listen 80; server_name localhost; #charset koi8-r; #access_log /var/log/nginx/host.access.log main; location / { root /usr/share/nginx/html; index index.html index.htm; } location /api{ proxy_pass http://ip:port/api; # access_log "logs/test.log"; } }
关注微信公众「平哥技术站」, 每日更新,在手机上阅读所有教程,随时随地都能学习。
觉得写的还不错的小伙伴,请作者喝杯咖啡☕ ,支持一下。😊
如有侵权请立即与我们联系,我们将及时处理,联系邮箱:865934097@qq.com。
评论区