lqshow / notes

Cheat Sheet
10 stars 2 forks source link

Nginx 相关 #34

Open lqshow opened 6 years ago

lqshow commented 6 years ago

安装 Nginx

CentOS

# 安装
yum -y install nginx

# 查看 Nginx 版本号
nginx -v

# 启动
nginx

Docker

  1. docker run

    docker run -d \
    --name nginx \
       -p 8080:80 \
       -p 8081:8081 \
       -p 8082:8082 \
       -v ~/workspace/docker/nginx/conf.d:/etc/nginx/conf.d \
       -v ~/workspace/docker/nginx/www:/usr/share/nginx/html \
       -v ~/workspace/docker/nginx/log:/var/log/nginx \
       nginx:latest
  2. docker-compose

    version: '2'
    services:
     nginx:
       image: nginx:latest
       restart: unless-stopped
       network_mode: host
       volumes:
         - ~/workspace/docker/nginx/conf.d:/etc/nginx/conf.d
         - ~/workspace/docker/nginx/www:/usr/share/nginx/html
         - ~/workspace/docker/nginx/log:/var/log/nginx
       ports:
         - "8080:80"
         - "8081:8081"
         - "8082:8082"
    # 执行
    docker-compose up

关于目录文件

目录 说明
/usr/share/nginx/html 默认网页目录
/etc/nginx/nginx.conf 默认配置
/var/log/nginx 日志目录

常用命令

# 测试配置是否成功
nginx -t

# 重载配置
nginx -s reload

# 停止 nginx
nginx -s stop
nginx -s quit

# 重启
service nginx restart

配置 Nginx

测试配置一
server {
    listen       8081;
    server_name  localhost;

    gzip on;
    gzip_comp_level 9;
    gzip_vary on;
    gzip_static on;
    gzip_types text/plain application/x-javascript text/css application/xml application/json application/javascript application/x-httpd-php image/jpeg image/gif image/png image/svg+xml xml/svg;

    root /usr/share/nginx/html/test1;

    location / {
        try_files $uri /index.html;
    }

    location /dir1 {
        try_files $uri /dir1/index.html;
    }

    location /dir2 {
        try_files $uri /dir2/index.html;
    }
}
测试配置结果

wx20180729-170949

配置 Nginx 和 HTTPS

一份微信小程序配置

upstream app_weapp {
    server localhost:5757;
    keepalive 8;
}

server {
    listen      80;
    server_name wx.ijason.cc;

    rewrite ^(.*)$ https://$server_name$1 permanent;
}

server {
    listen      443;
    server_name wx.ijason.cc;

    ssl on;

    ssl_certificate           /data/release/nginx/1_wx.ijason.cc_bundle.crt;
    ssl_certificate_key       /data/release/nginx/2_wx.ijason.cc.key;
    ssl_session_timeout       5m;
    ssl_protocols             TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers               ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA;
    ssl_session_cache         shared:SSL:50m;
    ssl_prefer_server_ciphers on;

    location / {
        proxy_pass http://app_weapp;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

负载均衡(TODO)

References