Ngin基础

Ngin基础安装Nginx官网安装必备yum组件sudoyuminstallyum-utils要设置yum存储库,请创建具有以下内容的文件[nginx-stable]name=nginxstablerepobaseurl=http://nginx.org/packages/cento

大家好,欢迎来到IT知识分享网。Ngin基础"

安装

Nginx官网

安装必备yum组件
sudo yum install yum-utils

要设置 yum 存储库,请创建具有以下内容的文件

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

默认情况下,使用稳定 nginx 包的存储库。 如果你想使用主线nginx包, 运行以下命令:

sudo yum-config-manager --enable nginx-mainline
安装 nginx
sudo yum install nginx

nginx目录

[root@localhost etc]# rpm -ql nginx
/etc/logrotate.d/nginx #日志轮转文件
/etc/nginx #Nginx 配置文件夹
/etc/nginx/nginx.conf #总配置文件
/etc/nginx/conf.d  #Nginx 子配置文件夹
/etc/nginx/conf.d/default.conf #Nginx 默认子配置文件(默认网站)
/etc/nginx/fastcgi_params #动态网站模块文件-python,php所需的相关变量
/etc/nginx/scgi_params  #动态网站模块文件-python所需的相关变量 
/etc/nginx/uwsgi_params #动态网站模块文件-python所需的相关变量
/etc/nginx/mime.types #关联程序 不同的文件使用不同的程序处理
/etc/nginx/modules #模块文件夹,存储第三方模块
/usr/lib/systemd/system/nginx-debug.service #Nginx调试程序启动脚本
/usr/lib/systemd/system/nginx.service #Nginx服务脚本
/usr/lib64/nginx
/usr/lib64/nginx/modules
/usr/libexec/initscripts/legacy-actions/nginx
/usr/libexec/initscripts/legacy-actions/nginx/check-reload
/usr/libexec/initscripts/legacy-actions/nginx/upgrade
/usr/sbin/nginx #Nginx主程序
/usr/sbin/nginx-debug 
/usr/share/doc/nginx-1.24.0 #Nginx共享文档
/usr/share/doc/nginx-1.24.0/COPYRIGHT  #Nginx共享文档
/usr/share/man/man8/nginx.8.gz  #Nginx共享文档
/usr/share/nginx #Nginx共享文档
/usr/share/nginx/html #Nginx共享文档
/usr/share/nginx/html/50x.html #Nginx共享文档
/usr/share/nginx/html/index.html #Nginx共享文档
/var/cache/nginx #Nginx缓存
/var/log/nginx #Nginx日志文件夹

配置信息

[root@localhost etc]# nginx -V
nginx version: nginx/1.24.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) 
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled
configure arguments: 
--prefix=/etc/nginx #安装目录的路径
--sbin-path=/usr/sbin/nginx #可执行文件的路径
--modules-path=/usr/lib64/nginx/modules #模块文件的路径
--conf-path=/etc/nginx/nginx.conf #主配置文件的路径
--error-log-path=/var/log/nginx/error.log #错误日志文件的路径
--http-log-path=/var/log/nginx/access.log #访问日志文件的路径
--pid-path=/var/run/nginx.pid #进程 ID 文件的路径
--lock-path=/var/run/nginx.lock #锁文件的路径
--http-client-body-temp-path=/var/cache/nginx/client_temp #缓存文件的路径
--http-proxy-temp-path=/var/cache/nginx/proxy_temp #代理缓存文件的路径
--http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp #php缓存文件的路径
--http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp  #python缓存文件的路径
--http-scgi-temp-path=/var/cache/nginx/scgi_temp  #python缓存文件的路径
--user=nginx #运行 Nginx 进程的用户名
--group=nginx #运行 Nginx 进程的用户组
--with-compat #启动动态兼容性
--with-file-aio 
--with-threads 
--with-http_addition_module #多线程模块
--with-http_auth_request_module 
--with-http_dav_module 
--with-http_flv_module 
--with-http_gunzip_module 
--with-http_gzip_static_module #启用 Gzip 静态文件压缩模块
--with-http_mp4_module 
--with-http_random_index_module 
--with-http_realip_module #用 Real IP 模块,用于获取真实客户端IP
--with-http_secure_link_module #nginx安全下载模式
--with-http_slice_module #nginx中文文档
--with-http_ssl_module #启用 HTTP SSL 模块
--with-http_stub_status_module #启用状态模块,提供服务器运行状态和统计信息
--with-http_sub_module #nginx替换网站内容
--with-http_v2_module #启用 HTTP/2 模块
--with-mail 
--with-mail_ssl_module 
--with-stream #负载均衡1
--with-stream_realip_module #负载均衡2
--with-stream_ssl_module #负载均衡3
--with-stream_ssl_preread_module #负载均衡4
--with-pcre # PCRE 库支持,用于正则表达式匹配。
--with-openssl # OpenSSL 库支持,用于加密和安全通信
--with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC'
--with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie'

Nginx配置

文件结构

...              #全局块

events {         #events块
   ...
}

http      #http块
{
    ...   #http全局块
    server        #server块
    { 
        ...       #server全局块
        location [PATTERN]   #location块
        {
            ...
        }
        location [PATTERN] 
        {
            ...
        }
    }
    server
    {
      ...
    }
    ...     #http全局块
}
主配置(/etc/nginx/nginx.conf)
user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/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/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf; # 注意在这里引入子配置文件
}
子配置(/etc/nginx/conf.d/default.conf)
server {
    listen       80;
    server_name  localhost;

    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    #location ~ \.php$ {
    #    root           html;
    #    fastcgi_pass   127.0.0.1:9000;
    #    fastcgi_index  index.php;
    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    #    include        fastcgi_params;
    #}

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}

配置汇总

user  www www; #配置用户或者组

worker_processes  2;  #允许生成的进程数

pid /var/run/nginx.pid;#指定nginx进程运行文件存放地址

#制定日志路径,级别。这个设置可以放入全局块,http块,server块,级别以此为:debug|info|notice|warn|error|crit|alert|emerg
error_log  /var/log/nginx.error_log  info;

events {
    worker_connections   2000;#最大连接数
    accept_mutex on;   #设置网路连接序列化,防止惊群现象发生,默认为on
    multi_accept on;  #设置一个进程是否同时接受多个网络连接,默认为off
    #use epoll;      #事件驱动模型,kqueue | epoll | /dev/poll | select | poll
    use kqueue;
}

http {

    include       conf/mime.types; #引入关联程序文件 不同的文件使用不同的程序处理 如使用application/javascript处理js
    default_type  application/octet-stream; #默认文件类型,默认为text/plain
    #access_log off; #取消服务日志    
    
    #自定义log格式
    log_format main      '$remote_addr - $remote_user [$time_local] '
                         '"$request" $status $bytes_sent '
                         '"$http_referer" "$http_user_agent" '
                         '"$gzip_ratio"';
              
    access_log log/access.log myFormat;  #combined为日志格式的默认值

    log_format download  '$remote_addr - $remote_user [$time_local] '
                         '"$request" $status $bytes_sent '
                         '"$http_referer" "$http_user_agent" '
                         '"$http_range" "$sent_http_content_range"';

    client_header_timeout  3m;
    client_body_timeout    3m;
    send_timeout           3m;

    client_header_buffer_size    1k;
    large_client_header_buffers  4 4k;

    gzip on;
    gzip_min_length  1100;
    gzip_buffers     4 8k;
    gzip_types       text/plain;

    output_buffers   1 32k;
    postpone_output  1460;

    sendfile         on;
    tcp_nopush       on;
    tcp_nodelay      on;
    send_lowat       12000;

    keepalive_timeout  75 20;

    #lingering_time     30;
    #lingering_timeout  10;
    #reset_timedout_connection  on;

    upstream mysvr {   
      server 127.0.0.1:7878;
      server 192.168.10.121:3333 backup;  #热备
    }

    error_page 404 https://www.baidu.com; #错误页 只有开启代理才生效
    proxy_intercept_errors on;    #如果被代理服务器返回的状态码为400或者大于400,设置的error_page配置起作用。默认为off。
    
    # deny 127.0.0.1;  #拒绝的ip all代表所有 在http里面适用于所有的网站
    # allow 172.18.5.54; #允许的ip all代表所有 在http里面适用于所有的网站

    server {
        keepalive_requests 120; #单连接请求上限次数。
    
        #listen       4545;   #监听4545端口

        #server_name  127.0.0.1;   #监听地址  
        server_name   one.example.com  #监听www.one.example.com;

        access_log   /var/log/nginx.access_log  main; //访问日志存放地址

        location ~*^.+$ { #请求的url过滤,正则匹配,~为区分大小写,~*为不区分大小写。

            root /www;  #根目录
            index index.html index.php;  #设置默认页
            proxy_pass         http://127.0.0.1/; #请求转向mysvr 定义的服务器列表
            proxy_redirect     off;

            proxy_set_header   Host             $host;
            proxy_set_header   X-Real-IP        $remote_addr;
            #proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;

            client_max_body_size       10m;
            client_body_buffer_size    128k;

            client_body_temp_path      /var/nginx/client_body_temp;

            proxy_connect_timeout      70;
            proxy_send_timeout         90;
            proxy_read_timeout         90;
            proxy_send_lowat           12000;

            proxy_buffer_size          4k;
            proxy_buffers              4 32k;
            proxy_busy_buffers_size    64k;
            proxy_temp_file_write_size 64k;

            proxy_temp_path            /var/nginx/proxy_temp;

            charset  koi8-r;

          # deny 127.0.0.1;  #拒绝的ip all代表所有
          # allow 172.18.5.54; #允许的ip all代表所有
        }

        error_page  404  /404.html; #错误页

        location = /404.html {
            root  /spool/www;
        }

        location /old_stuff/ {
            rewrite   ^/old_stuff/(.*)$  /new_stuff/$1  permanent;
        }

        location /download/ {

            valid_referers  none  blocked  server_names  *.example.com; #防盗链只允许.example.com这个域名访问/download/ server_names为白名单
            #如果不是.example.com域名访问直接返回403 防止其他网站使用该网站的静态资源增加带宽压力
            if ($invalid_referer) {
                #rewrite   ^/   http://www.example.com/;
                return   403;
            }

            #rewrite_log  on;

            # rewrite /download/*/mp3/*.any_ext to /download/*/mp3/*.mp3
            rewrite ^/(download/.*)/mp3/(.*)\..*$
                    /$1/mp3/$2.mp3                   break;

            root         /spool/www;
            #autoindex    on;
            access_log   /var/log/nginx-download.access_log  download;
        }

        location ~* \.(jpg|jpeg|gif)$ {
            root         /spool/www;
            access_log   off;
            expires      30d;
        }
    }
}

@千锋linux云计算Nginx教程

@Nginx 中文官方文档

@张龙豪之Nginx配置详解

 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/31168.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信