千家信息网

Nginx基础搭建篇

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,Nginx(轻量级web服务器) 是一个高性能的HTTP和 反向代理 服务器优点:占用内存少、抗并发能力强、适合处理静态页面、稳定性高、支持热部署等。缺点:处理动态页面鸡肋、bug比apache要多。
千家信息网最后更新 2026年11月01日Nginx基础搭建篇

Nginx(轻量级web服务器) 是一个高性能的HTTP和 反向代理 服务器

优点:占用内存少、抗并发能力强、适合处理静态页面、稳定性高、支持热部署等。

缺点:处理动态页面鸡肋、bug比apache要多。

特点:模块化

总体大致分为两大模块:主模块 与 事件模块

(主模块:配置和服务器全局有关的一些参数,比如:错误日志、进程、权限等)

(事件模块:配置IO事件接口的相关参数,比如:worker_connections这个参数)

细化的话 模块又分为五类:1.核心模块 2.标准http模块 3.可选http模块 4.邮件模块 5.第三方模块和补丁

Nginx官网:http://www.nginx.org/


一、Nginx安装前的准备:

1)安装支持软件

yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel

2)安装PCRE (PCRE的作用是让Nginx支持Rewrite功能)

1.下载PCRE安装包

#wget http:// http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz

2.解压并进入安装包的目录

#tar zxvf pcre-8.35.tar.gz

#cd pcre-8.35

3.编译安装 并 查看pcre版本

#./configure && make && make install

#prce-config --version

3)创建运行用户、组

Nginx服务程序默认以nobody身份运行,建议为其创建专门的用户账号,以便更准确地控制其访问权限,增加灵活性、 降低安全风险。

例如:创建一个名为nginx的用户,不建立宿主文件夹,也禁止登录到Shell环境。

#useradd -M -s /sbin/nologin nginx


二、安装Nginx并启动:

1)安装Nginx

1.下载Nginx

#wget http://nginx.org/download/nginx-1.6.2.tar.gz

2.解压并进入安装包的目录

#tar zxvf nginx-1.6.2.tar.gz

#cd nginx-1.6.2

3.基础的编译安装

#./configure --prefix=/usr/local/nginx --user=nginx --grep=nginx --with-http_stub_status_module (<<--这是最基础的模块,如果日后有需要添加新的模块,可重新编译安装)

#make && make install

4.简单的优化

为了是Nginx服务器的运行更加方便,可以为主程序nginx创建链接文件,以便管理员直接执行"nginx"命令就可以调用Nginx的主程序。

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

#ls -l /usr/local/sbin/nginx

5.查看版本 并 检查配置文件

#nginx -v (查看版本)

#nginx -t(检查配置文件)

6.启用、停止Nginx

启用并验证:#nginx

#netstat -anpt | grep nginx (检查端口)

#yum -y install elinks

#elinks http://localhost //使用elinks浏览器


停止Nginx: # killall -s HUP nginx //选项 -s HUP 等同与 -1

# killall -s QUIT nginx //选项 -s QUIT 等同于 -3

注:HUP信号表示:重载配置

QUIT信号表示:退出进程

-s 选项指定信号种类

当Nginx进程运行时,PID号默认存放在 logs/目录下的nginx.pid文件中,因此若改用kill命令,也可以根据nginx.pid文件中的PID号来进行控制。


三、编写Nginx服务脚本(为了以后的方便,编制服务的启动脚本):

#vi /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" //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

#chmod +x /etc/init.d/nginx

#chkconfig --add nginx //添加为系统服务


四、配置文件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文件的位置

2.I/O事件配置

使用 "events{}" 界定标记,用来指定Nginx进程的I/O响应模型、每个进程的连接数等设置。对于2.6及以上版本的内核,建议使用epoll模型以提供高性能;每个进程的连接数应根据实际需要来定,一般在10000以下(默认为1024)。

例:events {

use epoll; //使用epoll模型

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

}

3.HTTP配置

使用"http{}"界定标记,包括访问日志、HTTP端口、网页目录、默认字符集、连接保持,以及虚拟Web主机、PHP解析等一系列设置,其中大部分配置语句都保存在子定界标记"server {}"内。

例:http {
#设定mime类型,类型由mime.type文件定义
include /etc/nginx/mime.types;
default_type application/octet-stream;
#设定日志格式
access_log /var/log/nginx/access.log;

#sendfile 指令指定 nginx 是否调用 sendfile 函数(zero copy 方式)来输出文件,对于普通应用,
#必须设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为 off,以平衡磁盘与网络I/O处理速度,降低系统的uptime.
sendfile on;
#tcp_nopush on;

#连接超时时间
#keepalive_timeout 0;
keepalive_timeout 65;
tcp_nodelay on;

#开启gzip压缩
gzip on;
gzip_disable "MSIE [1-6]\.(?!.*SV1)";

#设定请求缓冲
client_header_buffer_size 1k;
large_client_header_buffers 4 4k;

include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;

#设定负载均衡的服务器列表
upstream mysvr {
#weigth参数表示权值,权值越高被分配到的几率越大
#本机上的Squid开启3128端口
server 192.168.8.1:3128 weight=5;
server 192.168.8.2:80 weight=1;

server 192.168.8.3:80 weight=6;
}

server {
#侦听80端口
listen 80;
#定义使用
www.xx.com访问
server_name www.xx.com;

#设定本虚拟主机的访问日志
access_log logs/www.xx.com.access.log main;

#默认请求
location / {
root /root; #定义服务器的默认网站根目录位置
index index.php index.html index.htm; #定义首页索引文件的名称

fastcgi_pass www.xx.com;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}

# 定义错误提示页面
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /root;
}

#静态文件,nginx自己处理
location ~ ^/(p_w_picpaths|javascript|js|css|flash|media|static)/ {
root /var/www/virtual/htdocs;
#过期30天,静态文件不怎么更新,过期可以设大一点,如果频繁更新,则可以设置得小一点。
expires 30d;
}
#PHP 脚本请求全部转发到 FastCGI处理. 使用FastCGI默认配置.
location ~ \.php$ {
root /root;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/www/www$fastcgi_script_name;
include fastcgi_params;
}
#设定查看Nginx状态的地址
location /NginxStatus {

stub_status on;
access_log on;
auth_basic "NginxStatus";
auth_basic_user_file conf/htpasswd;
}
#禁止访问 .htxxx 文件
location ~ /\.ht {
deny all;
}

}
}


配置 文件 模块 服务 进程 服务器 日志 处理 运行 事件 用户 位置 全局 参数 版本 目录 端口 错误 信号 标记 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 耶加雪菲 百单网互联网科技有限公司怎么样 科技信息互联网 世界互联网领先科技成果 艾特科技互联网 凡科互联网科技 北京互联网络科技有限公司 伴你行互联网科技有限公司 互联网科技论坛 中盈科技互联网信息有限公司 广州优美互联网科技 温州喔噻互联网科技有限公司 互联网5g黑科技有哪些 广州市恰铎互联网科技有限公司 国大互联网教育科技有限公司工作 互联网金融科技展 深圳无忧互联网科技 皮皮虾互联网科技有限公司 广州全民伙伴互联网科技有限公司 互联网 科技节活动 微视频大赛 科技类互联网 互联网 卓越科技 世界互联网领先科技成果 长亮科技互联网金融 顺网科技2021年互联网排名 山东吉时兔互联网科技有限公司 注册互联网科技公司经营范围大全 福建互联网展示科技馆设计 山东亿川互联网科技有限责任公司 小牛互联网科技有限公司地址
0