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;
        }
    }
}
相关推荐
___波子 Pro Max.2 小时前
Docker镜像和容器
docker
CodeHackerBhx2 小时前
如何使用VMware安装Linux操作系统
linux·运维·服务器
小阿轩yx2 小时前
小阿轩yx-通过state模块定义主机状态
linux·云计算·运维开发·state定义主机状态·jinja模板
Pakho love4 小时前
Linux:软件包管理器 yum和编辑器-vim使用
linux·编辑器·vim
吴半杯5 小时前
Linux-mysql5.7-mysql8.0安装包下载及安装教程,二合一
linux·运维·服务器
默行默致5 小时前
Linux 常用命令
linux·运维
码哝小鱼5 小时前
firewalld实现NAT端口转发
linux·网络
RememberLey5 小时前
【VitualBox】VitualBox的网络模式+网络配置
linux·网络·virtualbox
卡戎-caryon5 小时前
【Linux】09.Linux 下的调试器——gdb/cgdb
linux·运维·服务器·开发语言·笔记
Spring-wind6 小时前
【linux】kill命令
linux