Nginx网站搭建部署

一、Nginx搭建

Nginx简介:
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:新浪、网易、腾讯等。

Nginx官方站点:http://www.nginx.org

(1)安装支持软件:
Nginx的配置及运行需要pcre、zlib等软件包的支持,因此应预先安装这些软件的开发包(devel),以便提

供相应的库和头文件,确保Nginx的安装顺利完成。

[[email protected] ~]# service iptables stop
[[email protected] ~]# setenforce 0
[[email protected] ~]# mount /dev/cdrom /mnt/
[[email protected] ~]# vim /etc/yum.repos.d/yum.repo
[base]
name=RedHat Enterprise Linux Server
baseurl=file:///mnt/Server
gpgcheck=0
[[email protected] ~]# yum -y install pcre-devel zilb-devel

(2)创建运行用户、组:
Nginx服务程序默认以nobody身份运行,建议为其创建专门的用户账号,以便更准确地控制其访问权限,增加灵活性、降低安全风险。如:创建一个名为nginx的用户,不建立宿主目录,也禁止登录到shell环境。

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

(3)编译安装nginx
下载路劲 http://nginx.org/download/nginx-1.6.2.tar.gz

[[email protected] ~]# tar xf nginx-1.6.2.tar.gz -C /usr/src/
[[email protected] ~]# tar xf nginx-1.6.2.tar.gz -C /usr/src/
[[email protected] ~]# cd /usr/src/nginx-1.6.2/
[[email protected] nginx-1.6.2]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx

--with-http_stub_status_module --with-http_ssl_module --with-http_flv_module --with-

http_gzip_static_module && make && make install

--prefix  设定Nginx的安装目录
--user和—group 指定Nginx运行用户和组
--with-http_stub_status_module 启用http_stub_status_module模块以支持状态统计
--with-http_ssl_module  启用SSL模块
--with-http_flv_module 启用FLV模块,提供寻求内存使用基于时间的偏移量文件

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

[[email protected] nginx-1.6.2]# ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/
[[email protected] nginx-1.6.2]# ll /usr/local/bin/nginx
lrwxrwxrwx 1 root root 27 01-11 04:58 /usr/local/bin/nginx -> /usr/local/nginx/sbin/nginx

(5)启动、停止Nginx:
[[email protected] nginx-1.6.2]# nginx
[[email protected] nginx-1.6.2]# netstat -anpt | grep :80
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN

6074/nginx: master

[[email protected] ~]# killall -s HUP nginx
[[email protected] ~]# killall -s QUIT nginx

HUP  重载配置 等同于-1
QUIT 退出进程 等同于-3
KILL 杀死进程

(6)测试是否成功
[[email protected] ~]# elinks --dump http://localhost
                               Welcome to nginx!

(8)编写启动脚本

[[email protected] ~]# vim /etc/init.d/nginx

#!/bin/bash
# chkconfig: 2345 99 20
# description: Nginx Server 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

[[email protected] ~]# chmod +x /etc/init.d/nginx
[[email protected] ~]# chkconfig --add nginx
[[email protected] ~]# chkconfig nginx on
[[email protected] ~]# chkconfig --list nginx
nginx           0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭

(9)配置文件nginx.conf:

[[email protected] ~]# vim /usr/local/nginx/conf/nginx.conf

在Nginx服务器的主配置文件nginx.conf中,包括全局配置、I/O事件配置、HTTP配置这三大块内容,配置语句的格式为"关键字 值;"(末尾以分号表示结束),以"#"开始的部分表示注释。

user nginx;   //运行用户,Nginx的运行用户实际是编译时指定的nginx,若编译时未

指定则默认为nobody;
worker_processes 2;  //指定nginx启动的工作进程数量,建议按照cpu数目来指定,一般为它

的倍数。

events {
use epoll;   //使用epool模型,对于2.6以上的内核,建议使用epool模型以提高性能
worker_connections 4096;  //每个进程允许的最多连接数(默认为1024),每个进程的连接

数应根据实际需要来定,一般在10000以下,理论上每台nginx服务器的最大连接数
}

http {
    include       mime.types;
    default_type  application/octet-stream;

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

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

sendfile        on;      //支持文件发送(下载)
    keepalive_timeout  65;     //连接保持超时

server {        //web服务的监听配置
        listen       80;     //监听地址及端口
        server_name  www.baidu.com;   //网站名称(FQDN)
  charset utf-8;      //网页的默认字符集

location / {      //跟目录配置
            root   html;     //网站根目录的位置安装位置的

html中
            index  index.html index.htm; //默认首页(索引页)
        }

error_page   500 502 503 504  /50x.html; //内部错误的反馈页面
        location = /50x.html {    //错误页面配置
            root   html;
        }
 }

二、状态访问加密(listen 支持采用 IP地址:端口 形式)

(1)、状态统计及虚拟主机应用:
Nginx内置了HTTP_STUB_STATUS状态统计模块,用来反馈当前的WEB访问情况。配置
编译参数时可添加—with-http_stub_stastus_module来启用此模块。要使用Nginx的状态统计功能,除了启用内建模块以外,还需要修改nginx.conf文件,指定访问位置并打开stub_status配置。在http{}配置的

server{}子配置内添加如下配置项

[[email protected] ~]# vim /usr/local/nginx/conf/nginx.conf

location ~ /status {
            stub_status on;  //打开状态统计功能
            access_log off;  //关闭此位置的日志记录
        }

[[email protected] ~]# service nginx restart

浏览器访问 http://192.168.3.10/status

Active connections: 1
server accepts handled requests
 1 1 3
Reading: 0 Writing: 1 Waiting: 0

Active connections 表示当前活跃的连接数,
第三行的三个数字表示Nginx当前总共 处理了1个连接,成功创建1次握手,总共处理了3个请求。
最后一行的Reading表示Nginx读取到客户端Header信息数,
Writing表示Nginx返回给客户端的Header信息数
“Waiting”表示Nginx已经处理完,正在等候下一次请求指令时的驻留连接数。

Nginx 支持为目录添加密码认证,使用apache 的 htpasswd 来创建密码文件

[[email protected] ~]# yum -y install httpd
[[email protected] ~]# htpasswd -c /usr/local/nginx/.htpasswd zhenyang
New password:
Re-type new password:
Adding password for user zhenyang

[[email protected] ~]# vim /usr/local/nginx/conf/nginx.conf
        location ~ /status {
            stub_status on;
            access_log off;
            auth_basic "Nginx Status";
            auth_basic_user_file /usr/local/nginx/.htpasswd;
        }
  
客户端访问控制:
[[email protected] ~]# vim /usr/local/nginx/conf/nginx.conf
        location ~ /status {
            stub_status on;
            access_log off;
            auth_basic "Nginx Status";
            auth_basic_user_file /usr/local/nginx/.htpasswd;
   allow 192.168.200.1;
   deny 192.168.200.0/24;
        }

注:allow 允许规则,deny拒绝规则;规则的执行是按从上向下执行,匹配某条规则后将不再检查其他规则

三、构建虚拟主机
2)虚拟主机:
使用Nginx搭建虚拟主机服务器时,每个虚拟WEB站点拥有独立的"server {}"配置段,各自监听的IP地址、

端口号可以单独指定,当然网站名称也是不同的。
例如:要创建两个站点www.baidu.comwww.sina.com
为两个虚拟WEB主机分别建立根目录,并准备测试首页

[[email protected] ~]# mkdir /usr/local/nginx/html/baidu
[[email protected] ~]# mkdir /usr/local/nginx/html/sina
[[email protected] ~]# echo "<h1>恭喜你访问成功</h1>" > /usr/local/nginx/html/benet/baidu
[[email protected] ~]# echo "<h1>恭喜你访问成功了</h1>" > /usr/local/nginx/html/accp/sina
[[email protected] ~]# vim /usr/local/nginx/conf/nginx.conf
http {
    include       mime.types;
    default_type  application/octet-stream;

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

access_log  logs/access.log  main;

sendfile        on;
    #tcp_nopush     on;

#keepalive_timeout  0;
    keepalive_timeout  65;

#gzip  on;

server {
        listen       80;
        server_name  www.bai.com;
 charset utf-8;
        access_log  logs/baidu.access.log  main;

location / {
            root   html/baidu;
            index  index.html index.htm;
        }
    }

server {
        listen       80;
        server_name  www.sina.com;
        charset utf-8;
        access_log  logs/sina.access.log  main;

location / {
            root   html/sina;
            index  index.html index.htm;
        }
    }
}

[[email protected] ~]# service nginx reload

[[email protected] ~]# vim /etc/hosts               (若有DNS,此步可略,次步就是为了实现解析域名效果)
192.168.200.128 www.baidu.com
192.168.200.128 www.sina.com

[[email protected] ~]# elinks --dump http://www.baidu.com
                           恭喜你访问成功     
[[email protected] ~]# elinks --dump http://www.sina.com
                           恭喜你访问成功了      
实验完毕

时间: 2024-07-29 03:37:52

Nginx网站搭建部署的相关文章

Nginx网站服务+LNMP架构及应用部署

第2章:Nginx网站服务 防伪码:撑起坚强! Nginx专为性能优化而开发,其最知名的优点是它的稳定性和低系统资源消耗,以及对HTTP并发连接的高处理能力(单台物理服务器可支持30000-50000个并发请求).正因如此,大量提供社交网络.新闻资讯.电子商务及虚拟主机等服务的企业纷纷选择Nginx来提供Web服务. 一.安装及运行 1.搭建yum仓库,安装支持软件 2.创建运行用户.组(nginx默认以nobody身份运行,不安全,所以需要创建用户) 3.编译安装nginx和解包 为了方便管理

Nginx网站服务器搭建实例

Nginx是一款开源的高性能HTTP服务器和返向代理服务器. 下载.编译.安装模块: [[email protected] nginx-1.4.0]#wget http://nginx.org/download/nginx-1.4.0.tar.gz [[email protected] nginx-1.4.0]#tar -xzf nginx-1.4.0.tar.gz -C /usr/src/ [[email protected] nginx-1.4.0]#yum -y install gcc p

搭建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

Nginx搭建部署Web服务器并与NFS结合搭建负载均衡服务器

Nginx搭建部署Web服务器并与NFS结合搭建负载均衡服务器 一.搭建NginxWeb服务器     此种方式是用yum安装Nginx,为保证安装成功需在安装之前提前安装epel扩展源.     用yum安装Nginx     关闭系统防火墙           查看Nginx配置文件          安装完成后启动Nginx并查看其运行状态          然后在客户端浏览器里面输入Nginx服务器的IP地址即可验证Nginx工作正常      二.搭建NFS服务器     NFS:网络

网站服务器部署及优化---1---LAMP环境搭建(rhel6.5)

RedHat Enterprise 6.5 第一步:安装apache yum install -y httpd      安装相应软件包(前提是需要搭好yum源) service httpd start    启动apache服务 默认配置文件为:/etc/httpd/conf/httpd.conf 模块配置文件存放目录:/etc/httpd/conf.d 注:Apache可以通过扩展模块来扩充自己的功能,通常一个模块对应一个文件在/etc/httpd/conf.d目录下 /etc/httpd/

【转】windows下nginx+mono+fastCGI部署asp.net网站

原文链接:http://www.cnblogs.com/amityat/archive/2011/08/23/2150153.html 1,什么是nginx 简介Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器. Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过两年半了.Igor 将源代码以类BSD许可证的形式发布.尽管还是测试

如果搭建 Nginx 网站服务器

        nginx [engine x]是 Igor Sysoev 编写的一个 HTTP 和 反向代理 服务器,另外它也可以作为邮件代理服务器. Nginx 是由内核和模块组成,其中,内核的设计非常微小和简洁,完成的工作也非常简单,仅仅通过查找配置文件 将客户端请求映射到一个location block模块, 而在这个location中所配置的每个指今将会启动不同的模块去完成相应的工作 Nginx 相对于 Apache的优点: 1.高并发响应非常好 2.反向代理性能非常好.可用于负载均衡

部署Nginx网站服务实现访问状态统计以及访问控制功能

Nginx专为性能优化而开发,最知名的优点是它的稳定性和低系统资源消耗,以及对HTTP并发连接的高处理能力,单个物理服务器可支持30000-50000个并发请求. Nginx的安装文件可以从官方网站http://www.nginx.org/下载,下面以Nginx1.12版本为例,基于CentOS7,部署Nginx网站服务. 安装Nginx 第一步源码编译安装 1. 安装支持软件 Nginx的配置及运行需要gcc . gcc-c++ . make . pcre.pcre-devel.zlib-de

centos7下linux运行asp.net,c#网站搭建配置-mono+nginx

centos7下linux运行asp.net,c#网站搭建配置-mono+nginx 一.首先安装一些需要的软件包 首先更新CentOS上的软件包: yum –y update 安装一些需要的库: yum -y install gcc gcc-c++ bison pkgconfig glib2-devel gettext make libpng-devel libjpeg-devel libtiff-devel libexif-devel giflib-devel libX11-devel fr