Linux Docker 安装Nginx

1.21、查看可用的Nginx版本

访问Nginx镜像库地址:https://hub.docker.com/_/nginx

2、拉取指定版本的Nginx镜像

docker pull nginx:latest #安装最新版

docker pull nginx:1.25.3 #安装指定版本的Nginx

3、查看本地镜像

docker images

4、根据镜像创建并运行容器

docker run -d --name=mynginx -p 8099:80 -d nginx:latest

5、安装成功:

在浏览器中访问 192.168.43.10:8099 访问Nginx页面192.168.43.10是我们虚拟机的静态IP地址

6、通过以下命令执行一个新的容器,进入正在运行的Nginx容器:

docker exec -it mynginx /bin/bash #mynginx是你nginx的容器名称

7、在容器内,使用以下命令查看Nginx版本:

命令:nginx -v #查看nginx版本

命令:exit #退出容器

8、nginx.conf的配置

javascript 复制代码
# 根据系统资源情况设置worker进程数量:这里设置为2,如果想根据系统资源情况自动设置worker进程数量:worker_processes  auto;
worker_processes  2;

# 指定错误日志的位置
error_log  logs/error.log;

# 指定 nginx 的主进程 ID 存储位置
pid        logs/nginx.pid;

# events 块定义了事件模型和连接数配置
events {
    use epoll;
    worker_connections  2048;
}

# http 块是 nginx 配置的主要部分,包含了 http 相关的配置
http {
	# 引入 mime.types 文件,该文件定义了 MIME 类型映射
    include       mime.types;
	
	# 设置默认 MIME 类型为 application/octet-stream
    default_type  application/octet-stream;
	
	# 设置日志格式 main,记录客户端访问日志
    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  logs/access.log  main;
	
	# 开启 sendfile 功能,提高文件传输性能
    sendfile        on;
	
	# 如果客户端连接非常快速,则可能启用 tcp_nopush,否则请注释掉此行
    # tcp_nopush     on;
	
	# 客户端与服务器之间的连接保持时间,超过这个时间将会自动关闭连接
    keepalive_timeout  65;
	
  # gzip压缩功能设置:如果不需要开启 gzip 压缩功能,可以将此行注释
    gzip on;
    gzip_min_length 1k;
    gzip_buffers    4 16k;
    gzip_http_version 1.0;
    gzip_comp_level 6;
    gzip_types text/html text/plain text/css text/javascript application/json application/javascript application/x-javascript application/xml;
    gzip_vary on;
​
  # http_proxy 设置
    client_max_body_size   10m;
    client_body_buffer_size   128k;
    proxy_connect_timeout   75;
    proxy_send_timeout   75;
    proxy_read_timeout   75;
    proxy_buffer_size   4k;
    proxy_buffers   4 32k;
    proxy_busy_buffers_size   64k;
    proxy_temp_file_write_size  64k;
  # 设定负载均衡后台服务器列表 
    upstream target_servers {
        server 192.168.43.218:8099;
        server 192.168.43.219:8099;
        server 192.168.43.220:8099;
    }
  # 很重要的虚拟主机配置
    server {
        listen       80;
        server_name  itoatest.example.com;
        root   /apps/oaapp;
        charset utf-8;
        access_log  logs/host.access.log  main;
        
		# 我们的静态资源一般都是css、js、html、图片、字体等资源,像这类资源请求我们可以在nginx中使用后缀匹配的方式来路由;
        # 静态资源路由
        location ~* .(css|js|html|xhtml|gif|jpg|jpeg|png|ico)$ {
            root /usr/share/nginx/html;
            index index.html index.xhtml;
        }
		# 上面我们已经把静态资源全部处理完毕,那么剩下的就是动态请求了;另外我们还需要配置nginx把该动态请求路由到哪个目标服务上去;
		# 假如我们的目标服务为http://192.168.43.8099  那么下面的代码设置为:proxy_pass http://192.168.43.8099;
		# 假如我们的目标服务为集群部署                那么下面的代码设置为:proxy_pass http://target_servers;
        # 动态请求
        location / {
            proxy_pass http://target_servers;
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Scheme $scheme;
        }
    }
}
相关推荐
一周困⁸天.5 小时前
K8s -蓝绿发布与金丝雀发布
docker·容器·kubernetes
uoscn5 小时前
Skipping xxx as repository xxxx doesn‘t support architecture ‘i386‘
linux·u-boot
大聪明-PLUS6 小时前
Docker 内部机制:深入剖析
linux·嵌入式·arm·smarc
张泽腾666 小时前
Ubuntu 扩容
linux·服务器·嵌入式硬件
轩轩Aminent6 小时前
WSL 中的 Ubuntu 系统中使用 Docker
ubuntu·docker·eureka
RedMery6 小时前
Ubuntu切换wayland和x11
linux·运维·ubuntu
程序员老赵6 小时前
TDengine Docker 容器化部署指南
docker·自动化运维
uoscn6 小时前
Ubuntu24.04无操作卡死,无法唤醒问题以及内核版本切换记录
linux·ubuntu
一个写python的菜鸟6 小时前
华为服务器安装Todesk
linux·运维·服务器
小曾同学.com6 小时前
认识Linux 的shebang行,一个特殊的注释行
linux·解释器·shebang·/usr/bin/env