Nginx




一、差异对比

Apache

Nginx





配置相对复杂


配置相对简单

原生支持动态和静态页面

支持静态页面

模块相对安全


高性能模块出产迅速、社区活跃

BUG相对较少,消耗资源较多

BUG相对较多,节省资源

对加密支持较好

对反向代理支持较好

同步阻塞型应用

异步非阻塞型应用

二、Nginx 的安装


yum-yinstallgcc*

 

yum-yinstallpcre*zlib*

 

useradd -M  -s  /sbin/nologinnginx

 

解压软件包  nginx

 

./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module

 

make

 

install

 

添加监控模块

 

vi /usr/local/nginx/conf/nginx.conf

 

location /abc  {

 

stub_status on;

 

}

 

 

 

三、 Nginx实验

 

1Nginx 身份验证

 

a、基于用户名密码

 

vi /usr/local/nginx/conf/nginx.conf location /abc {

 

stub_status on;

 

auth_basic "Welcome to nginx!"; auth_basic_user_file /usr/local/nginx/html/a.psd;

 

}

 

htpasswd -c /usr/local/nginx/html/a.psd zhangsan htpasswd -m /usr/local/nginx/html/a.psd lisi

 

b、基于IP限制访问

 

vi /usr/local/nginx/conf/nginx.conf location /abc {

 

stub_status on;

 

auth_basic "Welcome to nginx!"; auth_basic_user_file /usr/local/nginx/html/a.psd;

 

allow 192.168.66.250; 允许250拒绝所有 deny 192.168.66.0/24;

 

}

 

c、虚拟主机 vi /usr/local/nginx/conf/nginx.conf

 

复制 server{} 区域,不同的 server 区域则是不同的虚拟主机,同 apache 拥有基于域名端口的虚拟主机

 

dNginx的反向代理功能

 

说明:反向代理的实现过程是,当客户端访问请求道 nginx 服务器是,nginx充当客户端去真正的服务端去数据,返回给client端,这个过程称之为反向代理

 

实验环境说明:192.168.1.3 安装了lamp环境,192.168.1.2 安装了 nginx 程序,实现 nginx 完全的反向代理 lamp

spacer.gif

location / {

 

proxy_pass http://192.168.1.3:80;

 

}

 

e、负载调度的用法

 

、在server区域外创建一个 upstream 区域,此区域中编写的内容为负载群

 

upstreamxdl.com {

 

ip_hash;

 

#调度算法,默认 rr 轮训,hash常用语解决session共享的问题

 

server 192.168.1.240:80weight  1;

 

server 192.168.1.241:80weight1;

 

server192.168.1.242:80weight  1 backup;

 

#backup 表示机器处于热备状态,weight代表权重,权重越高代表使用越多

 

}

 

、在 / 的区域内设置反向代理

 

location / {

 

proxy_passhttp://xdl.com;

 

}

 

fHTTPS加密访问

 

、在需要使用https加密访问的 server{} 区域内添加一下内容开启 SLL 加密

 

ssl


on;


ssl_certificate

server.crt;

ssl_certificate_key  server.key;

ssl_session_timeout

5m;


ssl_protocols

TLSv1;



ssl_ciphers

HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM;

ssl_prefer_server_ciphers

on;

 

、将本站点的 server.pem 以及 server.key 放入 nginx  conf/ 目录下

 

注:在实验环境中可以用一下命令生成测试,在生产环境中必须要在https厂商注册使用

 

openssl genrsa -des3 -out server.key 1024#建立服务器私钥(过程需要输入密码,请记住这个密码)生成

 

RSA密钥

 

openssl req -new -key server.key -out server.csr#需要依次输入国家,地区,组织,email。最重要的是有

 

一个common name,可以写你的名字或者域名。如果为了https申请,这个必须和域名吻合,否则会引发浏览器警报。生成的csr文件交给CA签名后形成服务端自己的证书

 

cp server.key server.key.org

 

openssl x509 -req -days 365 -sha256  -in server.csr -signkey server.key -out servernew.crt#命令生成v1版证书

 

cp servernew.crt /usr/local/nginx/conf/server.crt

 

cp server.key /usr/local/nginx/conf/server.key

 

 

、浏览器默认访问的为服务器的 80 端口即默认使用 http 协议访问,而 https 使用的是 443 端口,所

 

以需要在 nginx 配置全域名跳转功能,假设此时我们的域名是 www.xdl.com ,需要配置

 

server { listen 80;

server_namewww.xdl.com;

 

rewrite ^(.*)$ https://$host$1 permanent;

 

}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章