运维之网站的设置、虚拟主机使用

在conf中只有一个serve时,该站就是默认网站

基本设置

'''默认网站'''
 server {
        #虚拟主机使用的端口
        listen       80;
        #虚拟主机域名
        server_name  localhost;

        #虚拟主机支持的字符集
        charset utf-8;

        #访问日志路径,多个网站必须单独设定
        #access_log  logs/host.access.log  main;

        #定义web根路径
        location / {
            #根目录路径
            root   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   html;
        }

访问控制

某些链接只允许本机访问

location /a {
    allow 192.168.1.0/24;  或者 localhost
    deny all;  # 拒绝所有
    #return 404;  可以迷惑访问者
    #return http://www.jd.com; 
}

访问页面登录验证

location /c {
    auth_basic "登陆验证"; 
    auth_basic_user_file /etc/nginx/htpasswd;
}

自定义访问日志

  • log_format格式变 :
  • $remote_addr #记录访问 站的客户端地址
  • $remote_user #远程客户端 户名
  • $time_local #记录访问时间与时区
  • $request # 户的http请求起始 信息
  • $status #http状态码,记录请求返回的状态码, 如:200、301、404等
  • $body_bytes_sent #服务 发送给客户端的响应body字节数
  • $http_referer #记录此次请求是从哪个连接访问过来的,可以根据该参数进 防盗链设置。
  • $http_user_agent #记录客户端访问信息, 如:浏览 、 机客户端等
  • $http_x_forwarded_for #当前端有代 服务 时,设置web节点记录客户端地址的配置,此参数 效的前提是代 服务 也要进 相关的x_forwarded_for设置

自定义日志格式json

log_format main_json '{"@timestamp":"$time_local",' '"client_ip": "$remote_addr",'
'"request": "$request",'
'"status": "$status",'
'"bytes": "$body_bytes_sent",'
'"x_forwarded": "$http_x_forwarded_for",'
'"referer": "$http_referer"'
'}’;
access_log logs/access_json.log main_json;

防盗链

location /images/ {
    alias /data/images/;
    valid_referers none blocked *.ayitula.com; 
    if ($invalid_referer) {
        return 403;
} }

虚拟主机

同时发布两个网站:
目录:
DocumentRoot /usr/local/nginx/html/web1 
DocumentRoot /usr/local/nginx/html/web2
  • 基于IP的不同虚拟主机

!!缺点 需要多个IP 如果是公网IP 每个IP都需要付费

server {
    listen location / {
        root index
        192.168.10.42:80;
        html/web1;
        index.html index.htm index.php;
    } 
}

# 第二个
server { 
    listen location / { 
    root index
    192.168.10.52:80;
    html/web2; 
    index.html index.htm;
    } 
}
  • 基于端口的不同虚拟主机

!!缺点 缺点 端口你是无法告诉公网用户 无法适用于公网客户 适合内部用户

# 基于端口 

server {
    listen 80;
    #server_name www.abc.com;
    location / {
        root  html/web1;
        index  index.html index.htm index.php;
    }
}
    

server {
    listen 8080;
    #server_name www.abc.com;
    location / {
        root  html/web2;
        index  index.html index.htm index.php;
    }
}
  • 基于域名的不同虚拟主机

!!缺点 一个网站必然有一个域名

server {
    listen 80;
    server_name www.abc.com;
    location / {
        root  html/web2;
        index  index.html index.htm index.php;
    }
}

server {
    listen 80;
    server_name www.xxjb.com;
    location / {
        root  html/web2;
        index  index.html index.htm;
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_42329277/article/details/84784535