Linux之Nginx配置

nginx的功能性学习,所有的功能都是通过nginx.conf配置文件定义的

修改配置参数,就实现了不同的功能

1、使用nginx配置一个站点,进行访问,例如index.html 

 vim /html/index.html

2、nginx.conf中的配置

【虚拟主机站点功能】

server {
        # 监听端口
        listen       85;
        # 域名可以有多个用空格隔开
        server_name  localhost;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
        #access_log  "pipe:rollback logs/host.access_log interval=1d baknum=7 maxsize=2G"  main;
        #网站的路径匹配,如同django的urls匹配,对用户的访问url进行路径分配
        #当请求url长这样时:
        # 192.168.16.142:85/  就走如下location配置        
        location / {
            #deny  192.168.16.0/24;
            #root参数是定义网页根目录的,可以修改
            root   /opt/html;
            #index 定义网页首页名字的
            index  index.html index.htm;
        }
        #当用户请求url是 192.168.16.142:85/pic/monkeyKing.jpg
        location /pic  {
            #通过alias别名参数,去这个路径下找
            alias   /opt/pic/;
        }
        # 404页面
        error_page  404              /404.html;
        # redirect server error pages to the static page /50x.html
    }

【日志功能】

找到nginx.conf中的http{}代码块,然后,找到里面的如下配置

#日志格式设定
        #$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地址和原来客户端的请求的服务器地址。
        log_format access '$remote_addr - $remote_user [$time_local] "$request" '
        '$status $body_bytes_sent "$http_referer" '
        '"$http_user_agent" $http_x_forwarded_for';

【禁止访问】

在nginx.conf中,找到如下参数,修改

location / {
     #拒绝访问,192.168.16.0网段的同学都无法访问  /24是子网掩码的意思
    deny  192.168.16.0/24;
    root   html;
    index  index.html index.htm;
}

【修改虚拟主机的家目录】

虚拟主机就是nginx.conf中 server{}标签定义的代码
网站的路径匹配,如同django的urls匹配,对用户的访问url进行路径分配

#当请求url长这样时:
# 192.168.16.142:85/  就走如下location配置        
location / {
            #deny  192.168.16.0/24;
            #root参数是定义网页根目录的,可以修改
            root   /opt/html;
            #index 定义网页首页名字的
            index  index.html index.htm;
        }
#当用户请求url是 192.168.16.142:85/pic/monkeyKing.jpg
location /pic  {
        #通过alias别名参数,去这个路径下找
        alias   /opt/pic/;
}

location /media {
        alias  /opt/media;
}

【虚拟主机功能】

一个nginx下运行多个网址

# 找到nginx安装目录下的conf文件夹,找到nginx.conf
# 通过编写多个server标签实现多虚拟主机
# nginx.conf配置如下:
    # 虚拟主机1:
    server {
        # 监听的端口
        listen       80;
        #这里进行域名匹配
        server_name  www.s20hanju.tv;
        #这里进行路径匹配
        location / {
            #root定义网页根目录
            root   /opt/s20/hanju;
            #index 定义网站首页文件名
            index  index.html;
        }
    }
    # 虚拟主机2:
    server {
        listen  81;
        server_name www.s20lol.tv;
        location / {
                root /opt/s20/lol;
                index index.html;
        }
    }

# 改完nginx.conf的配置,需要重启nginx -s reload

# 分别准备hanju和lol的数据文件夹

# 然后再去windows中准备hosts文件,进行域名解析
# 文件绝对路径
# C:WindowsSystem32driversetchosts
# 内容如下:
    192.168.16.142  www.s20hanju.tv
    192.168.16.142  www.s20lol.tv

# 最后在windows中进行访问,分别访问lol和hanju的网址内容
原文地址:https://www.cnblogs.com/yongyuandishen/p/14905921.html