Nginx网站服务

编译安装 Nginx

1)安装支持软件

Nginx
的配置及运行需要 pcre、zlib 等软件包的支持,因此应预先安装这些软件的开 发包(devel),以便提供相应的库和头文件,确保 Nginx
的安装顺利完成。


[root@localhost
~]# yum -y install pcre-devel zlib-devel


2)创建运行用户、组

Nginx
服务程序默认以 nobody 身份运行,建议为其创建专门的用户账号,以便更准确

地控制其访问权限,增加灵活性、降低安全风险。例如,创建一个名为
nginx 的用户,不建

立宿主文件夹,也禁止登录到
Shell 环境。


[root@localhost
~]# useradd -M -s /sbin/nologin nginx


3)编译安装 Nginx

配置 Nginx
的编译选项时,将安装目录设为/usr/local/nginx,运行用户和组均设为

nginx;启用
http_stub_status_module 模块以支持状态统计,便于查看服务器的连接信息。

具体选项根据实际需要来定,配置前可参考“./configure
–help”给出的说明。


[root@localhost
~]# tar zxf nginx-1.12.0.tar.gz

[root@localhost
~]# cd nginx-1.12.0

[root@localhost
nginx-1.12.0]# ./configure --prefix=/usr/local/nginx --user=nginx

–group=nginx
–with-http_stub_status_module

[root@localhost
nginx-1.12.0]# make && make install


为了使 Nginx
服务器的运行更加方便,可以为主程序 nginx 创建链接文件,以便管理员

直接执行“nginx”命令就可以调用
Nginx 的主程序。


[root@localhost
nginx-1.12.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

[root@localhost
nginx-1.12.0]# ls -l /usr/local/sbin/nginx

lrwxrwxrwx
1 root root 27 5 月 16 16:50 /usr/local/sbin/nginx ->

/usr/local/nginx/sbin/nginx


Nginx 的运行控制

1)检查配置文件

与 Apache
的主程序 httpd 类似,Nginx 的主程序也提供了“-t”选项用来对配置文件

进行检查,以便找出不当或错误的配置。配置文件
nginx.conf 默认位于安装目录下的 conf/

子目录中。若要检查位于其他位置的配置文件,可使用“-c”选项来指定路径。


[root@localhost
~]# nginx -t

nginx:
the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok

nginx:
configuration file /usr/local/nginx/conf/nginx.conf test is successful


2)启动、停止 Nginx

直接运行 Nginx
即可启动 Nginx 服务器,这种方式将使用默认的配置文件,若要改用其

他配置文件,需添加“-c
配置文件路径”选项来指定路径。需要注意的是,若服务器中已

装有 httpd
等其他 Web 服务软件,应采取措施(修改端口、停用或卸载)避免冲突。


[root@localhost ~]# nginx 通过检查 Nginx
程序的监听状态,或者在浏览器中访问此 Web 服务(默认页面将显示“Welcom to nginx!”),可以确认 Nginx 服务是否正常运行。

[root@localhost
~]# netstat -anpt | grep nginx

tcp
0 0 0.0.0.0:80 0.0.0.0:* LISTEN

7180/nginx:
master

[root@localhost
~]# yum -y install elinks

[root@localhost ~]# elinks ​ ​http://localhost​​ 使用 elinks 浏览器


//显示“Welcome
to nginx!”页面,表明 Nginx 服务已经正常运行

主程序 Nginx
支持标准的进程信号,通过 kill 或 killall 命令发送 HUP 信号表示重载

配置,QUIT
信号表示退出进程,KILL 信号表示杀死进程。例如,若使用 killall 命令,重

载配置、停止服务的操作分别如下所示(通过“-s”选项指定信号种类)。


[root@localhost
~]# killall -s HUP nginx //选项 -s HUP 等同于 -1

[root@localhost
~]# killall -s QUIT nginx //选项 -s QUIT 等同于 -3


当 Nginx
进程运行时,PID 号默认存放在 logs/目录下的 nginx.pid 文件中,因此若改

用 kill
命令,也可以根据 nginx.pid 文件中的 PID 号来进行控制。

3)添加 Nginx 系统服务

为了使 Nginx
服务的启动、停止、重载等操作更加方便,可以编写基于 CentOS 7.3 的

Nginx
服务控制文件使用 systemctl 工具来进行管理,CentOS7.3 系统的管理习惯。


[root@localhost
~]# vim /lib/systemd/system/nginx.service

[Unit]

Description=nginx //描述

After=network.target //描述服务类别

[Service]

Type=forking //后台运行形式

PIDFile=/usr/local/nginx/logs/nginx.pid //PID
文件位置

ExecStart=/usr/local/nginx/sbin/nginx //启动服务

ExecReload=/usr/bin/kill -s HUP $MAINPID //根据 PID
重载配置

ExecStop=/usr/bin/kill -s QUIT $MAINPID //根据 PID
终止进程

PrivateTmp=true

[Install]

WantedBy=multi-user.target

[root@localhost
~]# chmod 754 /lib/systemd/system/nginx.service

[root@localhost
~]# systemctl enable nginx.service

Created
symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to

/usr/lib/systemd/system/nginx.service. 这样一来,就可以 systemctl 命令来启动、停止、重启、重载 Nginx 服务器了,方法是在执行时添加相应的 start、stop、restart、reload 参数。


配置文件 nginx.conf

在 Nginx
服务器的主配置文件/usr/local/nginx/conf/nginx.conf 中,包括全局配置、

I/O 事件配置和
HTTP 配置这三大块内容,配置语句的格式为“关键字 值;”(末尾以分号

表示结束),以“#”开始的部分表示注释。

1.全局配置

由各种配置语句组成,不使用特定的界定标记。全局配置部分包括
Nginx 服务的运行用

户、工作进程数、错误日志、PID
存放位置等基本设置。

#user nobody; //运行用户

worker_processes 1; //工作进程数量

#error_log logs/error.log;
//错误日志文件的位置

#pid logs/nginx.pid; //PID 文件的位置

上述配置中,worker_processes
表示工作进程的数量。若服务器有多块 CPU 或者使用

多核处理器,可以参考
CPU 核心总数来指定工作进程数,如设为 8;如果网站访问量需求并

不大,一般设为 1
就够用了。其他三项配置均已有注释,表示采用默认设置,例如,Nginx

的运行用户实际是编译时指定的
nginx,若编译时未指定则默认为 nobody。

2.I/O 事件配置

使用“events
{ }” 界定标记,用来指定 Nginx 进程的 I/O 响应模型、每个进程的连

接数等设置。对于
2.6 及以上版本的内核,建议使用 epoll 模型以提高性能;每个进程的连

接数应根据实际需要来定,一般在
10 000 以下(默认为 1024)。


events
{

use epoll; //使用 epoll 模型

worker_connections 4096; //每进程处理 4096 个连接

}


若工作进程数为
8,每个进程处理 4 096 个连接,则允许 Nginx 正常提供服务的连接

数已超过 3
万个(4 096×8=32 768),当然具体还要看服务器硬件、网络带宽等物理条件的

性能表现。

3.HTTP 配置

使用“http {
}”界定标记,包括访问日志、HTTP 端口、网页目录、默认字符集、连

接保持,以及后面要讲到的虚拟
Web 主机、PHP 解析等一系列设置,其中大部分配置语句都

包含在子界定标记“server
{ }”内。


http
{

include
mime.types;

default_type
application/octet-stream;

log_format
main '$remote_addr - r e m o t e u s e r [ remote_user [ remoteuser[time_local] “$request” ’

'$status
b o d y b y t e s s e n t " body_bytes_sent " bodybytessent"http_referer" ’

‘“ h t t p u s e r a g e n t " " http_user_agent" " httpuseragent""http_x_forwarded_for”’;

access_log logs/access.log main; //访问日志位置

sendfile on; //支持文件发送(下载)

#tcp_nopush
on;

#keepalive_timeout
0;

keepalive_timeout 65; //连接保持超时

#gzip
on;

server { //Web 服务的监听配置

listen 80; //监听地址及端口

server_name ​ ​www.bt.com​​; //网站名称(FQDN)

charset utf-8; //网页的默认字符集

location / { //根目录配置

root html; //网站根目录的位置

index index.html index.php; //默认首页(索引页)

}

error_page 500 502 503 504 /50x.html;
//内部错误的反馈页面

location = /50x.html { //错误页面配置

root
html;

}

}

}


上述配置中,listen
语句允许同时限定 IP 地址,采用“IP 地址:端口”形式;root 语

句用来设置特定访问位置(如“location
/”表示根目录)的网页文档路径,默认为 Nginx

安装目录下的
html/子目录,根据需要可改为/var/www/html 等其他路径。

访问状态统计

Nginx 内置了
HTTP_STUB_STATUS 状态统计模块,用来反馈当前的 Web 访问情况,配置

编译参数时可添加–with-http_stub_status_module
来启用此模块支持,可以使用命令

/usr/local/nginx/sbin/nginx
–V 查看已安装的Nginx是否包含HTTP_STUB_STATUS模块。

要使用 Nginx
的状态统计功能,除了启用内建模块以外,还需要修改 nginx.conf 配置

文件,指定访问位置并添加
stub_status 配置代码。


[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf ……
//省略部分信息

http {…… //省略部分信息

server
{

listen
80;

server_name ​ ​www.bt.com​​;

charset
utf-8;

location
/ {

root
html;

index
index.html index.php;

}

location /status { //访问位置为/status

stub_status on; //打开状态统计功能

access_log off; //关闭此位置的日志记录

}

}

}

[root@localhost ~]# systemctl restart nginx
新的配置生效以后,在浏览器中访问 Nginx 服务器的/status 网站位置,可以看到当前的状态统计信息,其中“,Active
connections”表示当前的活动连接数(2);而“server accepts handled
requests”表示已经处理的连接信息,三个数字依次表示已

处理的连接数(2)、成功的 TCP 握手次数(2)、已处理的请求数(14)。

桥接模式

在这里插入图片描述

连接到以太网

在这里插入图片描述

查看地址

在这里插入图片描述

测试ping ​ ​www.baidu.com​​

在这里插入图片描述

使用远程连接做如下实验:

关闭防火墙

systemctl
stop firewalld

setenforce 0

sestatus

安装服务

yum install
gc - gcc+ -y

yum -y
install \

pcre-devel
\

zlib-devel

新建用户

useradd
-M -s /sbin/nologin nginx

上传压缩包 解压 切换目录

在这里插入图片描述

tar xzvf
nginx-1.13.7.tar.gz -C /usr/src/

在这里插入图片描述

安装服务

./configure
\

–prefix=/usr/local/nginx
\

–user=nginx
\

–group=nginx
\

–with-http_stub_status_module

在这里插入图片描述

编译安装

make
&& make install

软连接

ln -s
/usr/local/nginx/sbin/nginx /usr/local/sbin/

nginx -t //配置文件语法检查

在这里插入图片描述

nginx //启动服务

-------制作管理角本--------

vi
/etc/init.d/nginx

#!/bin/bash

chkconfig: 35 99 20

description: Nginx Service Control Script

PROG=“/usr/local/nginx/sbin/nginx”

PIDF=“/usr/local/nginx/logs/nginx.pid”

case
“$1” in

start)

$PROG

;;

stop)

kill -s QUIT $(cat $PIDF)

;;

restart)

$0 stop

$0 start

;;

reload)

kill -s HUP $(cat $PIDF)

;;

*)

    echo "Usage: $0

{start|stop|restart|reload}"

    exit 1

esac

exit 0

在这里插入图片描述

修改权限 使Nginx生效

chmod +x
/etc/init.d/nginx

chkconfig
–add nginx

vi
/usr/local/nginx/conf/nginx.conf

在这里插入图片描述

在这里插入图片描述

解决上图出现的问题

ulimit -n 65500//查看和更改系统本地打开资源数

ulimit -n
65500 >> /etc/rc.local

在这里插入图片描述

—配置统计功能----

vi
/usr/local/nginx/conf/nginx.conf

location

/status {

  stub_status   on;

  access_log off;

  }  //在server 模块里的error_page 上面增加

在这里插入图片描述

在这里插入图片描述

service
nginx reload

cat
/usr/local/nginx/logs/access.log

访问http://192.168.0.100/

在这里插入图片描述

访问http://192.168.0.100/status/

在这里插入图片描述

-----以下配置nginx的验证功能—

yum install
httpd-tools -y

安装服务

在这里插入图片描述

htpasswd -c
/usr/local/nginx/passwd.db jack

添加账户和密码 用户为jack 密码为1

在这里插入图片描述

chmod 400
/usr/local/nginx/passwd.db

修改权限 只有主人可以读取

切换目录

cd
/usr/local/nginx/

修改主人的权限

chown nginx
passwd.db

查看

在这里插入图片描述

vi
/usr/local/nginx/conf/nginx.conf

找到这个位置

在这里插入图片描述

location / {

        root   html;

        index  index.html index.htm;

allow 192.168.0.0/24; 修改为本地虚拟机网段的地址

            deny all;

            auth_basic "secret";

            auth_basic_user_file

/usr/local/nginx/passwd.db;

    }

在这里插入图片描述

重启服务

systemctl
restart nginx

------以下配置虚拟主机功能-------

—基于域名----

编辑配置文件

新建

mkdir extra

vi
/usr/local/nginx/conf/nginx.conf

在这里插入图片描述

将下面命令插入

server {

    listen       80;

    server_name  ​ ​www.bt.com​​;

    charset utf-8;

    access_log  logs/bt.access.log  main;

    location / {

        root   /var/www/bt;

        index  index.html index.htm;

    error_page   500 502 503 504  /50x.html;

    location = /50x.html {

        root   html;

    }

}

}

server {

    listen       80;

    server_name  ​ ​www.bc.com​​;

    charset utf-8;

    access_log  logs/bc.access.log  main;

    location / {

        root   /var/www/bc;

        index  index.html index.htm;

    error_page   500 502 503 504  /50x.html;

    location = /50x.html {

        root   html;

    }

}

}

在这里插入图片描述

解决问题

在这里插入图片描述

切换目录查看

在这里插入图片描述

复制目录到当前目录

cp
…/vhost.conf ./

在这里插入图片描述

编辑配置文件

vi
/usr/local/nginx/conf/nginx.conf

在这里插入图片描述

在这里插入图片描述

删除和上图对比

在这里插入图片描述

编辑配置文件

添加命令 include extra/vhost.conf;

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

切换目录

cd
/usr/local/nginx/conf/

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

编辑配置文件 添加dns

vim
/etc/hosts

在这里插入图片描述

-------基于IP的-----

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

listen 192.168.80.193:80;

—基于端口的-----

listen 192.168.80.193:8080;

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值