nginx配置 web虚拟主机

nginx

查看nginx pid

nginx -t #检查语法
cat /usr/local/nginx/logs/nginx.pid #查看nginx pid号
lsof -i :80
netstat -natp | grep nginx
ss -tnlp | grep nginx
ps -ef | grep nginx
pgrep nginx

在这里插入图片描述

停止服务

在这里插入图片描述

重载服务

kill -1 <PID号>
kill -s HUP <PID号>
killall -1 nginx
killall -s HUP nginx

日志分割

当满足一定条件时,保存并删除旧的日志

kill -USR1 <PID号>

平滑升级

平滑升级
kill -USR2 <PID号>
kill -3 <PID号>
kill -s QUIT <PID号>
killall -3 nginx
killall -s QUIT nginx

nginx添加为系统服务

方法一

在这里插入图片描述

[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target

在这里插入图片描述
在这里插入图片描述

方法二

vim /etc/init.d/nginx
#!/bin/bash
#chkconfig: - 99 20
#description:Nginx Service Control Script
COM="/usr/local/nginx/sbin/nginx"
PID="/usr/local/nginx/logs/nginx.pid"
case "$1" in
start)
  $COM
;;

stop)
  kill -s QUIT $(cat $PID)
;;

restart)
  $0 stop
  $0 start
;;

reload)
  kill -s HUP $(cat $PID)
;;

在这里插入图片描述
添加为系统服务
在这里插入图片描述

nginx主配置文件

vim /usr/local/nginx/conf/nginx.conf

全局配置

#user nobody; #运行用户,未编译缺省为 nobody
worker_processes 1; #工作进程数量,可配置成服务器内核数*2
#error_log logs/error.log; #错误日志文件的位置
#pid logs/nginx.pid; #PID 文件的位置

在这里插入图片描述
如提高每个进程的连接数还需执行“ulimit -n 65535”命令临时修改本地每个进程可以同时打开的最大文件数。

I/O事件配置

worker_connections 1024 每个进程默认处理1024个连接,可以修改
在这里插入图片描述
ulimit -a 可查看系统允许当前用户进程打开的文件数限制
在这里插入图片描述
查看cpu个数和系统内核版本
在这里插入图片描述

HTTP配置

http {
    ##文件扩展名与文件类型映射表
    include     mime.types;
    ##默认文件类型
    default_type  application/octet-stream;
    ##日志格式设定
    #log_format  main   '$remote_ addr - $remote. user [stime_ local] "$request" '
    #                   '$status $body_ bytes_ sent "Shttp_ referer" '
    #                   "$http_user_agent" "$http_x_forwarded_for"';
    ##访问日志位置
    #access_Log logs/access.log main;
    #支持文件发送(下载) 
    sendfile    on;
    ##此选项允许或禁止使用socket的TCP_CORK的选项( 发送数据包前先缓存数据),此选项仅在使用sendfile的时候使用
    #tcp_nopush        on;
    ##连接保持超时时间,单位是秒
    #keepalive_timeout  0;
    keepalive.timeout  65;
    ##gzip模块设置,设置是否开启gzip压缩输出
    #gzip   on; 

    #Web服务的监听配置
    ##Web服务的监听配置
    server (
        ##监听地址及端口
        listen 80;
        ##站点域名,可以有多个,用空格隔开
        server.name www.benet.com;
        ##网页的默认字符集
        charset utf-8;
        ##根目录配置
        location / {
            ##网站根目录的位置/usr/local/nginx/html
            root html;
            ##默认首页文件名
            index index.html index.php;
        }
        ##内部错误的反馈页而
        error_page 500 502 503 504 /50x.html;
        #错误页而配置
        location = /50x.html {
            root html;
        }
    }
}

在这里插入图片描述
在这里插入图片描述

日志格式设定

$remote_addr$http_x_forwarded_for用以记录客户端的ip地址;
$remote_user: 用来记录客户端用卢名称;
$time_local: 用来记录访问时间与时区;
$request: 用来记录请求的url与http协议;
$status: 用来记录请求状态,成功是200;
$body_bytes_sent: 记录发送给客户端文件主体内容大小;
$http_referer: 用来记录从那个页面链接访问过来的;
$http_user_agent: 记录客户浏览器的相关信息;

通常web服务器放在反向代理的后面,这样就不能获取到客户的IP地址了,通过$remote_add拿到的IP地址是反向代理服务器的IP地址。反问代理服务器在转发请求的http头信息中,可以增加x_forwarded_for信息,用以记录原有客户端的IP地址和原来客户端的请求的服务器地址。

##location常见配置指令,root、alias、proxy_pass

root(根路径配置): 请求www.benet.com/1.jpg,会返回文件/usr/local/nginx/html/test/1.jpg
alias(别名配置): 请求ww . benet.com/test/1.jpg,会返回文件/usr/local/nginx/html/1.jpg
proxy_pass(反向代理配置>;
proxy_pass http://127.0.0.1:8080/;    会转发请求到http://127.0.0.1:8080/1.jpg
proxy_pass http://127.0.0.1:8080;

访问状态统计

查看是否有HTTP_STUB_STATUS模块
在这里插入图片描述
在这里插入图片描述

vim /usr/local/nginx/conf/nginx.conf
......
http {
......
	server {
		listen 80;
		server_name www.ljm.com;
		charset utf-8;
		location / {
			root html;
			index index.html index.php;
		}
		##添加 stub_status 配置##
		location /status { 					#访问位置为/status
			stub_status on; 				#打开状态统计功能
			access_log off; 				#关闭此位置的日志记录
		}
	}
}

在这里插入图片描述
在这里插入图片描述

基于授权访问控制

生成用户密码认证文件
确认依赖包的安装
在这里插入图片描述
原本的文件属主为root,需要修改成nginx,才能修改权限等级
在这里插入图片描述
在这里插入图片描述

修改主配置文件相对应目录,添加认证配置项

vim /usr/local/nginx/conf/nginx.conf
......
  server {
    location / {
      ......
      ##添加认证配置##
      auth_basic "secret" ;
      auth_basic_user_file /usr/local/nginx/passwd.db;
    }
  }

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

基于客户端的访问控制

访问控制规则如下:

  • deny IP/IP 段:拒绝某个 IP 或 IP 段的客户端访问
  • allow IP/IP 段:允许某个 IP 或 IP 段的客户端访问
  • 规则从上往下执行,如匹配则停止,不再往下匹配
vim /usr/local/nginx/conf/nginx.conf
......
	server {
		location / {
			......
			
		    deny 172.16.10.188; 					#拒绝访问的客户端 IP
			allow all;								#允许其它IP客户端访问
		}
	}

在这里插入图片描述

在这里插入图片描述

nginx 虚拟web主机

基于域名的虚拟主机

建立dns域名解析缓存
在这里插入图片描述
准备网页文件
在这里插入图片描述
修改虚拟主机配置
在这里插入图片描述

http {
    server {
        listen 80;
        server_name www.accp.com;
        charset utf-8;
        access_log logs/www.accp.com.access.log;
        location / {
            root /var/www/html/accp;
            index index.html index.html;
        }
        error_page 500 502 503 504 /50x.html;
        location = 50x.html{
            root html;
        }
    }

    server {
        listen 80;
        server_name www.benet.com;
        charset utf-8;
        access_log logs/www.benet.access.com.log;
        location / {
        root /var/www/html/benet;
        index index.html index.html;
        }
        error_page 500 502 503 504 /50x.html;
        location = 50x.html{
            root html;
        }
    }
}

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

基于ip的虚拟主机

ifconfig ens33:0 172.16.10.188 netmask 255.255.255.0 

vim /usr/local/nginx/conf/nginx.conf
......
http {
......
server {
		listen 172.16.10.188:80;					#设置监听地址
		server_name www.accp.com;
		charset utf-8;
		access_log logs/www.accp.access.log; 
		location / {
			root /var/www/html/accp;
			index index.html index.php;
		}
		error_page 500 502 503 504 /50x.html;
		location = 50x.html{
			root html;
		}
	}
server {
	listen 172.16.10.188:80;					#设置监听地址
	server_name www.benet.com;
	charset utf-8;
	access_log logs/www.benet.access.log; 
	location / {
		root /var/www/html/benet;
		index index.html index.php;
	}
	error_page 500 502 503 504 /50x.html;
	location = 50x.html{
		root html;
	}
}	
}

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值