• Nginx安装及配置


    nginx编译安装及配置

    nginx下载官网:nginx: download

    关闭防火墙和selinux

    [root@localhost ~]# wget -P /usr/local/src/ http://nginx.org/download/nginx-1.20.1.tar.gz
    [root@localhost ~]# yum install -y gcc gcc-c++ pcre pcre-devel zlib zlib-devel
    openssl openssl-devel perl-devel perl-ExtUtils-Embed gd-devel
    [root@localhost ~]# useradd -s /sbin/nologin -M nginx
    [root@localhost ~]# mkdir -p /var/tmp/nginx/client/
    [root@localhost ~]# cd /usr/local/src/
    [root@localhost src]# tar -zvxf nginx-1.20.1.tar.gz
    [root@localhost ~]# cd nginx-1.20.1
    [root@localhost nginx-1.20.1]# ./configure 
    --user=nginx 
    --group=nginx 
    --prefix=/usr/local/nginx 
    --conf-path=/etc/nginx/nginx.conf 
    --sbin-path=/usr/sbin/nginx 
    --error-log-path=/var/log/nginx/nginx_error.log 
    --http-log-path=/var/log/nginx/nginx_access.log 
    --pid-path=/usr/local/nginx/run/nginx.pid 
    --lock-path=/usr/local/nginx/lock/nginx 
    --with-http_image_filter_module 
    --with-http_ssl_module 
    --with-http_realip_module 
    --with-http_addition_module 
    --with-http_sub_module 
    --with-http_dav_module 
    --with-http_flv_module 
    --with-http_gzip_static_module 
    --with-http_stub_status_module 
    --with-http_perl_module 
    --with-mail 
    --with-mail_ssl_module 
    --with-pcre 
    --http-client-body-temp-path=/var/tmp/nginx/client/ 
    --http-proxy-temp-path=/var/tmp/nginx/proxy 
    --http-fastcgi-temp-path=/var/tmp/nginx/fcgi 
    --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi 
    --http-scgi-temp-path=/var/tmp/nginx/scgi
    [root@localhost nginx-1.20.1]# make && make install
    

    systemd添加nginx服务

    (或启动脚本形式,自行百度)

    [root@localhost ~]# vim /lib/systemd/system/nginx.service
    [Unit]
    Description=nginx
    After=network.target
    
    [Service]
    Type=forking
    ExecStart=/usr/sbin/nginx
    ExecReload=/usr/sbin/nginx -s reload
    ExecStop=/usr/sbin/nginx -s quit
    PrivateTmp=true
    
    [Install]
    WantedBy=multi-user.target
    
    启动nginx服务
    [root@localhost ~]# pkill nginx
    [root@localhost ~]# systemctl daemon-reload
    [root@localhost ~]# systemctl start nginx
    [root@localhost ~]# systemctl status nginx
    [root@localhost ~]# systemctl enable nginx
    

    主配置文件配置

    [root@localhost nginx]# mkdir /etc/nginx/conf.d
    [root@localhost nginx]# vi /etc/nginx/nginx.conf
    user  nginx;
    worker_processes  1;
    error_log  /var/log/nginx/nginx1-error.log;
    pid        /usr/local/nginx/run/nginx.pid;
    events {
        worker_connections  1024;
    }
    http {
        include       mime.types;
        default_type  application/octet-stream;
        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/nginx1-access.log  main;
        sendfile        on;
        tcp_nopush     on;
        keepalive_timeout  65;
        gzip  on;
        include /etc/nginx/conf.d/*.conf;
    }
    

    子配置文件

    /etc/nginx/conf.d/test.conf

    每次修改完需重载配置文件或重启

    # /usr/sbin/nginx -s reoad
    
    或
    # /usr/sbin/nginx -s stop
    # /usr/sbin/nginx
    ##重启失败,尝试pkill nginx
    

    基于域名配置虚拟主机

    [root@localhost nginx]# vim /etc/nginx/conf.d/test.conf
    #虚拟主机1
    server {
            listen 80;
            server_name www.test.com;
            access_log /var/log/nginx/test-access.log main;
            error_log /var/log/nginx/test-error.log;
            location /{
                    root /var/www/test;
                    index index.html index.htm index.php;
    
            #       stub_status on;
            #       access_log off;
            }
    
    
    #       location /status{
    #       stub_status on;
    #       access_log off;
    #       }
    
            error_page 500 502 503 504 /50x.html;
            location = /50x.html {
            root /var/www/test;
            }
    
    
    }
    #虚拟机主机2,用于查看HTTP的状态,需要--with-http_stub_status_module模块
    server{
        listen 80;
        server_name www.status.com;
        location /{
            stub_status on;
            access_log off;
        }
    }
    
    #虚拟主机3,这里根目录与主机1相同,自行修改
    server {
            listen 80;
            server_name www.test2.com;
            access_log /var/log/nginx/test2-access.log main;
            error_log /var/log/nginx/test2-error.log;
            location /{
                    root /var/www/test;
                    index index.html index.htm index.php;
            }
    
            error_page 500 502 503 504 /50x.html;
            location = /50x.html {
            root /var/www/test;
            }
    }
    修改完需手动创建根目录
    

    状态信息配置

    给虚拟主机设置状态,需要--with-http_stub_status_module模块

    三种设置方法

    [root@localhost nginx]# vim /etc/nginx/conf.d/test.conf
    #虚拟主机1
    server {
            listen 80;
            server_name www.test.com;
            access_log /var/log/nginx/test-access.log main;
            error_log /var/log/nginx/test-error.log;
            location /{
                    root /var/www/test;
                    index index.html index.htm index.php;
    #----------------------位置1,location下添加两行,但这样不能直接访问index.html-------------
            #       stub_status on;
            #       access_log off;
    #---------------------------------------------------------------------
            }
    
    #-------------------位置2,访问根目录下的status-----------------------------------
    #       location /status{
    #       stub_status on;
    #       access_log off;
    #       }
    #-----------------------------------------------------------------------------
            error_page 500 502 503 504 /50x.html;
            location = /50x.html {
            root /var/www/test;
            }
    }
    
    
    #-----------------位置3,新建一个虚拟主机-------------------------------------
    #虚拟机主机2,用于查看HTTP的状态,需要--with-http_stub_status_module模块
    server{
        listen 80;
        server_name www.status.com;
        location /{
            stub_status on;
            access_log off;
        }
    }
    #-------------------------------------------------------------------------
    

    基于ip

    [root@localhost nginx]# ifconfig ens33:1 192.168.10.10
    [root@localhost nginx]# ip a
    ens33: 192.168.10.11
    ens33:1 192.168.10.10
    [root@localhost nginx]# vim /etc/nginx/conf.d/xxx.conf
    server {
            listen 192.168.10.11:80;
            server_name www.test.com;
            access_log /var/log/nginx/test-access.log main;
            error_log /var/log/nginx/test-error.log;
            location /{
                    root /var/www/test;
                    index index.html index.htm index.php;
            }
    
            error_page 500 502 503 504 /50x.html;
            location = /50x.html {
            root /var/www/test;
            }
    }
    
    server {
            listen 192.168.10.10:80;
            server_name www.test2.com;
            access_log /var/log/nginx/test2-access.log main;
            error_log /var/log/nginx/test2-error.log;
            location /{
                    root /var/www/test2;
                    index index.html index.htm index.php;
            }
    
            error_page 500 502 503 504 /50x.html;
            location = /50x.html {
            root /var/www/test2;
            }
    }
    
    # // ifconfig eth0:1 192.168.95.100 down 删除绑定的IP命令
    

    基于端口

    server {
            listen 80;
            server_name www.test.com;
            access_log /var/log/nginx/test-access.log main;
            error_log /var/log/nginx/test-error.log;
            location /{
                    root /var/www/test;
                    index index.html index.htm index.php;
            }
    
            error_page 500 502 503 504 /50x.html;
            location = /50x.html {
            root /var/www/test;
            }
    }
    
    #主机2,访问方式:www.test2.com:8080
    server {
            listen 8080;
            server_name www.test2.com;
            access_log /var/log/nginx/test2-access.log main;
            error_log /var/log/nginx/test2-error.log;
            location /{
                    root /var/www/test2;
                    index index.html index.htm index.php;
            }
    
            error_page 500 502 503 504 /50x.html;
            location = /50x.html {
            root /var/www/test2;
            }
    }
    

    访问权限

    server {
            listen 80;
            server_name www.test.com;
            access_log /var/log/nginx/test-access.log main;
            error_log /var/log/nginx/test-error.log;
            location /{
                    root /var/www/test;
                    index index.html index.htm index.php;
                    deny 192.168.0.10; # 拒绝192.168.0.10
                    deny 192.168.133.0/24; #拒绝这个网段访问
    				allow all;
                    
            }
    
    }
    
    配置若有遗漏或错误,请评论留言。
  • 相关阅读:
    现在分词和过去分词
    VMware Workstation Ubuntu 20.04 LTS无法连接网络问题
    Java中定时器Timer致命缺点(附学习方法)
    2020 年度编程语言排行榜出炉!C 语言称霸,Java 遭遇滑铁卢…….
    人工智能必备数学基础:线性代数基础(1)
    初学VBA
    何同学新视频火了!找到减少沉迷手机的最佳方法:附免费APP
    支付宝蚂蚁森林下线能量提醒功能 产品经理:被骂了、我改
    可抵御所有已知黑客攻击 中国组建天地一体化量子通信网络
    MYSQL数据库 增删改查基础语句
  • 原文地址:https://www.cnblogs.com/BrokenEaves/p/15146958.html
Copyright © 2020-2023  润新知