Web快速入门网站部署

Web快速入门网站部署

http server location扩展了解项

## http{}层下允许有多个Server{}层,一个Server{}层下又允许有多个Location 
http{} 标签主要用来解决用户的请求 与响应
server{} 标签主要用来响应具体的某一个网站 
location{} 标签主要用于匹配网站具体URL路径

部署nginx网站

# 1.添加nginx虚拟主机配置
[root@web02 ~]# vi /etc/nginx/conf.d/game.drz.com.conf
server{
       # 监听80端口
       listen 80; 
       # 指定访问的域名
       server_name game.dsr.com;
       # 配置URL
       location / {
       # 站点目录
                root /code/h5_games;       
       # 指定主页面
                index index.html;
       }
}

# 2.创建站点目录
[root@web02 ~]# mkdir /code

# 3.修改站点目录权限
[root@web02 ~]# chown nginx.nginx /code/

# 4.部署代码
[root@web02 ~]# mv h5_games.zip /code/

# 5.解压代码
[root@web02 ~]# unzip h5_games.zip

# 6.重新加载nginx的配置文件
[root@web02 code]# systemctl reload nginx

# 7.本地域名解析
windows打开:C:\Windows\System32\drivers\etc\hosts文件
10.0.0.8 game.drz.com

# 8.打开浏览器:http://game.drz.com      

image

配置Nginx的虚拟主机的三种方式

  • 基于IP方式:新建网卡
  • 基于端口方式:修改端口
  • 基于域名方式:多域名

Nginx日志管理

nginx默认日志格式语法

log_format main '$remote_addr - $remote_user [$time_local] "$request" $request_time'
                '$status $body_bytes_sent "$http_referer" '
                '"$http_user_agent" "$http_x_forwarded_for"';
                
                
$remote_addr      # 记录客户端IP地址
$remote_user      # 记录客户端用户名
$time_local       # 记录通用的本地时间
$time_iso8601     # 记录ISO8601标准格式下的本地时间
$request          # 记录请求的方法以及请求的http协议
$status           # 记录请求状态码(用于定位错误信息)
$body_bytes_sent  # 发送给客户端的资源字节数,不包括响应头的大小
$bytes_sent       # 发送给客户端的总字节数
$msec             # 日志写入时间。单位为秒,精度是毫秒。
$http_referer     # 记录从哪个页面链接访问过来的
$http_user_agent  # 记录客户端浏览器相关信息
$http_x_forwarded_for #记录客户端IP地址
$request_length   # 请求的长度(包括请求行, 请求头和请求正文)。
$request_time     # 请求花费的时间,单位为秒,精度毫秒

# 注:如果Nginx位于负载均衡器,nginx反向代理之后, web服务器无法直接获取到客户端真实的IP地址。
# $remote_addr获取的是反向代理的IP地址。 反向代理服务器在转发请求的http头信息中,
# 增加X-Forwarded-For信息,用来记录客户端IP地址和客户端请求的服务器地址。

access_log日志配置语法

Syntax: access_log path [format [buffer=size] [gzip[=level]] [flush=time] [if=condition]];
access_log off;
Default: access_log logs/access.log combined;
Context: http, server, location, if in location, limit_except

Nginx Access日志配置实践

server {
    listen 80;
    server_name code.oldboy.com;

    #将当前的server网站的访问日志记录至对应的目录,使用main格式
    access_log /var/log/nginx/code.oldboy.com.log main;
    location / {
        root /code;
    }

    #当有人请求改favicon.ico时,不记录日志
    location /favicon.ico {
        access_log off;
        return 200;
    }
}

nginx日志切割

[root@nginx conf.d]# cat /etc/logrotate.d/nginx
/var/log/nginx/*.log {
        daily                   # 每天切割日志
        missingok               # 日志丢失忽略
        rotate 52               # 日志保留52天
        compress                # 日志文件压缩
        delaycompress           # 延迟压缩日志
        notifempty              # 不切割空文件
        create 640 nginx adm    # 日志文件权限
        sharedscripts
        postrotate      # 切割日志执行的命令
                if [ -f /var/run/nginx.pid ]; then
                        kill -USR1 `cat /var/run/nginx.pid`
                fi
        endscript
}

## 日志切割后的效果
[root@oldboy ~]# ll /var/log/nginx/
total 4044
-rw-r----- 1 www adm  54438 Oct 12 03:28 access.log-20181012.gz
-rw-r----- 1 www adm  28657 Oct 13 03:48 access.log-20181013.gz
-rw-r----- 1 www adm  10135 Oct 12 03:28 error.log-20181130.gz
-rw-r----- 1 www adm   7452 Oct 13 03:48 error.log-20181201.gz

使用fpm打包

# 1.获取fpm工具
[root@web01 ~]# wget http://test.driverzeng.com/other/fpm-1.3.3.x86_64.tar.gz

# 2.安装Ruby环境
[root@web01 ~]# yum -y install ruby rubygems ruby-devel

# 3.解压fpm工具
[root@web01 ~]# tar xf fpm-1.3.3.x86_64.tar.gz

# 4.查看gem源
[root@web01 ~]# gem source list

# 5.追加阿里云的gem源
[root@web01 ~]# gem sources -a http://mirrors.aliyun.com/rubygems/

# 6.删除国外源
[root@web01 ~]# gem sources --remove https://rubygems.org/

# 7.安装fpm工具
[root@web01 ~]# gem install *.gem

## 存储nginx的依赖包
yum install -y openssl-devel pcre-devel zlib-devel --downloadonly --downloaddir=/tmp

## 源码安装nginx
[root@web01 ~]# wget https://nginx.org/download/nginx-1.20.1.tar.gz
[root@web01 ~]# mkdir /app
[root@web01 ~]# tar xf nginx-1.20.1.tar.gz
[root@web01 ~]# ./configure --prefix=/app/nginx-1.20.1 --with-compat --with-file-aio -
-with-threads --with-http_addition_module --with-http_auth_request_module --withhttp_dav_module --with-http_flv_module --with-http_gunzip_module --withhttp_gzip_static_module --with-http_mp4_module --with-http_random_index_module --withhttp_realip_module --with-http_secure_link_module --with-http_slice_module --withhttp_ssl_module --with-http_stub_status_module --with-http_sub_module --withhttp_v2_module --with-mail --with-mail_ssl_module --with-stream --withstream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --withcc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protectorstrong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie'

[root@web01 nginx-1.20.1]# make && make install

## 写运行脚本
#!/bin/bash
groupadd www -g 666
useradd www -u 666 -g 666 -s /sbin/nologin -M

echo '
[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target

[Service]
Type=forking
ExecStart=/app/nginx/sbin/nginx
ExecReload=/app/nginx/sbin/nginx -s reload
ExecStop=/app/nginx/sbin/nginx -s stop

[Install]
WantedBy=multi-user.target' > /usr/lib/systemd/system/nginx.service

ln -s /app/nginx-1.20.1 /app/nginx

posted @ 2021-08-07 11:30  平凡的人不平凡的事  阅读(161)  评论(0编辑  收藏  举报