docker安装nginx 1.27.1

本文介绍用docker安装nginx 1.27.1供大家参考

拉取镜像

(具体版本可以去docker hub查找需要的版本,以下以1.27.1为例)

docker pull nginx:1.27.1

拉取后查看镜像

docker images

创建nginx.conf

创建nginx.conf文件放在主机/docker-nginx/conf/下面。不然后面启动docker容器的话会找不到文件挂载启动失败。

# (如下配置中 如果要改成ip访问就要把default.conf配置中的第一个server去掉 还有就是吧域名换成ip)

#主模块指令,指定Nginx Worker进程运行用户以及用户组
#user  nginx;
#主模块指令,指定Nginx要开启的进程数,建议设置成和cpu的数量相等
worker_processes  1;

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

#pid        logs/nginx.pid;

#事件指令,设定Nginx的工作模式及连接数上限
events {

    #指定Nginx的工作模式;Nginx工作模式:select、poll、kqueue、epoll、rtsig和/dev/poll
    #use  epoll; #epoll工作模式是首选

    #定义Nginx每个进程的最大连接数,默认是1024
    worker_connections  1024;
}


#HTTP服务器配置
http {

    include       /etc/nginx/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;

    include /etc/nginx/conf.d/*.conf; #注意:记得写镜像对应的路径
}

创建并运行容器 

mkdir -p /docker-nginx/{conf,conf.d,html,logs,ssl}

docker run \
--name nginx-container \
-p 80:80 \
-p 443:443 \
-v /docker-nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /docker-nginx/conf.d:/etc/nginx/conf.d \
-v /docker-nginx/html:/usr/share/nginx/html \
-v /docker-nginx/logs:/var/log/nginx \
-v /docker-nginx/ssl:/etc/nginx/ssl \
--privileged=true \
-d \
nginx:1.27.1

这个时候nginx就启动成功了,但是不能访问,要配置访问端口服务

新建default.conf

新建default.conf文件放在主机/docker-nginx/conf.d目录下:

#server虚拟主机配置
server {

     #监听端口号
     listen 80;
     #域名:可有多个   支持种类:通配符名称、正则表达式名称、IP、localhost
     server_name  www.xxxxx.asia www.xxxxx.asia;

     #charset koi8-r;

     #access_log  logs/host.access.log  main;

     #rewrite ^(.*)$  https://$host$1 permanent; # 强制https

     #location URL匹配配置
     #配置根目录转发到本机目录位置
     location / {
	root   /usr/share/nginx/html; #注意:记得写镜像对应的路径,可别写卷物理路径
         index  index.html;
     }

    #开启error_page
    error_page  404 /404.html;
    
    location = /404.html {
        root /usr/share/nginx/html;  # 在此目录下添加自定义的404.html
    }
    
    location ~ .*\.(gif|jpg|jpeg|png)$ {
           root /usr/share/nginx/html;
    }

}

重启容器生效

docker restart nginx-container

这就可以访问http://localhost/

配置SSL https

把证书www.xxxxx.asia.pem和www.xxxxx.asia.key文件放在主机/Users/neter/Desktop/docker-nginx/ssl目录下:

在default.conf中加入

server {
    listen 443 ssl;

    server_name  www.xxxxx.asia www.xxxxx.asia;    #域名

    # 增加ssl (默认会添加 /etc/nginx/ )
    ssl_certificate ssl/www.xxxxx.asia.pem;
    ssl_certificate_key ssl/www.xxxxx.asia.key;

    ssl_session_cache    shared:SSL:1m;
     ssl_session_timeout  5m;

    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers  on;

    add_header 'Access-Control-Allow-Origin' '*';
    #允许跨域请求的方法
    add_header 'Access-Control-Allow-Methods' 'GET,POST,PUT,DELETE,OPTIONS';

    #允许跨域请求的头字段
    add_header 'Access-Control-Allow-Headers' 'Content-Type, Authorization';
    #允许在预检请求中携带凭据(例如,cookie)
    add_header 'Access-Control-Allow-Credentials' 'true';
    #预检请求的有效期(以秒为单位)
    add_header 'Access-Control-Max-Age' '3600';

    location / {
    root   /usr/share/nginx/html; #注意:记得写镜像对应的路径,可别写卷物理路径
        index  index.html;
    }

}

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

neter.asia

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

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

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

打赏作者

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

抵扣说明:

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

余额充值