Nginx部署、配置、安装(docker)

79 阅读1分钟

拉取镜像

docker pull nginx

创建nginx映射目录

# 存放ssl证书
mkdir -p /usr/local/nginx/cert
# 存放主配置文件
mkdir -p /usr/local/nginx/conf
touch /usr/local/nginx/conf/nginx.conf
# 存放子配置文件
mkdir -p /usr/local/nginx/conf.d
touch /usr/local/nginx/conf.d/default.conf
# 存放html项目
mkdir -p /usr/local/nginx/html
# 存放nginx日志
mkdir -p /usr/local/nginx/log

image.png

配置

在主配置中文件中

user nginx;
worker_processes auto;
​
error_log /var/log/nginx/error.log notice;
pid       /var/run/nginx.pid;
​
​
events {
   worker_connections 1024;
}
​
​
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 /var/log/nginx/access.log main;
​
   sendfile       on;
   #tcp_nopush     on;
   keepalive_timeout 65;
   
   client_max_body_size     50m;
   client_body_buffer_size 10m;   
   client_header_timeout   1m;
   client_body_timeout     1m;
   
   gzip on;
   gzip_min_length 1k;
   gzip_buffers     4 16k;
   gzip_comp_level 4;
   gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
   gzip_vary on;
​
   include /etc/nginx/conf.d/*.conf;
}

1. http

在子配置中

server {
       listen       80;
       server_name  域名;
    
       location / {
           root   /usr/local/nginx/html;
           index  index.html index.htm; 
           try_files $uri $uri/ /index.html;
      }
  }

2. https

在子配置中

server {
       listen       80;
       server_name  域名;
       rewrite ^(.*)$https://$host$1permanent;

  }
   
server {
​
       listen  443 ssl;
       server_name  域名;
​
       #ssl on;
       ssl_certificate /etc/nginx/cert/你的ssl证书.crt; 
       ssl_certificate_key /etc/nginx/cert/你的ssl证书.key; 
       ssl_session_timeout 5m;
       ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
       ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
       ssl_prefer_server_ciphers on;
​
      location / {
           root   /usr/local/nginx/html;
           index  index.html index.htm;
           try_files $uri $uri/ /index.html;
      }
​
  }

启动

docker run \
--name nginx \
--restart=always \
-p 443:443 \
-p 80:80 \
-d -v /usr/local/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /usr/local/nginx/conf.d:/etc/nginx/conf.d \
-v /usr/local/nginx/cert:/etc/nginx/cert \
-v /usr/local/nginx/html:/usr/local/nginx/html \
-v /usr/local/nginx/log:/var/log/nginx \
--privileged=true nginx