Nginx

how to create Nginx

鏡像打包(A伺服器已有此鏡像,B伺服器沒有)

docker save f6d0b4767a6c > /home/Nginx/nginx.tar nginx:latest

鏡像導入(B伺服器)

docker load < nginx.tar

鏡像給予名稱與版本號

 docker tag f6d0b4767a6c nginx:latest

創建SSL資料夾,未來docker指向這些資料夾

 mkdir /etc/nginx/ssl /usr/share/nginx/html /var/log/nginx
docker run -d -p 443:443 -p 8443:8443 -p 8000-8090:8000-8090 - name nginx \ 
-v /usr/share/nginx/html:/usr/share/nginx/html \ 
-v /etc/nginx/nginx.conf:/etc/nginx/nginx.conf \ -v /var/log/nginx:/var/log/ngin 
-v /etc/nginx/ssl:/etc/nginx/ssl \ 
nginx

error_log /var/log/nginx/error.log warn;


events {
 worker_connections 1024;
}

http {
 proxy_connect_timeout 18000;
 proxy_send_timeout 18000;
 proxy_read_timeout 18000;
 send_timeout 18000;
 proxy_buffering off;
 # 設定請求內容大小無限制
 client_max_body_size 0;
 server {
 listen 443 ssl;
 server_name api.test.com;
 server_tokens off;
 ssl_certificate /etc/nginx/ssl/api.test.com.crt;
 ssl_certificate_key /etc/nginx/ssl/api.test.com.key;
 ssl_protocols TLSv1.2;
 location /\.{
 deny all;
 }
 location / {
 add_header 'Access-Control-Allow-Credentials' 'true';
 add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
 add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
 add_header 'X-Frame-Options' 'SAMEORIGIN';
 proxy_pass http://api.test.com/;
 proxy_set_header X-Real-IP remote_addr;
 proxy_set_header Host host;
 proxy_set_header X-Forwarded-For proxy_add_x_forwarded_for;
 }
 
 }
 #XXSystem API
 server {
 listen 8088 ssl;
 server_name api.test.com;
 server_tokens off;
 ssl_certificate /etc/nginx/ssl/api.test.com.crt;
 ssl_certificate_key /etc/nginx/ssl/api.test.com.key;
 ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
 location / {
 proxy_pass http://api.test.com:8087/; 
 }
 }
 
 
 #tcp_nopush on;

 keepalive_timeout 65;

 #gzip on;

 include /etc/nginx/conf.d/*.conf;

}

Nginx端口不可與現有重複 端口使用查詢 sudo netstat -plant grep 443 sudo netstat -plant grep 80