标签: nginx

  • 定时清理 docker nginx 日志文件

    Nginx 如果开启了日志,Linux 系统中默认的文件通常是 /var/log/nginx/access.log

    如果流量比较大时间久了会占用大量磁盘空间。

    本文中 Nginx 是运行在Docker 容器中的,

    所以清理时,需要将命令传递给Docker

    首先获取 Docker Container ID

    cid=$(docker ps | grep nginx | awk '{print $1}');

    在宿主机执行清理命令

    /usr/bin/docker exec $cid bash -c 'truncate -s 0 /var/log/nginx/access.log'

    在 crontab 设置命令触发时间为每月1号的1点1分

    1 1 1 * * cid=$(docker ps | grep nginx | awk '{print $1}');/usr/bin/docker exec $cid bash -c 'truncate -s 0 /var/log/nginx/access.log'
  • 使用 Nginx 反向代理加速 github 访问

    由于国内某些原因,访问 github.com 很不稳定,

    可以在一台访问 github 流畅的服务器上部署 Nginx 作为代理,

    假如代理服务器 域名是 proxy.server.name

    对于 git clone https://github.com/ohmyzsh/ohmyzsh.git

    可修改为  git clone https://proxy.server.name/ohmyzsh/ohmyzsh.git

    Nginx 配置如下:

    server {
        listen 80;
        server_name proxy.server.name;
        location /{
            proxy_pass https://github.com;
        }
    }
  • CentOS Nginx Server SSL配置错误一例

    今日配置 CentOS Nginx Server SSL 时,遇到 nginx error log 报告下述错误消息:

    no “ssl_certificate” is defined in server listening on SSL port while SSL handshaking

    经过检查,原来是 default_server 缺失导致;

    listen 443 ssl http2 default_server;

    如果 nginx 有多个 server ,至少有一个server里面需要填写default_server。

     

  • ubuntu 20.04 安装 PHP/Nginx/MySQL/Redis

    视频版:

    https://www.bilibili.com/video/BV1PK4y1n74R/

    基于Ubuntu 20.04 LTS 操作系统
    部署安装PHP
    Nginx web 服务器
    MySQL 数据库
    Redis 内存服务器

    由于服务器位于远端的机房
    所以需要远程登录服务器

    如果是Linux系统
    使用自带的terminal就可以登陆
    MacOS也有自带终端
    也可以使用 iTerm2
    Windows 可以使用的软件有很多
    例如 Windows Terminal
    共享软件 SecureCRT
    开源软件PuTTY

     

    登录系统后

    查看主机的操作系统类型
    cat /etc/os-release

    如果服务器位于国内
    建议将默认的源镜像修改为国内的地址
    https://developer.aliyun.com/mirror/ubuntu
    这样下载软件包速度会比较快

    安装 php
    apt install php

    安装 PHP进程管理器 php-fpm
    apt install php7.4-fpm

    卸载 apache2
    systemctl stop apache2.service
    apt purge apache2

    安装 nginx
    apt install nginx

    安装 MySQL
    apt install mysql-server

    安装Redis
    apt install redis-server

    安装多字节字符串扩展
    apt install php7.4-mbstring

    安装 curl 扩展
    apt install php7.4-curl

    安装 MySQL 扩展
    apt install php7.4-mysql

    安装 Redis 扩展
    apt install php7.4-redis

    安装图形库扩展
    apt install php7.4-gd

    php-imagick

    到此网站运行的基础软件都安装好了
    软件的配置也都使用了默认的配置
    但这样的配置仅用于开发测试
    用于生产环境的话要配置的细节就比较多

    修改mysql root 密码
    首先输入mysql登录mysql
    然后输入
    ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘abcd12345’;
    将密码修改为 abcd12345
    使用 flush privileges
    刷新权限
    至此开发环境搭建完毕

  • 阻止用户访问网站的某些目录

    安全起见,生产环境的代码,某些目录如果在网站根目录下面,应该考虑限制访问的权限。

    例如管理员目录/admin 就是不法分子经常猜测的的路径,或者有些网站的代码发布直接使用git更新,此时.git目录便存在代码相关信息泄漏隐患,此时可由web服务器的配置,来阻止对私密目录的造访。

    例如 Nginx 可以在相应 server 里面添加如下代码片段实现。

    location ~ /\.git {
    deny all;
    }