Nginx入门

󰊒 󰅏

Nginx入门

归属:原创     作者: 标签:技巧 IT java

已累计阅读927次, 发布于2022-03-22 22:20

1.1 安装

  • 下载

    $ wget http://nginx.org/download/nginx-1.19.6.tar.gz  # 方法一:官网 Nginx
    $ wget http://tengine.taobao.org/download/tengine-2.3.2.tar.gz  # 方法二:阿里 Tengine
    
  • 依赖包

    $ yum -y install gcc pcre-devel zlib zlib-devel openssl-*
    
  • 编译 & 安装

    $ tar -xf nginx-1.19.6.tar.gz 
    $ cd nginx-1.19.6 
    $ ./configure --prefix=/opt/nginx1.19.6  # 统一安装目录:/opt/
    # $ ./configure --prefix=/opt/tengine2.3.2
    $ make && make install
    
  • 环境变量

    $ vim /etc/profile  # 修改配置文件
    >> PATH="/opt/nginx1.19.6/sbin:"  # 添加环境变量
    $ source /etc/profile # 生效
    $ which nginx  # 检测
    

1.3 启动

  • 启动

    $ nginx '端口' '监听地址IP' '协议版本'  # 启动前关闭防火墙
    
  • 检测

    $ elinks http://192.688.199.244 -dump
    $ ps -ef | grep nginx
    $ netstat -tunlp
    $ lsof -i :80
    
  • 重启

    $ nginx -s reload  # 平滑重启:仅重新读取配置文件,而不重启进程
    
  • 关闭

    $ nginx -s stop
    
  • 定时重启

    $ 0 0 * * * /usr/bin/systemctl restart nginx
    
  • 查看当前服务器连接数

    $ netstat -antpl | grep nginx | grep EXTABLISHED | wc -l
    

1.3 配置文件

  • 修改

    $ vim /opt/nginx1.19.6/conf/nginx.conf
    
  • 检查语法

    # $ nginx -g /opt/nginx1.19.6/conf/nginx.conf
    $ nginx -t  # 推荐
    
  • 删除配置文件的注释和空行

    $ sed -i "/#/d" nginx.conf
    $ sed -i "/^$/d" nginx.conf
    

1.4 反向代理

  • 配置

    server {
        listen  80;  # 定义该网站的端口
        server_name  localhost;  # 域名
        charset  utf-8;  # nginx编码支持,局部变量,只对当前代码块生效
    		location  /  {
            proxy_pass  http://192.168.199.236:81;  # 反向代理
            # uwsgi_pass  0.0.0.0:8000;  # 基于uwsgi协议的请求转发
        }
    }
    
    server {
        listen  81;  
        server_name  _;  
        charset  utf-8;
        location  /  {
            root  /root/nginx_linux;  # 定义该虚拟主机资料存放位置
            index  index.html;  # 首页文件名,只要上面的路径中存在 index.html 即可 
        }
        error_page  404  /404.html;  # 自定义404页面
    }
    

1.5 负载均衡

  • 配置

    upstream nginx_server {
      	 # ip_hash;  # 每个IP固定访问某个服务器
         # url_hash;  # 每个URL固定访问某个服务器
         server 192.168.199.236:81 weight=3;
         server 192.168.199.236:82 weight=1;
         # least_conn  # 最少连接数,哪台机器连接数最少,就连哪台
    }
    
    server {
      	listen  80;  # 定义该网站的端口
        server_name  localhost;  # 域名
        charset  utf-8;  # nginx编码支持
      	location / {
            proxy_pass  http:nginx_server;
        }
    }
    

1.6 部署的配置文件

  • 配置

    upstream nginx_server {
        #ip_hash;  
        server 0.0.0.0:8000 weight=1;  # uwsgi.ini
        server 0.0.0.0:8001 weight=1;  # uwsgi02.ini
    }
    
    server {
        listen  80;  # 定义该网站的端口
        server_name  localhost;  # 域名
        charset  utf-8;  # nginx编码支持,局部变量,只对当前代码块生效
    		location  /  {
            # 固定参数,添加一些转发请求头内容,位置:cat /opt/tengine/conf/uwsgi_params
            include uwsgi_params;
            # 与uwsgi配置的socket一致,通过uwsgi_pass把请求转发给后端uwsgi服务器
            # uwsgi_pass  0.0.0.0:8000;  
            #负载均衡
            uwsgi_pass  nginx_server;
        }
        location /static {
          	alias /root/crm_static;  # 配置nginx查找的静态文件的绝对路径
        }
    }
    

1.6 日志管理

  • 日志格式 json --> elk

1.7 防盗链

1.8 目录访问控制

  • 默认网站

  • 目录验证

  • 添加IP

    $ ifconfig ens33:1 192.168.10.52/24 up
    
  • 关闭IP

    $ ifconfig ens33:1 down

观点 · Comments

点击右上角󰅏可发表观点,点击访客头像可回复Ta