Nginx
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx相关的知识,希望对你有一定的参考价值。
一、差异对比 | |||
Apache | |||
配置相对复杂 | 配置相对简单 | ||
原生支持动态和静态页面 | 支持静态页面 | ||
模块相对安全 | 高性能模块出产迅速、社区活跃 | ||
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实验
1、Nginx 身份验证
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 拥有基于域名端口的虚拟主机
d、Nginx的反向代理功能
说明:反向代理的实现过程是,当客户端访问请求道 nginx 服务器是,nginx充当客户端去真正的服务端去数据,返回给client端,这个过程称之为反向代理
实验环境说明:192.168.1.3 安装了lamp环境,192.168.1.2 安装了 nginx 程序,实现 nginx 完全的反向代理 lamp
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;
}
f、HTTPS加密访问
①、在需要使用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;
}
本文出自 “小鹏运维日记” 博客,请务必保留此出处http://mengyp.blog.51cto.com/12921051/1940317
以上是关于Nginx的主要内容,如果未能解决你的问题,请参考以下文章