Docker方式安装Nginx

安装Nginx

mkdir -p /data/docker/nginx/logs
mkdir -p /data/docker/nginx/html
docker run --network=host --restart=always --name nginx -d \
-v /data/docker/nginx/nginx.conf:/etc/nginx/nginx.conf:ro \
-v /data/docker/nginx/html:/etc/nginx/html \
-v /data/docker/nginx/logs:/var/log/nginx \
-v /data/app:/data/app \
nginx:latest

准备工作:创建目录

mkdir -p /data/docker/nginx/logs
mkdir -p /data/docker/nginx/html
​​mkdir -p​​:递归创建目录,如果父目录不存在则一并创建
​​/data/docker/nginx/logs​​:用于存储 Nginx 访问日志和错误日志的目录
​​/data/docker/nginx/html​​:用于存放网站静态文件(HTML/CSS/JS等)的目录
​​目的​​:在宿主机上创建持久化存储目录,确保容器重启后数据不丢失

Docker 运行命令详解

docker run \
  --network=host \               # 网络模式
  --restart=always \             # 重启策略
  --name nginx \                 # 容器命名
  -d \                           # 后台运行
  -v /data/docker/nginx/nginx.conf:/etc/nginx/nginx.conf:ro \  # 配置文件挂载
  -v /data/docker/nginx/html:/etc/nginx/html \                 # 网站文件挂载
  -v /data/docker/nginx/logs:/var/log/nginx \                  # 日志挂载
  -v /data/app:/data/app \                                     # 应用数据挂载
  nginx:latest                   # 使用最新版 Nginx 镜像

1. ​​网络配置​​ --network=host
使用宿主机的网络命名空间
容器直接使用宿主机的 IP 地址和端口
​​优点​​:网络性能最好,无 NAT 转换损耗
​​缺点​​:端口冲突风险(容器直接使用主机端口)
2. ​​重启策略​​ --restart=always
容器退出时自动重启
包括 Docker 服务重启后自动启动容器
确保 Nginx 服务高可用
3. ​​容器命名​​ --name nginx
将容器命名为 "nginx"
方便后续管理:docker stop nginx/docker start nginx
4. ​​后台运行​​ -d
Detached 模式(后台运行)
终端释放,不阻塞当前会话

配置文件

配置文件路径/data/docker/nginx/nginx.conf

#user  nobody;
worker_processes 2;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #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        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       80;
        server_name  localhost;
        server_tokens off;
        client_max_body_size 5g;
        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }

        location /model {
            add_header 'Access-Control-Allow-Headers' 'X-Requested-With';
            add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS';
            add_header 'Cross-Origin-Opener-Policy' 'same-origin';
            add_header 'Cross-Origin-Embedder-Policy' 'require-corp';
            add_header 'Access-Control-Allow-Origin' '*';
            add_header 'X-Frame-Options' 'ALLOWALL';
            alias html/model;
            index index.html index.htm;
        }

        location /api {
            proxy_pass http://localhost:8080;
        }

        location /psmap/web {
            alias /data/app/static/web;
            try_files $uri $uri/ /psmap/web/index.html;
            index index.html index.htm;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

angushine

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值