docker部署安装Nginx

  • docker部署安装Nginx已关闭评论
  • 128 次浏览
  • A+
所属分类:linux技术
摘要

Nginx是一个高性能的HTTP和反向代理web服务器,同事也提供了IMAP/POP3/SMTP服务。


docker部署安装Nginx

前言

Nginx是一个高性能的HTTP和反向代理web服务器,同事也提供了IMAP/POP3/SMTP服务。

特点:

  1. 轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器
  2. 占用内存少
  3. 并发能力强

应用

动静分离

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 表示只读

扩展

  1. 使用allow和deny允许或者禁止某个ip访问是,docker部署使用桥接网络只会获取到docker宿主机的ip,所以无法对ip进行过滤,使用host网络模式可以解决该问题。

  2. 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;  } 
  3. 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"; }  } 

如有侵权请立即与我们联系,我们将及时处理,联系邮箱:[email protected]

原文链接:https://monkey.blog.xpyvip.top/archives/docker部署安装nginx