Linux-Nginx安装配置

来源:互联网 发布:程序员女朋友礼物代码 编辑:程序博客网 时间:2024/06/08 00:58

介绍

Nginx(“engine x”)是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的Web和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。在高连接并发的情况下,Nginx是Apache服务器不错的替代品。

安装

  • 系统平台:CentOS 6.7(64位)
  • 下载工具,使用yum源下载资源,这里使用阿里云aliyun的yum。
    替换系统默认的yum源的操作步骤:
    备份系统的yum
    mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
    下载aliyun的yum
    使用wget命令下载,如果linux提示没有这个命令,则恢复默认的yum,使用yum -y install wget安装wget。
    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
    重新设置默认yum
    yum clean all
    yum makecache # 重建缓存
  • 下载资源
    进入用户目录 cd /usr/local/src/
    下载Nginx1.7.10 wget http://nginx.org/download/nginx-1.7.10.tar.gz
    解压到/usr/local/bin/目录 tar zxvf nginx-1.7.10.tar.gz -C /usr/local/bin/
  • 编译和安装
    安装Nginx中gzip模块依赖的zlib库
    yum -y install zlib-devel
    安装Nginx中rewrite模块依赖的pcre 库
    yum -y install pcre
    安装Nginx中ssl 功能需要的openssl库
    yum -y install openssl
    进入解压后的目录 cd /usr/local/bin/nginx-1.7.10
    设置配置 ./configure –prefix=/usr/etc/nginx
    交叉编译 make
    安装 make install
  • 启动
    正常启动
    /usr/etc/nginx/sbin/nginx
    检查是否启动成功,浏览器访问http://192.168.2.120
    重启Nginx
    /usr/etc/nginx/sbin/nginx -s reload
    停止Nginx
    /usr/etc/nginx/sbin/nginx -s stop
    测试配置文件是否正常
    /usr/etc/nginx/sbin/nginx -t
    强制关闭 pkill nginx

配置

以上安装方法nginx的配置文件位于
/usr/etc/nginx/conf/nginx.conf
Nginx配置文件常见结构的从外到内依次是「http」「server」「location」等等,缺省的继承关系是从外到内,也就是说内层块会自动获取外层块的值作为缺省值。
Server 和 Location 配置
接收请求的服务器需要将不同的请求按规则转发到不同的后端服务器上,在 nginx 中我们可以通过构建虚拟主机(server)的概念来将这些不同的服务配置隔离。

   server {        listen       80;        server_name  localhost;        location / {            root   html;            index  index.html index.htm;        }    }

listen : 监听的端口
server_name: 指定IP或者域名,多个域名以空格分开
location: 每个 url 请求都会对应的一个服务,nginx 进行处理转发或者是本地的一个文件路径,或者是其他服务器的一个服务路径。而这个路径的匹配是通过 location 来进行的。
root: 用于指定虚拟主机的根目录,这个地方可以是相对地址也可以是绝对地址。
index: 设定访问的默认首页地址
上面的配置就是当客户端在浏览器访问本linux机器ip,即:http://192.168.2.120/时,Nginx自动将80端口请求转发到本机,访问/根目录,对应location的html目录的index.html,也就是Nginx的欢迎页面。
若不能正常访问80端口,查看linux机器上的防火墙是否开放80端口,没有则开启
vi /etc/sysconfig/iptables
插入下面2行后保存退出
-A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT
-A INPUT -m state –state NEW -m tcp -p tcp –dport 8080 -j ACCEPT
最后重启Nginx
/usr/etc/nginx/sbin/nginx -s reload

静态资源映射

下面测试配置一个Nginx资源映射,将linux机器上data目录下的资源文件(txt、html、jat等静态资源)暴露在10001端口下,供客户端使用http下载。

server {    listen       10001;    server_name  localhost;    #默认配置    location / {        root html;        index index.html index.htm;    }    #处理特殊资源    location ~ \.(txt|html|htm|jat)$ {        root   /data;        index index.html index.htm;    }}

然后开放虚拟机的10001端口
vi /etc/sysconfig/iptables
插入 -A INPUT -m state –state NEW -m tcp -p tcp –dport 10001 -j ACCEPT
最后重启Nginx
/usr/etc/nginx/sbin/nginx -s reload
最后在客户端的浏览器访问 http://192.168.2.120:10001/xxxxx.txt 或者http://192.168.2.120:10001/xxxxx.html等location配置正则表达式支持的资源就可以
当然资源要真实存在才能访问到,没有的就是404了。