zoukankan      html  css  js  c++  java
  • 第六章 Nginx配置文件详解

    为了让大家更清晰的了解Nginx软件的全貌,可使用rpm -ql nginx查看整体的目录结构及对应的功能,如下表格整理了Nginx比较重要的配置文件
    
    [root@staging ~]# rpm -ql nginx
    /etc/logrotate.d/nginx
    /etc/nginx/fastcgi.conf
    /etc/nginx/fastcgi.conf.default
    /etc/nginx/fastcgi_params
    /etc/nginx/fastcgi_params.default
    /etc/nginx/koi-utf
    /etc/nginx/koi-win
    /etc/nginx/mime.types
    /etc/nginx/mime.types.default
    /etc/nginx/nginx.conf
    /etc/nginx/nginx.conf.default
    /etc/nginx/scgi_params
    /etc/nginx/scgi_params.default
    /etc/nginx/uwsgi_params
    /etc/nginx/uwsgi_params.default
    /etc/nginx/win-utf
    /usr/bin/nginx-upgrade
    /usr/lib/systemd/system/nginx.service
    /usr/lib64/nginx/modules
    /usr/sbin/nginx
    /usr/share/doc/nginx-1.16.1
    /usr/share/doc/nginx-1.16.1/CHANGES
    /usr/share/doc/nginx-1.16.1/README
    /usr/share/doc/nginx-1.16.1/README.dynamic
    /usr/share/doc/nginx-1.16.1/UPGRADE-NOTES-1.6-to-1.10
    /usr/share/licenses/nginx-1.16.1
    /usr/share/licenses/nginx-1.16.1/LICENSE
    /usr/share/man/man3/nginx.3pm.gz
    /usr/share/man/man8/nginx-upgrade.8.gz
    /usr/share/man/man8/nginx.8.gz
    /usr/share/nginx/html/404.html
    /usr/share/nginx/html/50x.html
    /usr/share/nginx/html/en-US
    /usr/share/nginx/html/icons
    /usr/share/nginx/html/icons/poweredby.png
    /usr/share/nginx/html/img
    /usr/share/nginx/html/index.html
    /usr/share/nginx/html/nginx-logo.png
    /usr/share/nginx/html/poweredby.png
    /usr/share/vim/vimfiles/ftdetect/nginx.vim
    /usr/share/vim/vimfiles/ftplugin/nginx.vim
    /usr/share/vim/vimfiles/indent/nginx.vim
    /usr/share/vim/vimfiles/syntax/nginx.vim
    /var/lib/nginx
    /var/lib/nginx/tmp
    /var/log/nginx
    

    一、Nginx主配置文件

    路径 类型 作用
    /etc/nginx/nginx.conf 配置文件 nginx主配置文件
    /etc/nginx/conf.d/default.conf 配置文件 默认网站配置文件

    二、Nginx代理相关参数文件

    路径 类型 作用
    /etc/nginx/fastcgi_params 配置文件 Fastcgi代理配置文件(php)
    /etc/nginx/scgi_params 配置文件 scgi代理配置文件
    /etc/nginx/uwsgi_params 配置文件 uwsgi代理配置文件(python)

    三、Nginx编码相关配置文件

    路径 类型 作用
    /etc/nginx/win-utf 配置文件 Nginx编码转换映射文件
    /etc/nginx/koi-utf 配置文件 Nginx编码转换映射文件
    /etc/nginx/koi-win 配置文件 Nginx编码转换映射文件
    /etc/nginx/mime.types 配置文件 Content-Type与扩展名,nginx支持的数据类型

    四、Nginx管理相关命令

    路径 类型 作用
    /usr/sbin/nginx 命令 Nginx命令行管理终端工具
    /usr/sbin/nginx-debug 命令 Nginx命令行与终端调试工具

    五、Nginx日志相关目录与文件

    路径 类型 作用
    /var/log/nginx 目录 Nginx默认存放日志目录
    /etc/logrotate.d/nginx 配置文件 Nginx默认的日志切割

    六、Nginx主配置文件

    1.nginx主配置文件概述

    Nginx主配置文件/etc/nginx/nginx.conf是一个纯文本类型的文件,整个配置文件是以区块的形式组织的。一般,每个区块以一对大括号{}来表示开始与结束。
    
    Nginx主配置文件整体分为三块进行学习,分别是CoreModule(核心模块),EventModule(事件驱动模块),HttpCoreModule(http内核模块)
    

    2.nginx主配置文件详解

    [root@web02 ~]# cat /etc/nginx/nginx.conf
    #---------------------------核心模块------------------------------
    #定义nginx启动用户和用户组
    user  www www;
    #工作进程数,建议设置为等于CPU总核心数
    worker_processes  1;
    #错误日志		debug/info/notice/warn/error/emeor
    error_log  /var/log/nginx/error.log warn;
    #pid文件
    pid        /var/run/nginx.pid;
    
    #---------------------------事件驱动模块---------------------------
    #事件
    events {
    	#工作进程的连接数
        worker_connections  1024;
    }
    
    #------------------------------http内核模块------------------------
    #网站配置
    http {
    	#nginx包含的文件类型
        include       /etc/nginx/mime.types;
        #当遇到nginx不识别的文件就会下载
        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;
        
    	server {
    		#服务监听端口
            listen       80;
            #域名
            server_name  localhost;
            #字符集
            charset koi8-r;
            #请求的地址
            location / {
            	#站点目录,当访问/的时候跳转目录
                root   /usr/share/nginx/html;
                #默认访问页面
                index  index.html index.htm;
            }
        }
    

    七、Nginx搭建小游戏示例

    1.需求

    1.使用两种方式安装方式安装nginx
    2.搭建一个和多个小游戏页面
    

    2.环境准备

    主机 角色 IP
    web01 使用官方源安装nginx搭建多个小游戏 10.0.0.7
    web02 使用源码安装nginx搭建一个游戏页面 10.0.0.8

    3.web01搭建游戏页面

    1.关闭防火墙
    [root@web01 ~]# systemctl stop firewalld
    [root@web01 ~]# systemctl disable firewalld
    
    2.关闭selinux
    [root@web01 ~]# setenforce 0         
    [root@web01 ~]# vim /etc/selinux/config
    SELINUX=disabled
    
    3.配置官方源
    [root@web01 ~]# vim /etc/yum.repos.d/nginx.repo
    [nginx-stable]
    name=nginx stable repo
    baseurl=http://nginx.org/packages/centos/7/$basearch/
    gpgcheck=1
    enabled=1
    gpgkey=https://nginx.org/keys/nginx_signing.key
    module_hotfixes=true
    
    4.安装依赖
    [root@web01 ~]# yum install -y gcc gcc-c++ autoconf pcre pcre-devel make automake wget httpd-tools vim tree
    
    5.安装nginx
    [root@web01 ~]# yum -y install  nginx
    
    6.启动服务设置开机自启并验证服务
    [root@web01 ~]# systemctl  start nginx
    [root@web01 ~]# systemctl  enable nginx
    [root@web01 ~]# netstat  -lntp
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
    tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      6125/rpcbind        
    tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      8840/nginx: master  
    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      7108/sshd           
    tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      7249/master         
    tcp6       0      0 :::111                  :::*                    LISTEN      6125/rpcbind        
    tcp6       0      0 :::22                   :::*                    LISTEN      7108/sshd           
    tcp6       0      0 ::1:25                  :::*                    LISTEN      7249/master     
    
    
    8.修改nginx主配置文件
    [root@web01 ~]# vim /etc/nginx/nginx.conf 
    user  www;
    
    9.创建统一用户
    [root@web01 ~]# groupadd www -g 666
    [root@web01 ~]# useradd www -u 666 -g 666
    
    10.修改nginx站点配置文件
    [root@web01 /code]# vim /etc/nginx/conf.d/default.conf 
     server {
       listen 80;
       server_name www.oldboy.com;
       location / {
       root /code/malio;
       index index.html index.htm;
            }
    }
    
     server {
       listen 81;
       server_name www.jh.com;
       location / {
       root /code/tank;
       index index.html index.htm;
            }
    }
    
     server {
       listen 82;
       server_name www.jindada.com;
       location / {
       root /code/tuixiangzi;
       index index.html index.htm;
            }
    }
    
    11.创建目录
    [root@web01 ~]# mkdir /code
    
    12.上传游戏压缩包
    [root@web01 ~]# rz -E
    rz waiting to receive.
    [root@web01 ~]# ll
    total 2852
    -rw-r--r--  1 root root  148142 Jun  5 00:06 html5-mario.zip
    -rw-r--r--  1 root root  167427 Jun  5 00:00 tank.zip
    -rw-r--r--  1 root root   64723 Jun  4 18:40 tuixiangzi.zip
    -rw-r--r--  1 root root 2525626 Jun  4 18:06 weijingzhanzheng.zip
    
    13。解压到指定目录,并重命名
    [root@web01 ~]# unzip /root/html5-mario.zip -d /code
    [root@web01 ~]# mv html5-mario/ ./malio
    
    [root@web01 ~]# unzip /root/tank.zip  -d /code/
    [root@web01 ~]# mv Battle_City/ ./tank
    
    [root@web01 ~]# unzip /root/tuixiangzi.zip  -d /code/
    [root@web01 ~]# mv HTML5\ canvas小人推箱子小游戏/ tuixiangzi
    
    14.修改权限
    [root@web01 ~]# chown  -R www:www /code/
    
    15.检查nginx,重启服务
    [root@web01 /code]# nginx -t
    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    nginx: configuration file /etc/nginx/nginx.conf test is successful
    [root@web01 /code]# systemctl  restart nginx
    
    16.修改windows下hosts文件
    C:\Windows\System32\drivers\etc\hosts
    10.0.0.7	www.jh.com
    10.0.0.7	www.oldboy.com
    10.0.0.7	www.jindada.com
    
    

    4.web02搭建游戏页面

    1.关闭防火墙
    [root@web02 ~]# systemctl stop firewalld
    [root@web02 ~]# systemctl disable firewalld
    
    2.关闭selinux
    [root@web02 ~]# setenforce 0         
    [root@web02 ~]# vim /etc/selinux/config
    SELINUX=disabled
    
    3.安装依赖
    [root@web02 ~]# yum install -y gcc gcc-c++ autoconf pcre pcre-devel make automake wget httpd-tools vim tree
    
    4.下载或上传源码包
    [root@web02 ~]#  wget http://nginx.org/download/nginx-1.18.0.tar.gz
    #或者
    [root@web03 ~]# rz nginx-1.18.0.tar.gz
    
    5.解压
    [root@web02 ~]# tar xf nginx-1.18.0.tar.gz 
    
    6.创建用户
    [root@web02 ~]# groupadd www -g 666
    [root@web02 ~]# useradd www -u 666 -g 666
    
    7.生成编译文件
    [root@web02 ~]# cd nginx-1.18.0/
    [root@web02 ~/nginx-1.18.0]# ./configure --prefix=/usr/local/nginx-1.18.0 --user=www --group=www --with-http_addition_module --with-http_auth_request_module --without-http_gzip_module
    
    8.编译安装
    [root@web02 ~/nginx-1.18.0]# make && make install
    
    9.配置system管理
    [root@web02 ~]# vim /etc/systemd/system/nginx.service 
    [Unit]
    Description=nginx - high performance web server
    After=network.target remote-fs.target nss-lookup.target
    [Service]
    Type=forking
    ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
    ExecReload=/usr/local/nginx/sbin/nginx -s reload
    ExecStop=/usr/local/nginx/sbin/nginx -s stop
    [Install]
    WantedBy=multi-user.target
    
    10.做软连接
    [root@web02 ~]# ln -s /usr/local/nginx-1.18.0 /usr/local/nginx
    
    12.配置环境变量
    [root@web02 ~]# vim /etc/profile.d/nginx.sh
    export PATH=/usr/local/nginx/sbin/:$PATH
    
    13.启动nginx服务
    [root@web03 ~]# systemctl daemon-reload
    [root@web03 ~]# systemctl start nginx
    #配置开机自启
    [root@web03 ~]# systemctl enable nginx
    
    14.修改nginx主配置文件
    [root@web02 ~]# vim /usr/local/nginx-1.18.0/conf/nginx.conf
    user  www;
        server {
            listen       80;
            server_name  localhost;
    
            #charset koi8-r;
    
            #access_log  logs/host.access.log  main;
                root   /code/tuixiangzi;
                index  index.html index.htm;
            }
    
    14.创建目录
    [root@web02 ~]# mkdir /code
    
    15.上传游戏包并解压到指定目录,重命名为tuixiangzi
    [root@web02 ~]# rz -bye
    [root@web02 ~]# ll
    total 1088
    -rw-r--r--  1 root root   64723 2020-06-04 18:40 tuixiangzi.zip
    [root@web02 ~]#  unzip tuixiangzi.zip  -d /code/
    [root@web02 ~]# mv /code/HTML5\ canvas小人推箱子小游戏/ /code/tuixiangzi
    
    16.修改权限
    [root@web02 ~]# chown  -R www:www /code/
    
    17.验证服务重启服务
    [root@web02 ~]# nginx  -t
    nginx: the configuration file /usr/local/nginx-1.18.0/conf/nginx.conf syntax is ok
    nginx: configuration file /usr/local/nginx-1.18.0/conf/nginx.conf test is successful
    [root@web02 ~]# systemctl  restart nginx
    

    5.测试

    1.web01打开浏览器使用域名正常登陆游戏页面
    wwwww.jh.com:81		#正常显示
    www.oldboy.com		#正常显示
    www.jindada.cow:82	#正常显示
    
    2.web02打开浏览器使用ip正常登陆游戏页面
    10.0.0.8		#正常显示
    

    八、Nginx常用配置方式

    1.配置方式一

    1.配置
    [root@web03 ~]# cat /usr/local/nginx/conf/nginx.conf
    user www;
    worker_processes  1;
    error_log /tmp/nginx.err;
    
    events {
        worker_connections  1024;
    }
    
    http {
        include       /usr/local/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  /usr/local/nginx/logs/access.log  main;
        sendfile        on;
        keepalive_timeout  65;
    
        server {
            listen       80;
            server_name  localhost;
    
            location / {
                root   /code;
                index  index.html;
            }
        }
    }
    
    2.上传小游戏代码
    [root@web03 ~]# mkdir /code
    #推送代码到站点目录
    [root@web02 /code]# scp -r tuixiangzi 172.16.1.9:/code/
    
    [root@web03 ~]# ll /code/
    total 0
    drwxr-xr-x 4 root root 48 2020-08-24 17:08 tuixiangzi
    
    3、访问测试略
    

    2.配置方式二

    1.配置
    [root@web03 ~]# cat !$
    cat /usr/local/nginx/conf/nginx.conf
    user www;
    worker_processes  1;
    error_log /tmp/nginx.err;
    events {
        worker_connections  1024;
    }
    http {
        include       /usr/local/nginx/conf/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  /usr/local/nginx/logs/access.log  main;
        sendfile        on;
        keepalive_timeout  65;
    
        include    /usr/local/nginx/conf/conf.d/*.conf;
    }
    
    #创建指定配置文件的目录
    [root@web03 ~]# mkdir /usr/local/nginx/conf/conf.d
    
    #配置
    [root@web03 ~]# vim /usr/local/nginx/conf/conf.d/default.conf
    server {
        listen 80;
        server_name localhost;
    
        location / {
            root /code/tuixiangzi;
            index index.html;
        }
    }
    
    #检查配置,授权
    [root@web03 ~]# nginx -t
    nginx: the configuration file /usr/local/nginx-1.18.0/conf/nginx.conf syntax is ok
    nginx: configuration file /usr/local/nginx-1.18.0/conf/nginx.conf test is successful
    [root@web03 ~]# chown -R www.www /usr/local/nginx/conf/
    
    #重启
    [root@web03 ~]# systemctl restart nginx
    
    2.访问测试略
    
  • 相关阅读:
    linux一些配置
    tomcat启动后,页面无法访问
    利用jmeter实现多IP压测
    java操作数据库
    excle中表头分割单元格
    常用的最大流算法 Dinic 和 最小费用最大流SPFA写法
    [kuangbin]带你飞之'网络流'专题
    (留坑以后再看)一般图'最大匹配' 带花树 算法
    二分图'多重匹配'
    二分图'最大匹配' HK 算法
  • 原文地址:https://www.cnblogs.com/jhno1/p/13591679.html
Copyright © 2011-2022 走看看