您的位置:首页 > 运维架构 > Nginx

nginx基础配置

2011-11-27 01:59 239 查看
tomcat 即是一个JSP 和Servler的运行平台。同事Tomcat又不仅仅是一个

servlet容器,它也具有传统的WEB服务器的功能;处理html页面,但是与
apache相比,它的处理静态html的能力就不如apache,我们可以将tomcat
和apache集成到一块,让apache处理静态html,而tomcat处理JSP和servlet
这种集成只需要修改一下apache和tomcat的配置文件即可。

Nginx "engine X"是一个高性能的HTTP和反向代理服务器,同时也是一个
IMAP/POP3/SMTP代理服务器。

Nginx的主配置文件默认情况下位于/usr/local/nginx/conf/nginx.conf

nginx 下的虚拟主机配置

虚拟主机分三种:基于IP,端口,名称

Nginx基于名称的虚拟主机配置

server {

listen 80;
server_name www.baidu.com

}

server {

listen 80;
server_name www.google.com

}

server {

lisetn 80 default;
.......
}

定义了三个虚拟主机,前两个server,通过域名www.baidu.com ,www,google.com
可以分别访问正确的网站。如果通过IP或者其他指向这台机器的域名访问,那么访问
到的是第三个server配置。第三个server为一个默认配置,请注意它没有server_name
指令,并且listen指定包含一个default 关键字。

Nginx 基于IP的虚拟主机

server {
listen 192.168.1.4:80;
root 88.com;
index index.html;

}

server {
listen 192.168.1.3:80;
root 85.com;
index index.html;

}

Nginx 基于端口的虚拟主机

server {
listen 80;
root 88.com;

}

server {
listen 8080;
root 8080.com;

}

安全的链接https

Nginx 的https配置方法:

首先生成一对证书。

需要用到openssl命令,所以先确认系统是否安装

RHEL5 中在 /et/pki/tls/certs 目录有个脚本可以帮助我们简化证书生成的过程,

所以我们首先切换到此目录

cd /etc/pki/tls/certs

make server.key

生成私钥

openssl rsa -in server.key -out server.key

去除密码以便使用时不询问密码

make server.csr

生成证书颁发机构,用于颁发公钥

openssl x509 -in server.csr -req -signkey server.key -day 365 -out server.crt

访问控制

与APACHE相似

location / {

root html;
index index.html index.htm;

auth_basic "xxxx";
auth_basic_user_file /usr/local/nginx/passwd.db;

}

设置密码

htpasswd -c /usr/local/nginx/passwd.db mark

Rewrite 规则

Rewrite 对称URL rewrite ,即URL重写

Nginx 反向代理

反向代理方式:是指以代理服务器来接受internet上的链接请求,然后将请求转发给内部网络上
的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外
就表现为一个服务器

基本可以实现一个完整的7层负载均衡,它有这些特色

1.功能强大,性能卓越,运行稳定。

2.配置简单灵活;

3.能够自动剔除工作不正常的后端服务器。

4.上传文件使用异步模式。

5.支持多种分配策略,可以分配权重,分配方式灵活。

nginx 的upstream目前支持5种方式的分配

1.轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,
能自动剔除。

2.weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。

upsteam bakend {

server 192.168.1.2 weight=10;
server 192.168.1.4 weight=10;

}

3 ip_hash

每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决
session的问题。

upsteam bakend {

ip_hash;

server 192.168.1.2:80;
server 192.168.1.4:80;

}

4.fair (第三方)

按后端服务器的响应时间来分配请求,响应时间短的优先分配。

upsteam bakend {

server 192.168.1.2:80;
server 192.168.1.4:80;

fair;
}

5.url_hash (第三方)

按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为
缓存时比较有效。

upsteam bakend {

server 192.168.1.2:80;
server 192.168.1.4:80;

hash $request_uri;
hash_method crc32;
}

每个设备的状态设置为

1.down 表示当前的server暂时不参与负载

2.weight默认为1.weight越大,负载的权重就越大。

3.max_fails:允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream
模块定义的错误。

4.fail_timeout:max_fails次失败后,暂停的时间。

5.backup:其它所有的非backup机器down或者忙的时候,请求backup机器。
所有这台机器压力会最轻。

nginx支持同时设置多组的负载均衡,用来给不用的server来使用。
本文出自 “我是一只小小鸟” 博客,请务必保留此出处http://litclive.blog.51cto.com/628198/726101
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: