在Linux系统中搭建Nginx网站服务

关于Nginx

  • 一款高性能、轻量级Web服务软件

    • 稳定性高
    • 系统资源消耗低
    • 对HTTP并发连接的处理能力高

    单台物理服务器可支持30000 ~ 50000个并发请求

Nginx编译安装

安装支持软件

[[email protected] opt] yum install gcc gcc-c++ make pcre-devel zlib-devel -y

创建运行用户、组

[[email protected] opt] useradd -M -s /sbin/nologin nginx

编译安装Nginx

[[email protected] ~] mount.cifs //192.168.100.10/lnmp /mnt/    //将本地nginx源码包挂载到mnt目录下
[[email protected] ~] cd /mnt/
[[email protected] mnt] tar zxvf nginx-1.12.2.tar.gz -C /opt/    //解压源码包到opt目录
[[email protected] mnt] cd /opt
[[email protected] opt] cd nginx-1.12.2/            //进入nginx安装包目录
[[email protected] nginx-1.12.2] ./configure --prefix=/usr/local/nginx \          //指定安装路径
--user=nginx \                       //指定程序用户
--group=nginx \                      //指定组
--with-http_stub_status_module       //关联状态统计模块
[[email protected] nginx-1.12.2] make && make install       //配置、安装
[[email protected] nginx-1.12.2] cd /usr/local/nginx/sbin   //进入nginx安装后的命令目录
[[email protected] sbin] ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/   //建立软链接到sbin目录
[[email protected] sbin] nginx        //执行开启服务
[[email protected] conf]# netstat -ntap | grep 80        //查看服务端口是否开启
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      31755/nginx: master
[[email protected] sbin] systemctl stop firewalld.service    //关闭防火墙
[[email protected] sbin] setenforce 0                         //关闭增强性安全功能
[[email protected] sbin] yum install elinks -y      //安装检测网站工具
[[email protected] sbin] elinks http://localhost    //检测网站是否开启

优化运行控制

[[email protected] sbin]# vim /etc/init.d/nginx      //编辑运行控制脚本
#!/bin/bash
# chkconfig: - 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
:wq
[[email protected] sbin]# cd /etc/init.d
[[email protected] init.d]# chmod +x nginx           //给脚本添加执行权限
[[email protected] init.d]# chkconfig --add nginx    //将脚本添加到系统环境
[[email protected] init.d]# service nginx start      //使用service控制服务开启

配置文件

  • 全局配置
#user nobody;
worker processes 1;
#error_ log logs/error.log;
#pid logs/nginx.pid;
  • I/0事件配置
events {
   use epoll;
   worker_connections 4096;
}
  • HTTP配置
http {
  ......
  access_log logs/access.log main;
  sendfile    on;
  ......
  keepalive_timeout 65;
  server {
     listen     80;
     server name www.bt.com;
     charset utf-8;
     location / {
        root html;
        index index.html index.php; }
     error_page 500 502 503 504 /50x.html;
     location = /50x.html {
   root html;}}
}

Nginx的访问状态统计

启用HTTP STUB STATUS状态统计模块

  • 配置编译参数时添加--with-http_ stub_ status_ module
  • nginx -V查看已安装的Nginx是否包含HTTP_ STUB_ _STATUS模块
[[email protected] init.d]# cd /usr/local/nginx/conf/     //进入配置文件目录
[[email protected] conf]# vim nginx.conf            //编辑配置文件
...//省略部分内容...
server {
        listen       80;
        server_name  www.kgc.com;         //编辑域名

        charset utf-8;                    //编辑字符串格式为utf-8

        #access_log  logs/host.access.log;  //注释access日志文件

        location / {
            root   html;
            index  index.html index.htm;
        }
        location /status {
            stub_status on;       //开启功能统计模块
            access_log off;
        }
...//省略部分内容...
:wq                          //保存退出
[[email protected] conf]# yum install bind -y     //安装DNS服务
[[email protected] conf]# vim /etc/named.conf     //常规配置DNS功能
...//省略部分内容...
options {
        listen-on port 53 { any; };
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        recursing-file  "/var/named/data/named.recursing";
        secroots-file   "/var/named/data/named.secroots";
        allow-query     { any; };
...//省略部分内容...
:wq
[[email protected] conf]# vim /etc/named.rfc1912.zones
...//省略部分内容...
zone "kgc.com" IN {
        type master;
        file "kgc.com.zone";
        allow-update { none; };
};
...//省略部分内容...
:wq
[[email protected] conf]# cd /var/named/
[[email protected] named]# cp -p named.localhost kgc.com.zone
[[email protected] named]# vim kgc.com.zone
$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        A       127.0.0.1
www IN  A       192.168.144.133
:wq
[[email protected] named]# systemctl start named
[[email protected] named]# service nginx stop
[[email protected] named]# service nginx start
  • 在客户机中打开浏览器输入域名www.kgc.com/status访问网站统计记录

授权的访问控制

  • 配置步骤与Apache基本一致

    • 生成用户密码认证文件
    • 修改主配置文件对相应目录,添加认证配置项
    • 重启服务,访问测试
[[email protected] ~]# vim /usr/local/nginx/conf/nginx.conf
server {
        listen       80;
        server_name  www.kgc.com;

        charset utf-8;

        #access_log  logs/host.access.log;

        location / {
            auth_basic "secret";                          //插入设置密码验证
            auth_basic_user_file /usr/local/nginx/passwd.db;   //添加条目设置密码验证文件存放目录
            root   html;
            index  index.html index.htm;
        }
        location /status {
            stub_status on;
            access_log off;
        }
:wq
[[email protected] ~]# yum install httpd-tools -y       //安装生成密码设置文件
已加载插件:fastestmirror, langpacks
base                                                                                     | 3.6 kB  00:00:00
extras                                                                                   | 2.9 kB  00:00:00
...//省略部分内容...
已安装:
  httpd-tools.x86_64 0:2.4.6-90.el7.centos
作为依赖被安装:
  apr.x86_64 0:1.4.8-5.el7                             apr-util.x86_64 0:1.5.2-6.el7
完毕!
[[email protected] ~]# htpasswd -c /usr/local/nginx/passwd.db test01    //创建密码验证文件
New password:                           //输入密码
Re-type new password:                   //再次输入
Adding password for user test01          //创建用户成功
[[email protected] ~]# cat /usr/local/nginx/passwd.db     //查看创建的密码文件
test01:$apr1$T22NmXdU$yE8iwUxpaHcR95ZNosCUK0           //用户密码信息
[[email protected] ~]# service nginx stop           //停止nginx服务
[[email protected] ~]# service nginx start          //启动nginx服务
[[email protected] ~]# netstat -ntap | grep 80      //查看端口是否开启
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      8624/nginx:
  • 再客户机中测试授权访问控制

原文地址:https://blog.51cto.com/14473285/2449529

时间: 2024-08-01 20:05:51

在Linux系统中搭建Nginx网站服务的相关文章

详述Linux系统中搭建Nginx动静分离

Nginx动静分离介绍 Nginx的静态处理能力很强,但是动态处理能力不足,因此,在企业中常用动静分离技术 针对PHP的动静分离 静态页面交给Nginx处理 动态页面交给PHP-FPM模块或Apache处理 在Nginx的配置中,是通过location配置段配合正则匹配实现静态与动态页面的不同处理方式 反向代理原理 Nginx不仅能作为Web服务器,还具有反向代理.负载均衡和缓存的功能 Nginx通过proxy模块实现将客户端的请求代理至上游服务器,此时nginx与. 上游服务器的连接是通过ht

搭建nginx网站服务及应用

实验环境: 服务器系统:Redhat 6.2             ip地址:192.168.10.1 客户机系统:Win7 64位 旗舰版   ip地址:192.168.10.2 系统环境:已搭建LAMP平台 1.搭建nginx服务并实现访问状态统计 [[email protected] ~]#yum -y install pcre-devel zlib-devel  #首先需要安装这两个工具 [[email protected] ~]#useradd -M -s /sbin/nologin

详述Linux系统中搭建LNMP架构+Discuz论坛

LNMP架构解读 LNMP平台就是Linux.Ngnix.MySQL.PHP的组合架构,需要Linux服务器.MySQL 数据库.PHP解析环境 搭建Nginx服务 下载Nginx源码包 Nginx源码包下载 在Linux虚拟机中挂载存放源码包的目录 [[email protected] ~]# mount.cifs //192.168.100.10/lnmp /mnt/ //挂载目录 Password for [email protected]//192.168.100.10/lnmp: [[

Linux系统中搭建本地光盘yum源

搭建本地光盘yum源 第一步:放入CentOS安装光盘,并挂载光盘到指定位置:命令如下: [[email protected] ~]#mkdir /mnt/cdrom #创建cdrom目录,作为光盘的挂载点 [[email protected] ~]#mount -t iso9660 /dev/cdrom1 /mnt/cdrom/ mount: block device /dev/sr0 is write-protected mounting read-only #挂载光盘到/mnt/cdrom

Linux系统中DHCP服务实战

Linux系统中DHCP服务实战部署 一.实验要求 1.将系统的主机名改成s01.benet.com 2.搭建一台dhcp服务器为局域网分配IP地址,要求分配192.168.40.0/24 3.为boss保留192.168.40.188地址 二.实验环境 虚拟机VMware Workstation11.0 RED HET 6.5 三.实验步骤 1.将系统的主机名改成s01.benet.com 2.搭建dhcp服务.为局域网分配IP地址 3.测试主机分配地址效果 4.给boss分配192.168.

在RedHat Linux系统中安装和配置snmp服务

检查系统是否安装snmp服务 # rpm -qa|grep snmp net-snmp-5.3.2.2-17.el5 net-snmp-perl-5.3.2.2-17.el5 net-snmp-devel-5.3.2.2-17.el5 net-snmp-libs-5.3.2.2-17.el5 net-snmp-utils-5.3.2.2-17.el5 net-snmp-libs-5.3.2.2-17.el5 net-snmp-devel-5.3.2.2-17.el5 SNMP服务安装后会有以上安

字符界面优化Linux系统中的服务

优化Linux系统中的服务 实验环境 公司在文件服务器中新安装了RHEL 6操作系统,由于默认启动的服务程序较多,系统运行缓慢.现需要对系统服务进行适当优化,减少一些不必要的自启动服务,并设置系统在开机后直接进入字符模式. 需求描述 设置Linux系统每次开机后自动进入字符模式 使用ntsysv工具同时调整2.3.4.5运行级别中的服务状态,关闭下列服务:atd.Bluetooth.cups.ip6tables.iptables.mdmonitor.nfslock.rhnsd.rpcgssd.p

优化Linux系统中的服务

优化Linux系统中的服务 实验要求 设置Linux系统每次开机后自动进入字符模式界面. 使用ntsysv工具同时调整2.3.4.5运行级别中的服务状态,关闭下列服务: atd.bluetooth.cups.ip6tables.iptables.mdmonitor.nfslock.rhnsd.rpcgssd. postfix. 使用chkconfig工具调整个别服务的启动状态. 将cups服务在运行级别3中的默认启动状态设为关闭. 将postfix服务在运行级别3.5中的默认启动状态设为启用其余

使用Linux系统中的SSH服务

使用Linux系统中的SSH服务 1.SSH服务应用场景 ① 可以实现对文件的上传与下载 ② 实现远程管理Linux 2.安装SSH服务器 服 务:sshd 位 置:光盘2 软 件:openssh-server-3.9p1-8.RHEL4.1.rpm 配 置:/etc/ssh/sshd_config rpm –ivh 软件名称 3.启动SSH服务 启动成功后,默认sshd服务占用22号端口. httpd : 80端口 ftp:21端口 ssh:22端口 mysql:3306 4.使用SSH实现文