Nginx的安装与基本配置(网站构建与维护)

1.安装nginx

1.1yum安装(快,版本低)

[root@localhost ~] yum install pcre pcre-devel openssl openssl-devel gcc -y
[root@localhost ~] yum install nginx -y

1.2更新官方源安装(快,版本高,配置目录不能自定义)

官方源baseurl=http://nginx.org/packages/Centos/7/$basearch/
将官方源写入/etc/yum.repos.d/目录下的文件配置自定义yum源
然后可以yum自动安装高版本的nginx

[root@localhost ~] echo "baseurl=http://nginx.org/packages/Centos/7/$basearch/" >> /etc/yum.repos.d/CentOS-Base.repo
[root@localhost ~] yum clean all
[root@localhost ~] yum install pcre pcre-devel openssl openssl-devel gcc -y
[root@localhost ~] yum install nginx -y

1.3源码安装(慢,自定义版本,自定义配置目录)

#下载https模块

[root@localhost ~] git clone https://github.com/arut/nginx-rtmp-module.git

#下载pcre静态网页重写,openssl加密和gcc编译工具

[root@localhost ~] yum install pcre pcre-devel openssl openssl-devel gcc -y

#下载源码包

[root@localhost ~] wget http://nginx.org/download/nginx-1.18.0.tar.gz

#解压并进入目录

[root@localhost ~] tar xf nginx-1.18.0.tar.gz
[root@localhost nginx-1.18.0] cd nginx-1.18.0

#参数设置

[root@localhost nginx-1.18.0] ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre --add-module=../nginx-rtmp-module

#编译安装

[root@localhost nginx-1.18.0] make && make install 

#指定配置文件

[root@localhost nginx-1.18.0] /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

#启动nginx

[root@localhost nginx-1.18.0] /usr/local/nginx/sbin/nginx 
[root@localhost nginx-1.18.0] netstat -lntup | grep nginx
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      27095/nginx: master 

1.4nginx编译安装的各项参数

--prefix=PATH              路径
--user=USER                用户
--group=GROUP              组
--with-pcre                伪静态
--with-http_stub_status_module      状态显示
—-with-http_ssl_module              加密443

2.nginx配置

1.备份并清空注释

第二行是备份主配置文件
第三行是将备份文件中的注释和空行去掉并重定向定向到配置文件中
第四行是查看更改后的配置文件内容

[root@zhb nginx] cd /usr/local/nginx
[root@zhb nginx] cp /usr/local/nginx/conf/nginx.conf{,.bak} -p
[root@zhb nginx] egrep -v "^$|#" /usr/local/nginx/conf/nginx.conf.bak > /usr/local/nginx/conf/nginx.conf
[root@zhb nginx] cat /usr/local/nginx/conf/nginx.conf
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  localhost;
        location / {
            root   html;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

2.配置文件为/usr/local/nginx/conf/nginx.conf

这是去掉注释后的全部内容

worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {                                    #server模块
        listen       80;                        #监听的网卡及端口      
        server_name  www.example.com ;          #服务名称(可设置多个)
        location / {                            #目录配置
            root   html/zhb;                    #主目录
            index  index.html index.htm;        #默认文档
        }
    }
    error page 500 502 503 504 /50x.html;       #指定错误代码的页面跳转
    location = /50x.html {
        root  html;
    }

}

3.nginx命令的基础参数

3.1 nginx的停止和平滑重启
nginx -s [stop|reload]
3.2 nginx查看版本和具体拥有的模块
nginx -[v|V]
3.3 nginx检查语法错误
nginx -t

4.nginx基本优化

优化1:虚拟主机server文件转移

nginx.conf处改为include xxx/*.conf
并在xxx/目录下存放server信息
可以降低nginx程序的耦合度,方便后期管理

[root@zhb nginx]# cat /usr/local/nginx/conf/nginx.conf
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    include conf/serverconf/*.conf         #conf=/usr/local/nginx/conf
   }
   
[root@zhb nginx]# cat /usr/local/nginx/conf/serverconf/web1.conf
server {
    listen       80;
    server_name  www.example.com example.com ;
    location / {
        root   html/zhb;
        index  index.html index.htm;
    }

优化2:用户不输入www依旧可以访问网站

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

优化3:防止恶意域名解析到自己的ip

因为nginx会根据http请求头中的域名,ip,端口查找相对应的网站,
而如果http请求头中对应的域名在本地配置文件中不包含,
可能就表示有人恶意用域名解析我们的ip,
而当nginx找不到域名对应的server语句时,
nginx就会返回符合ip或端口条件的第一个server对应的网页。

所以我们将nginx.conf的第一个server语句改为一下结构

server{
listen 80;
server_name   _default;
return 500;
}

这个server会监听80端口
当符合条件时,返回500服务器内部错误状态码
或者根据配置文件中的设定进行”404跳转“

优化4:报错日志

#debug, info, notice, warn, error, crit, alert, emerg
#这是报错日志的8个报错级别
#越右边级别越高,日志信息越少
-
-

#格式

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

优化5:访问日志

访问日志是基于ngx_http_log_module实现的

#访问信息格式,这是系统默认的,去掉注释就能用

#log_format  main     '$remote_addr - $remote_user [$time_local] "$request" '	
#                     '$status $body_bytes_sent "$http_referer" '
#                     '"$http_user_agent" "$http_x_forwarded_for"';

#可以在server或http模块中加入一下对访问日志的设置
#即可实现对访问日志的收集

access_log  logs/access_www.log  main gzip  buffer=32k flush=5s;

优化6:日志切割并备份

#设置定时任务每天对日志进行剪切备份,并reload开始新的日志收集

#!/bin/sh
Dateformat=`date +%Y%m%d -d -1d`
Basedir="/usr/local/nginx"
Nginxlogdir="$Basedir/logs"
Logname="access_www"
[ -d $Nginxlogdir ] && cd $Nginxlogdir || exit 1
[ -f ${Logname}.log ] || exit 1
/bin/mv ${Logname}.log ${Logname}_${Dateformat}.log

#重启删除日志文件并重新收集

$Basedir/sbin/nginx  -s  reload

#将以上内容写入脚本中,并设置定时任务,每天凌晨定时运行脚本

00 00 * * *   /bin/sh /application/script/jiaoben.sh

优化7:命令加入环境变量

将nginx命令加入环境变量,方便以后使用

echo "PATH=/usr/local/nginx/sbin/$PATH" >> /etc/profile

优化8:版本管理(代码管理)

nginx是nginx程序存放的实际目录
nginx-kaifa是开发人员设计与测试网站所用的目录
nginx-xianshang是nginx目录的一个软链接

当网页维护更新时,我们只需要先在测试环境中测试
然后上传代码,修改软链接指向,并reload平滑重启服务
即可完成网站的更新与维护

mkdir /application/nginx-xianshang
ln -s /usr/local/nginx /application/nginx-xianshang

优化9:一个显示网站访问数据的网页

通过http_stub_status_module模块搭建网站
实现对访问数据的查看

#status
server{
		listen  80;
		server_name status.zhb.com;
		location / {
				stub_status on;
				access_log  off;
		}
}

设置完毕后访问status.zhb.com就可以看到网站的访问信息

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值