nginx

目录介绍

/usr/local/nginx
├── client_body_temp                 # POST 大文件暂存目录
├── conf                             # Nginx所有配置文件的目录
│   ├── fastcgi.conf                 # fastcgi相关参数的配置文件
│   ├── fastcgi.conf.default         # fastcgi.conf的原始备份文件
│   ├── fastcgi_params               # fastcgi的参数文件
│   ├── fastcgi_params.default      
│   ├── koi-utf
│   ├── koi-win
│   ├── mime.types                   # 媒体类型
│   ├── mime.types.default
│   ├── nginx.conf                   #这是Nginx默认的主配置文件,日常使用和修改的文件
│   ├── nginx.conf.default
│   ├── scgi_params                 # scgi相关参数文件
│   ├── scgi_params.default  
│   ├── uwsgi_params                 # uwsgi相关参数文件
│   ├── uwsgi_params.default
│   └── win-utf
├── fastcgi_temp                     # fastcgi临时数据目录
├── html                             # Nginx默认站点目录
│   ├── 50x.html                     # 错误页面优雅替代显示文件,例如出现502错误时会调用此页面
│   └── index.html                   # 默认的首页文件
├── logs                             # Nginx日志目录
│   ├── access.log                   # 访问日志文件
│   ├── error.log                   # 错误日志文件
│   └── nginx.pid                   # pid文件,Nginx进程启动后,会把所有进程的ID号写到此文件
├── proxy_temp                       # 临时目录
├── sbin                             # Nginx 可执行文件目录
│   └── nginx                       # Nginx 二进制可执行程序
├── scgi_temp                       # 临时目录
└── uwsgi_temp                       # 临时目录       

进程管理

master: 主进程,管理子进程
worker: 子进程,解析用户请求,并读取资源响应请求

nginx -t # 检测nginx.conf语法

nginx -s reload # 重新读取nginx.conf

nginx -s stop # 停止nginx kill -15 nginx

用什么命令启动的,就用什么方式去管理该进程

可以看到 用nginx启动无法使用systemctl命令管理,但是反过来用systemctl命令启动,可以使用nginx的命令管理


[root@iZ2zeco2fmiqbbuzq773qyZ ~]# nginx
[root@iZ2zeco2fmiqbbuzq773qyZ ~]# systemctl status nginx
● nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
   Active: inactive (dead)

Jul 31 11:15:30 iZ2zeco2fmiqbbuzq773qyZ nginx[20368]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Jul 31 11:15:30 iZ2zeco2fmiqbbuzq773qyZ systemd[1]: Started The nginx HTTP and reverse proxy server.
Jul 31 11:16:07 iZ2zeco2fmiqbbuzq773qyZ systemd[1]: Starting The nginx HTTP and reverse proxy server...
Jul 31 11:16:08 iZ2zeco2fmiqbbuzq773qyZ nginx[20424]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Jul 31 11:16:08 iZ2zeco2fmiqbbuzq773qyZ nginx[20424]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Jul 31 11:16:08 iZ2zeco2fmiqbbuzq773qyZ systemd[1]: Started The nginx HTTP and reverse proxy server.
Jul 31 11:16:22 iZ2zeco2fmiqbbuzq773qyZ systemd[1]: Starting The nginx HTTP and reverse proxy server...
Jul 31 11:16:22 iZ2zeco2fmiqbbuzq773qyZ nginx[20457]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Jul 31 11:16:22 iZ2zeco2fmiqbbuzq773qyZ nginx[20457]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Jul 31 11:16:22 iZ2zeco2fmiqbbuzq773qyZ systemd[1]: Started The nginx HTTP and reverse proxy server.


[root@iZ2zeco2fmiqbbuzq773qyZ ~]# systemctl start nginx
[root@iZ2zeco2fmiqbbuzq773qyZ ~]# nginx -s stop


[root@iZ2zeco2fmiqbbuzq773qyZ ~]# systemctl start nginx
[root@iZ2zeco2fmiqbbuzq773qyZ ~]# nginx -s reload

 报这个错误就是说无法找到nginx的pid,所以无法stop。可以echo nginx的pid到这个/var/run/nginx.pid文件中,在执行命令就可以了

[root@iZ2zeco2fmiqbbuzq773qyZ ~]# nginx -s stop
nginx: [error] invalid PID number "" in "/var/run/nginx.pid"
[root@iZ2zeco2fmiqbbuzq773qyZ ~]# ps -ef |grep nginx
root       3599      1  0 16:10 ?        00:00:00 nginx: master process nginx
nginx      3628   3599  0 16:12 ?        00:00:00 nginx: worker process
root       3677   3434  0 16:19 pts/0    00:00:00 grep --color=auto nginx
[root@iZ2zeco2fmiqbbuzq773qyZ ~]# echo 3599 > /var/run/nginx.pid 
[root@iZ2zeco2fmiqbbuzq773qyZ ~]# nginx -s stop

配置文件

全局块:配置影响nginx全局的指令。一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等。

user nginx; #配置用户或者组,默认为nobody nobody
worker_processes auto; #允许生成的进程数
error_log /var/log/nginx/error.log; #制定日志路径,级别。这个设置可以放入全局块,http块,server块。级别以此为:
    DEBUG:最低级别,用于记录详细信息,通常只在调试中使用
    INFO:记录正常运行时的信息
    NOTICE:通知性消息,例如配置文件中的警告
    WARN:警告信息,表明可能存在问题或错误
    ERROR:错误消息,通常表示出现了错误
    CRIT:严重错误,表示发生了严重的问题
    ALERT:紧急错误,表示必须立即采取行动
pid /run/nginx.pid; #指定nginx进程运行文件存放地址

events块:配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。

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

 http块:可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等。

  • server块:配置虚拟主机的相关参数,一个http中可以有多个server。
  • location块:配置请求的路由,以及各种页面的处理情况。
http {
    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;  # 开启sendfile,提高传输效率
    tcp_nopush on;  # 开启tcp_nopush,允许发送部分数据包
    tcp_nodelay on;  # 开启tcp_nodelay,禁用Nagle算法,提高实时性
    keepalive_timeout 65;  # 客户端与服务器的连接超时时间
    types_hash_max_size 4096;  # MIME类型哈希表的最大大小
    include /etc/nginx/mime.types;  # 加载MIME类型配置文件
    default_type application/octet-stream;  # 默认的MIME类型
    # 从/etc/nginx/conf.d目录加载模块化配置文件
    # 更多信息请参考:http://nginx.org/en/docs/ngx_core_module.html#include
    include /etc/nginx/conf.d/*.conf;

    server {
        listen 80;  # 监听80端口
        listen [::]:80;  # 监听IPv6的80端口
        server_name _;  # 默认服务器名
        root /usr/share/nginx/html;  # 默认服务器根目录

        # 加载默认服务器块的配置文件
        include /etc/nginx/default.d/*.conf;

        error_page 404 /404.html;  # 自定义404页面
        location = /404.html { }  # 设置404页面的处理位置

        error_page 500 502 503 504 /50x.html;  # 自定义50x错误页面
        location = /50x.html { }  # 设置50x错误页面的处理位置
    }
}

多IP虚拟主机

给网卡绑定ip

写配置文件

server {

listen 10.0.0.88:80;
server_name _;

location /  {
	root  /www/80/;
	index  index.html;
}

}

修改host可以绑定域名

修改本地hosts 10.0.0.88 88.linux0224.cc 访问该域名也是可以通的,因为依然是基于绑定的socket地址匹配的该虚拟主机文件 http://88.linux0224.cc/

多端口虚拟主机

写配置文件

server {

    listen 10.0.0.8:81;
    server_name _;
	charset utf-8;
    location /  {
        root  /www/data81/;
        index  index.html;
    }

}

server {

    listen 10.0.0.8:82;
    server_name _;
	charset utf-8;
    location /  {
        root  /www/data82/;
        index  index.html;
    }

}

多域名虚拟主机

写配置

域名解析host

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值