zoukankan      html  css  js  c++  java
  • Nginx 相关配置文件修改

    1、为了使Nginx服务的启动、停止、重载等操作更加方便,可以编写Nginx服务脚本,并使用chkconfigsystemctl工具来进行管理,也更加符合RHEL系统的管理习惯。

    [root@nginx~]# vim /etc/init.d/nginx

    #!/bin/bash

    # chkconfig: 2345 99 20

    # description: Nginx Server Control Script

    PROG="/usr/local/nginx/sbin/nginx"

    PIDF="/usr/local/nginx/logs/nginx.pid"

     

    case "$1" in

    start)

    $PROG

    ;;

    stop)

    kill -s QUIT $(cat $PIDF)

    ;;

    restart)

    $0 stop

    $0 start

    ;;

    reload)

    kill -s HUP $(cat $PIDF)

    ;;

    *)

    echo "Usage: $0 {start|stop|restart|reload}"

    exit 1

    esac

    exit 0

     保存退出

    [root@nginx~]#chmod +x /etc/init.d/nginx

    [root@nginx~]#chkconfig --add nginx

    [root@nginx~]#chkconfignginx on

    [root@nginx~]#chkconfig --list nginx

    nginx0:关闭1:关闭2:启用3:启用4:启用5:启用6:关闭

     

    这样就可以通过nginx脚本来启动、停止、重启、重载Nginx服务器了。

    2、nginx.conf文件结构

    Nginx服务器的主配置文件nginx.conf中,包括全局配置、I/O事件配置、HTTP配置这三大块内容,配置语句的格式为"关键字 值;"(末尾以分号表示结束),以"#"开始的部分表示注释。

    1)全局配置

     由各种配置语句组成,不使用特定的界定标记。全局配置部分包括运行用户、工作进程数、错误日志、PID存放位置等基本设置。

     

    常用配置项:

    • user nginx [nginx]; //运行用户,Nginx的运行用户实际是编译时指定的nginx,若编译时未指定则默认为nobody
    • worker_processes 2;//指定nginx启动的工作进程数量,建议按照cpu数目来指定,一般和CPU核心数相等。
    • worker_cpu_affinity 00000001 00000010; //为每个进程分配cpu核心,上例中将2个进程分配到两个cpu,当然可以写多个,或者将一个进程分配到多个cpu
    • worker_rlimit_nofile 102400; //这个指令是指当一个nginx进程打开的最多文件数目,理论值应该是最多打开文件数(ulimit-n)与nginx进程数相除,但是nginx分配请求并不是那么均匀,所以最好与ulimit -n的值保持一致。(通过"ulimit–n 数值"可以修改打开的最多文件数目)
    • error_log logs/error.log; //全局错误日志文件的位置
    • pid logs/nginx.pid; //PID文件的位置

    2I/O事件配置:

    使用"events {}"界定标记,用来指定Nginx进程的I/O响应模型,每个进程的连接数等设置

    events {

      //使用epoll模型,对于2.6以上的内核,建议使用epoll模型以提高性能

     

    worker_connections 4096; //每个进程允许的最多连接数(默认为1024),每个进程的连接数应根据实际需要来定,一般在10000以下,理论上每台nginx服务器的最大连接数为worker_processes*worker_connections,具体还要看服务器的硬件、带宽等。

     

    }

    3HTTP配置

     

    使用"http{}"界定标记,包括访问日志、HTTP端口、网页目录、默认字符集、连接保持、以及虚拟主机、PHP解析等一系列设置。其中大部分配置语句包含在子界定标记"server {}"内。

     

    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  logs/access.log  main; //访问日志位

     

    sendfile        on; //支持文件发送(下载)

     

    keepalive_timeout  65; //连接保持超时

     

        server { //web服务的监听配置

     

            listen       80; //监听地址及端口(IPPORT

     

    server_name  www.crushlinux.com; //网站名称(FQDN

     

    charset utf-8; //网页的默认字符集

        location / { //跟目录配置

     

                root   html; //网站根目录的位置安装位置的html

     

                index  index.html index.htm; //默认首页(索引页)

     

            }

     

    error_page   500 502 503 504  /50x.html; //内部错误的反馈页面

     

            location = /50x.html { //错误页面配置

     

                root   html;

     

            }

     

     

    3、状态统计模块

     

    Nginx内置了HTTP_STUB_STATUS状态统计模块,用来反馈当前的WEB访问情况。配置编译参数时可添加--with-http_stub_stastus_module来启用此模块。要使用Nginx的状态统计功能,除了启用内建模块以外,还需要修改nginx.conf文件,指定访问位置并打开stub_status配置。在http{}配置的server{}子配置内添加如下配置项

     

    [root@nginx~]# vim /usr/local/nginx/conf/nginx.conf

     

    location /status {

     

    stub_status on;//打开状态统计功能

     

    access_log off;//关闭此位置的日志记录

     

            }

     

    [root@nginxconf]#systemctl restart nginx

     

     浏览器访问 http://192.168.200.111/status

     

    Active connections 表示当前活跃的连接数,

    第三行的三个数字表示Nginx当前总共处理了3个连接,成功创建3次握手,总共处理了12个请求。

    Reading表示Nginx读取到客户端Header信息数,

    Writing表示Nginx返回给客户端的Header信息数

    Waiting表示Nginx已经处理完,正在等候下一次请求指令时的驻留连接数。

    4、虚拟主机应用

     使用Nginx搭建虚拟主机服务器时,每个虚拟WEB站点拥有独立的"server {}"配置段,各自监听的IP地址、端口号可以单独指定,当然网站名称也是不同的。

     

    例如:要创建两个站点www.crushlinux.comwww.cloud.com

     

    为两个虚拟WEB主机分别建立根目录,并准备测试首页

     

    [root@nginx~]#mkdir /usr/local/nginx/html/crushlinux

     

    [root@nginx~]#mkdir /usr/local/nginx/html/cloud

     

    [root@nginx~]# echo "<h1>www.crushlinux.com</h1>" >/usr/local/nginx/html/crushlinux/index.html

     

    [root@nginx~]# echo "<h1>www.cloud.com</h1>" > /usr/local/nginx/html/cloud/index.html

     

    [root@nginx~]# vim /usr/local/nginx/conf/nginx.conf

     

    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  logs/access.log  main;

     

    sendfile        on;

     

    keepalive_timeout  65;

     

        server {

     

            listen       80;

     

    server_name  www.crushlinux.com;

     

    charset utf-8;

     

    access_log  logs/crushlinux.access.log  main;

     

            location / {

     

                root   html/crushlinux;

     

    index  index.html index.htm;

     

            }

     

        }

     

     

        server {

     

            listen       80;

     

    server_name  www.cloud.com;

     

            charset utf-8;

     

    access_log  logs/cloud.access.log  main;

     

            location / {

     

                root   html/cloud;

     

    index  index.html index.htm;

     

            }

     

        }

     

    }

     

     

    [root@nginx~]#systemctl restart nginx

     

    [root@nginx~]# vim /etc/hosts

     

    192.168.200.111 www.crushlinux.com

     

    192.168.200.111 www.cloud.com

     

    虚拟主机访问测试

     

    [root@nginx~]#elinks --dump http://www.crushlinux.com

     

                                     www.crushlinux.com

     

    [root@nginx~]#elinks --dump http://www.cloud.com

     

                                      www.cloud.com

    7、测试

    分别在浏览器中输入域名以及IP地址来查看网页相应内容

     

     

     

     

     

     

     

  • 相关阅读:
    Java实现 蓝桥杯VIP 算法训练 校门外的树
    Java实现 蓝桥杯VIP 算法训练 统计单词个数
    Java实现 蓝桥杯VIP 算法训练 统计单词个数
    Java实现 蓝桥杯VIP 算法训练 开心的金明
    Java实现 蓝桥杯VIP 算法训练 开心的金明
    Java实现 蓝桥杯 算法训练 纪念品分组
    Java实现 蓝桥杯 算法训练 纪念品分组
    Java实现 蓝桥杯VIP 算法训练 校门外的树
    Java实现 蓝桥杯VIP 算法训练 统计单词个数
    Java实现 蓝桥杯VIP 算法训练 开心的金明
  • 原文地址:https://www.cnblogs.com/elin989898/p/11870632.html
Copyright © 2011-2022 走看看