nginx服务网站

一曲冷凌霜 提交于 2019-12-14 23:43:43

Nginx简介:

   Nginx是一款专为性能优化而开发的, http 和反向代理服务器,其最知名的优点就是它的稳定性和低系统资源消耗,由俄罗斯人Igor Sysoev(伊戈尔·赛索耶夫)为俄罗斯网站Rambler.ru开发的,在Rambler.ru网站平稳的运行了四年,而且俄俄罗斯超过20%的虚拟主机平台采用Nginx作为反向代理服务器。

优点:内存消耗少:处理静态文件,比apache 占用更少的内存及资源

缺点:动态处理差:nginx处理静态文件较好,耗费内存少,但是动态没有apache做的好

一般来说前端用nginx作为反向代理抗住压力,后端使用apache处理动态请求。

 

安装及运行控制 

Nginx官网http://nginx.org/下载

网盘https://pan.baidu.com/s/1Ei3cVU-hG_zKORXzi3Z7yQ下载

1.编译安装

1)安装前提软件

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

2)创建运行用户和组

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

3)编译安装

[root@mysql ~]# cd /root/Desktop/
[root@mysql Desktop]# tar zxf nginx-1.12.0.tar.gz -C /usr/src/
[root@mysql Desktop]# cd /usr/src/
[root@mysql src]# cd nginx-1.12.0/
[root@mysql nginx-1.12.0]#  ./configure --prefix=/usr/local/nginx   \ 
--user=nginx     \     //指定用户
--group=nginx    \    //指定组
--with-http_stub_status_module  \  //模块以支持状态统计
 && make && make install

4)链接优化路径

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

2.运行控制

[root@mysql ~]# nginx             //启动服务
[root@mysql ~]# netstat -anput | grep nginx
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      6400/nginx: master  
[root@mysql ~]# yum -y install psmisc        //安装killall命令

[root@mysql ~]#killall -s QUIT nginx     //关闭Nginx

[root@mysql ~]#	killall -s HUP nginx      //重启Nginx

[root@mysql ~]#	nginx -t   // 检测配置文件

 

配置文件nginx.conf

主配置文件位于/usr/local/nginx/conf/nginx.conf

1.全局配置

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
#user  nginx;
                                        //运行用户
worker_processes  1;                   //工作进程数量
 
#error_log  logs/error.log;           //错误日志文件的位置
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
 
#pid        logs/nginx.pid;           //PID文件存放位置

2.I/O事件配置

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf

evets {
    use epoll;                   //使用epoll模型
    worker_connections  1024   //每个进程处理1024个连接
}

3.http配置

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 {                            //web服务监听配置
        listen       80;                //监听地址及端口
        server_name  localhost;            //网站名称

        #charset koi8-r;          //默认字符集
        #access_log  logs/host.access.log  main;

        location / {                //根目录配置
            root   html;            //根目录位置
            index  index.html index.htm;   //默认首页(索引页)
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;         //错误反馈信息
        location = /50x.html {              //错误页面配置
            root   html;
        }

访问状态及虚拟主机

1.访问统计

Nginx内置了HTTP_STUB_STATUS状态统计模块,用来反馈当前的Web访问情况,在编译安装Nginx时添加--with-http_stub_status_module来启用此模块。

 server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

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

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

}

测试

Active connections,表示当前网页连接数。
server accepts handled requests,表示已处理的连接信息。
224表示,已处理的请求数。

 2.Nginx虚拟主机

  基于域名的虚拟Web主机通过域名区分不同的Web站点。使用Nginx搭建虚拟主机服务器时,每个虚拟Web站点拥有独立的“server{}”配置段,各自的监听IP地址,端口号等可以单独指定。

1)配置dns服务,使用两个域名解析同一个ip

[root@mysql ~]# yum -y install bind bind-chroot
[root@mysql etc]# mv named.conf named.conf.bak  //备份
[root@mysql etc]# vim named.conf

options {
        	directory "/var/named";
	};
	zone "benet.com" {
        	type master;
        	file "benet.com.zone";
	};
	zone "accp.com" {
        	type master;
        	file "accp.com.zone";
	};

[root@mysql etc]# cd /var/named/
[root@mysql named]# cp -p named.localhost benet.com.zone
[root@mysql named]# vim benet.com.zone    //添加benet的a记录
$TTL 1D 
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        A       127.0.0.1
        AAAA    ::1
www     A    192.168.1.1

[root@mysql named]# cp -p benet.com.zone accp.com.zone   
//因为是使用不同域名相同ip所以复制一下就行
[root@mysql named]# cat accp.com.zone  //验证是否为相同ip
$TTL 1D
@	IN SOA	@ rname.invalid. (
					0	; serial
					1D	; refresh
					1H	; retry
					1W	; expire
					3H )	; minimum
	NS	@
	A	127.0.0.1
	AAAA	::1
www	A	192.168.1.1


[root@mysql named]# systemctl start named   //开启服务
[root@mysql named]# netstat -anput | grep named
tcp        0      0 192.168.1.1:53          0.0.0.0:*               LISTEN      45089/named         
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      45089/named         
tcp        0      0 127.0.0.1:953           0.0.0.0:*               LISTEN      45089/named         
tcp6       0      0 ::1:953                 :::*                    LISTEN      45089/named         
udp        0      0 192.168.122.1:53        0.0.0.0:*                           45089/named         
udp        0      0 192.168.1.1:53          0.0.0.0:*                           45089/named         
udp        0      0 127.0.0.1:53           


2)设置测试文件首页

[root@mysql ~]# mkdir -p /wwwroot/benet  
[root@mysql ~]# mkdir -p /wwwroot/accp
[root@mysql ~]# echo "benet.com" >/wwwroot/benet/index.html
[root@mysql ~]# echo "accp.com" >/wwwroot/accp/index.html

3)调整nginx.conf配置文件

[root@mysql ~]# vim /usr/local/nginx/conf/nginx.conf 
server {
        listen       80;
        server_name  www.benet.com;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   /wwwroot/benet;   //benet的根目录
            index  index.html index.htm;
        }
}

 server {
        listen       80;
        server_name  www.accp.com;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   /wwwroot/accp;   //accp的根目录
            index  index.html index.htm;
        }
}
[root@mysql ~]# nginx -t
[root@mysql ~]# killall -s HUP nginx   //重启

 

测试

注意配置虚拟主机时的‘’{}‘’号是否相对。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!