设为首页 收藏本站
查看: 939|回复: 0

[经验分享] Nginx作为web服务器的安装配置

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-9-28 10:10:52 | 显示全部楼层 |阅读模式
Nginx简介
是一个高性能的 HTTP 和 反向代理服务器,由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler使用。其特性是:1.模块化设计,较好的扩展性(不支持动态装卸载机制)     ;2.较好的高可靠性3.低内存消耗(一个线程响应多个请求) 4.支持热部署(不停机二更新配置文件、日志文件的滚动、也包括升级程序版本)  5.支持时间驱动机制、异步IO(AIO)、内存映射机制(mmap)。
Nginx具有独特的工作模式,它基于非阻塞、事件驱动机制由一个master进程生成多个worker线程,每个worker响应n个请求,基于这种模式,nginx的并发能力在国内外享有很高的评价,特别是响应静态资源的能力尤其突出,是一款强大的HTTP和反向代理服务器。

实验准备:
yum源:epel源
源码包:nginx-1.6.2.tar.gz
本机IP:192.168.3.136

实验步骤:

一、nginx的编译安装
安装开发环境和pcre-devel包,以及添加nginx组和nginx用户
1
2
3
4
#yum groupinstall "Development Tools""Server Platform Development" –y
# yum install pcre-devel –y
# groupadd -r nginx
# useradd -r -g nginx nginx



1.    解压nginx安装包至本地目录,然后执行编译、安装
1
2
3
4
5
# tar -xf nginx-1.6.2.tar.gz
#cd nginx-1.6.2
#./configure --prefix=/usr/local/nginx--conf-path=/etc/nginx/nginx.conf --user=nginx --group=nginx--error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log--pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock--with-http_ssl_module --with-http_stub_status_module--with-http_gzip_static_module --with-http_flv_module --with-http_mp4_module--http-client-body-temp-path=/var/tmp/nginx/client--http-proxy-temp-path=/var/tmp/nginx/proxy--http-fastcgi-temp-path=/var/tmp/nginx/fastcgi--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi
              #make && make install
#mkdir -pv/var/tmp/nginx/{client,proxy,fastcgi,uwsgi}



2.    启动nginx,并确保80端口已经监听
1
2
3
4
# ss -tnl | grep 80 保证80端口此时没被监听
# /usr/local/nginx/sbin/nginx
#ss -tnl | grep 80
LISTEN    0   128      *:80                    *:*




到此nginx的编译安装就已经成功完成了,在浏览器中输入:192.168.3.136,进行测试访问,就出现nginx的的欢迎页面。
                            wKioL1YE792QKhBFAAEei13GohQ698.jpg

二、基于端口的虚拟主机的配置
1.    在上面的基础上,编辑配置文件,添加虚拟主机sever{}
1
2
3
4
5
6
7
#vim /etc/nginx/nginx.conf
……在最http{}里面添加如下内容….
server{  #定义一个虚拟主机
        listen       8080; #指明监听的端口为8080
        server_name  www.vega.ict; #指明服务器的名字
        root "/vhosts/web1/";  #指明主页面文档的根目录
    }




2.    创建虚拟主机页面目录,并准备主页面文件
1
2
3
4
5
# mkdir /vhosts/web1 –pv
# cd /vhosts/web1/
# vim index.html
…..添加如下内容…..
<h1>page web1(nginx)</h1>



3.重新载入配置文件
1
# /usr/local/nginx/sbin/nginx -s reload




到此我们基于端口的虚拟主机就配置完成了,下面在浏览器进行访问测试,输入192.168.3.136:8080,观察显示结果
wKiom1YE8BeQC1EqAADPbPbGQW8917.jpg


三、基于用户请求做访问控制的配置
1.    编辑配置文件/etc/nginx/nginx.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#vim /etc/nginx/nginx.conf
….将上面server{}段的内容改为如下…..
server {
        listen       8080; #监听8080端口
        server_name  www.vega.ict;  #定义主机名
  #凡是用户的URL带/的就定向至本地文件系统路径:/vhosts/web1/中
        location / {
                root "/vhosts/web1/";
        }
  #凡是用户的URL以.txt结尾的就定向至本地文件系统路径:/vhosts/text/中
        location ~* \.txt$ {
                root "/vhosts/text/";
        }
    }



2.    提供测试页面目录及页面主目录文件
1
2
3
4
5
6
7
#mkdir /vhosts/text
#vim/vhosts/web1/a.txt
….添加如下内容,….
It is  /vhosts/web1/a.txt
#vim/vhosts/text/a.txt
….添加如下内容,….
It is  /vhosts/text/a.txt




3.    重新载入配置文件,并进行相应测试
1
#/usr/local/nginx/sbin/nginx -s reload




在浏览器中测试访问,分别输入:http://192.168.3.136:8080/a.txt,之所以是访问的/vhosts/text/a.txt是因为~*location的优先级高于不带任何符号的location,所以就被定向至/vhosts/text/a.txt而非/vhosts/web1/a.txt.
wKioL1YE8DCBPKEMAACk0FUMo6A937.jpg

四、基于IP的访问控制的配置(以状态页面为例)
1.编辑配置文件,添加location /status {}段:
1
2
3
4
5
6
#vim /etc/nginx/nginx.conf
…..在上述定义server{}段中添加如下内容….
location /status {  #定义状态页的URL为/status
                stub_status on; #开启状态页
                allow 192.168.3.0/24; #允许192.168.3.0网段的主机访问
                deny all; #其他网段的主机禁止访问



       }
2.测试语法是否有误,然重新载入配置文件,最后执行访问测试即可
1
2
# /usr/local/nginx/sbin/nginx  -t
# /usr/local/nginx/sbin/nginx  -s reload



基于IP的控制就配置完成了,下面对其进行测试访问,在浏览器中输入:http://192.168.3.136:8080/status,观察访问结果!! wKiom1YE8ECyR-qdAAC8ZUldoHA997.jpg

五、基于用户的访问控制的配置
1.编辑配置文件/etc/nginx/nginx.conf
1
2
3
4
5
6
7
8
9
#vim /etc/nginx/nginx.conf
………在location{}段中,添加蓝色2行即可……
location /status {
               stub_status on;
               allow 192.168.3.0/24;
               deny all;
                auth_basic "Only for VIP";
                auth_basic_user_file/etc/nginx/users/.htpasswd;
        }



2.在/etc/nginx目录创建认证用户目录users,并用命令htpasswd为用户tom创建认证文件.htpasswd(最好用隐藏文件,如.htpasswd)
1
2
3
4
# mkdir /etc/nginx/users
# yum install httpd –y
#htpasswd -c -m /etc/nginx/users/.htpasswd tom
….输入密码123即可



3.确保没有语法错误,并重新载入配置文件
1
2
#/usr/local/nginx/sbin/nginx -t
#/usr/local/nginx/sbin/nginx -s reload




到此我们基于用户的访问控制配置就完成了,下面对已经完成的配置进行访问测试,在浏览器中输入:http://192.168.3.136:8080/status,然后输入用户名tom和密码:123,认证通过即可访问nginx web服务器的状态页面了
wKiom1YE77_BLywgAAGS6SB76so625.jpg


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-119862-1-1.html 上篇帖子: Nginx+Tomcat动静分离 下篇帖子: nginx实现负载均衡 web服务器
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表