Nginx访问控制与虚拟主机(基于端口,基于域名),内附源码-创新互联

Nginx访问控制与虚拟主机(基于端口,基于域名),内附源码

创新互联公司坚实的技术研发基础赢得了行业内的良好口碑,公司成立10多年来,为数千家企业提供过网站建设、软件开发、搜索引擎优化技术、互联网大数据整合营销服务,多年的技术服务成功经验、众多的客户使我们能懂得更多,做得更好。"让您的网站跑起来"是我们一直追求的目标!

nginx安装文件可以从官方网站http://www.nginx.org/下载。下面以稳定版nginx-1.6.0为例,介绍nginx的安装和运行控制,实验主机为redhat6.5系统。

免费提供源码包:百度云盘

 https://pan.baidu.com/s/1nQ9Qok49au7Cn3elS7IbBQ

1,编译安装nginx

(1)安装支持软件

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

       yum -y install pcre-devel zlib-devel gcc gcc-c++

Nginx访问控制与虚拟主机(基于端口,基于域名),内附源码

(2)解压nginx软件包,并创建用户,组。

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

       tar xzvf nginx-1.6.0.tar.gz -C /opt

       cd /opt/nginx-1.6.0/

       useradd -M -s /sbin/nologin nginx

Nginx访问控制与虚拟主机(基于端口,基于域名),内附源码

(3)编译安装nginx

./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module             //开启stub_status状态统计模块//
make
make install
ln -s /usr/local/nginx/sbin/* /usr/local/sbin/   //建立软连接,让系统识别nginx命令

Nginx访问控制与虚拟主机(基于端口,基于域名),内附源码

Nginx访问控制与虚拟主机(基于端口,基于域名),内附源码

Nginx访问控制与虚拟主机(基于端口,基于域名),内附源码

(4)nginx的运行控制

-----检查、启动、重启、停止--------
nginx -t        //检查
nginx            //启动
killall -1 nginx    //重启
killall -3 nginx    //停止

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"
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

Nginx访问控制与虚拟主机(基于端口,基于域名),内附源码

Nginx访问控制与虚拟主机(基于端口,基于域名),内附源码

2.nginx访问状态统计

nginx内置了http_stub_status状态统计模块,用来反馈当前的web访问情况,要使用nginx的统计功能,除了启用内建模块以外,还需要修改nginx.conf配置文件,指定访问位置并添加stub_status配置代码。

[root@ling conf]# vim nginx.conf

server {
        listen       80;
        server_name  localhost;
    charset utf-8;

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

       location ~ /status {
        stub_status   on;
        access_log off;
        }                                                           //在"server"这里插入这4行的

       error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

      }
    }

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

Nginx访问控制与虚拟主机(基于端口,基于域名),内附源码

然后重启nginx服务,新的配置生效后,在浏览器中访问nginx服务器的/status网站位置,可以看到当前的状态统计信息,

Nginx访问控制与虚拟主机(基于端口,基于域名),内附源码

     Active connettions          //表示当前的活动连接数

     server accepts handle requests    //表示已经处理的连接信息    三个数字依次表示:已处理的连接数;成功的TCP握手次数;已处理的请求数

Nginx访问控制与虚拟主机(基于端口,基于域名),内附源码

3,基于域名的虚拟主机

利用虚拟主机,不用为每个要运行的网站提供一台单独的nginx服务器或单独运行一组nginx进程,虚拟主机提供了在同一台服务器,同一组nginx进程上运行多个网站的功能。

使用nginx搭建虚拟主机服务器时,每个虚拟web站点拥有独立的“server{}”配置段,各自监听的ip地址,端口号,网站名。

(1)修改配置文件nginx.conf,把配置文件中的server{}代码段全部去掉,加入两个新的server{}段,对应两个域名accp.com  ,benet.com。

Nginx访问控制与虚拟主机(基于端口,基于域名),内附源码

Nginx访问控制与虚拟主机(基于端口,基于域名),内附源码

(2)分别准备各个网站的站点目录和测试首页

Nginx访问控制与虚拟主机(基于端口,基于域名),内附源码

(3)在浏览器中,分别访问两个域名,可以看到不同的页面。

Nginx访问控制与虚拟主机(基于端口,基于域名),内附源码

Nginx访问控制与虚拟主机(基于端口,基于域名),内附源码

4,基于端口的虚拟主机

(1)在配置文件nginx.conf中再添加一个server{}段,端口改为8080,和benet.com对应同一个ip地址。

Nginx访问控制与虚拟主机(基于端口,基于域名),内附源码

(2)创建站点目录和测试页面

Nginx访问控制与虚拟主机(基于端口,基于域名),内附源码

(3)访问www.benet.com:8080端口

Nginx访问控制与虚拟主机(基于端口,基于域名),内附源码

5,授权用户的访问控制

nginx和apache一样,可以实现基于用户授权的访问控制,当客户端想要访问相应的网站或者目录时,要求用户输入用户名和密码才能正常访问。

(1)使用htpasswd生成用户认证文件,

Nginx访问控制与虚拟主机(基于端口,基于域名),内附源码

(2)修改密码文件的权限为400,将所有者改为nginx,设置nginx的运行用户能够读取。

Nginx访问控制与虚拟主机(基于端口,基于域名),内附源码

(3)修改主配置文件,添加相应配置项

location / {
            auth_basic "secret";
            auth_basic_user_file /usr/local/nginx/passwd.db;
            root   html;
            index  index.html index.htm;
        }

Nginx访问控制与虚拟主机(基于端口,基于域名),内附源码

(4)用浏览器访问网址,检验控制效果。

Nginx访问控制与虚拟主机(基于端口,基于域名),内附源码

另外有需要云服务器可以了解下创新互联建站www.cdcxhl.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前文章:Nginx访问控制与虚拟主机(基于端口,基于域名),内附源码-创新互联
网站路径:http://cdiso.cn/article/dgpsss.html

其他资讯