nginx配置


  • 启用stub_status模块,只能本机120.0.0.1访问,用于elk nginx metric监控
  • 默认服务为blog,转发到hexo博客的public目录,强制跳转到https
  • 代理二级域名elk.jhzhang.top,免去输入端口的不便
  • blog域名启用https
  • elk域名启用https
# For more information on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/
#   * Official Russian Documentation: http://nginx.org/ru/docs/

user root;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 1024;
}

http {
    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;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;

    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    # See http://nginx.org/en/docs/ngx_core_module.html#include
    # for more information.
    # Load modular configuration files from the /etc/nginx/conf.d directory.
    include /etc/nginx/conf.d/*.conf;

    # 开启stub_status用于elastic metric获取状态
    server {
        listen 80;
        server_name 127.0.0.1; 

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;
        
        location /nginx_status {
            stub_status on;
            # access_log on;
            # 只允许本机访问
            allow 127.0.0.1;
            # 其余一律拒绝
            deny all;
        }
    }

    # my blog:default
    server {
        listen 80 default_server;
        listen [::]:80 default_server;
        server_name www.jhzhang.top jhzhang.top;
        rewrite ^(.*)$ https://$host$1; #将所有HTTP请求通过rewrite指令重定向到HTTPS。

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;
        
        location / {
            root /root/blog/public;
            index index.html index.htm;
        }

        error_page 404 /404.html;
        location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
        }
    }

    server {
        listen 80;
        listen [::]:80;
        server_name elk.jhzhang.top;
        rewrite ^(.*)$ https://$host$1; #将所有HTTP请求通过rewrite指令重定向到HTTPS。

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {
            proxy_pass http://127.0.0.1:5601;
        }

        error_page 404 /404.html;
        location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
        }
    }


    #以下属性中,以ssl开头的属性表示与证书配置有关。
    server {
        listen 443 ssl;
        #配置HTTPS的默认访问端口为443。
        #如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。
        #如果您使用Nginx 1.15.0及以上版本,请使用listen 443 ssl代替listen 443和ssl on。
        server_name www.jhzhang.top jhzhang.top; #需要将yourdomain替换成证书绑定的域名。
        ssl_certificate /root/sslCert/5719168_www.jhzhang.top.pem; #需要将cert-file-name.pem替换成已上传的证书文件的名称。
        ssl_certificate_key /root/sslCert/5719168_www.jhzhang.top.key; #需要将cert-file-name.key替换成已上传的证书私钥文件的名称。
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        #表示使用的加密套件的类型。
        ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; #表示使用的TLS协议的类型。
        ssl_prefer_server_ciphers on;
        location / {
            root /root/blog/public; #Web网站程序存放目录。
            index index.html index.htm;
        }
    }
    
    #以下属性中,以ssl开头的属性表示与证书配置有关。
    server {
        listen 443 ssl;
        #配置HTTPS的默认访问端口为443。
        #如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。
        #如果您使用Nginx 1.15.0及以上版本,请使用listen 443 ssl代替listen 443和ssl on。
        server_name elk.jhzhang.top; #需要将yourdomain替换成证书绑定的域名。
        ssl_certificate /root/sslCert/8196999_elk.jhzhang.top.pem; #需要将cert-file-name.pem替换成已上传的证书文件的名称。
        ssl_certificate_key /root/sslCert/8196999_elk.jhzhang.top.key; #需要将cert-file-name.key替换成已上传的证书私钥文件的名称。
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        #表示使用的加密套件的类型。
        ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; #表示使用的TLS协议的类型。
        ssl_prefer_server_ciphers on;
        location / {
            proxy_pass http://127.0.0.1:5601;
        }
    }
}

文章作者: jhzhang_09
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 jhzhang_09 !
评论
  目录