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

nginx的入门

2018-12-05 22:31 1046 查看

Nginx是一个http服务器。是一个使用c语言开发的高性能的http服务器及反向代理服务器。Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师Igor Sysoev所开发,官方测试nginx能够支支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定。

一、使用场景
1、 http服务器。Nginx是一个http服务可以独立提供http服务。可以做网页静态服务器。
2、 虚拟主机。可以实现在一台服务器虚拟出多个网站。例如个人网站使用的虚拟主机。基于端口的,不同的端口基于域名的,不同域名
3、 反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。
(1)http服务器。
首先,Nginx是一个HTTP服务器,可以将服务器上的静态文件(如HTML、图片)通过HTTP协议展现给客户端。
把文件放到html上,通过ip地址+文件名就可以访问了
(2) 虚拟主机。可以实现在一台服务器虚拟出多个网站。例如个人网站使用的虚拟主机。基于端口的,不同的端口基于域名的,不同域名
(3)反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。

二、安装
1、下载nginx:
官方网站:
http://nginx.org/
2、需要安装gcc的环境。
yum install gcc-c++
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel
3、安装
第一步:把nginx的源码包上传到linux系统
第二步:解压缩
[root@localhost ~]# tar zxf nginx-1.8.0.tar.gz
第三步:创建使用到的文件夹
mkdir -p /var/temp/nginx/client
mkdir -p /var/temp/nginx
mkdir -p /usr/local/nginx
第三步:在nginx解压目录下执行
使用configure命令创建一makeFile文件。
./configure
–prefix=/usr/local/nginx
–pid-path=/var/run/nginx/nginx.pid
–lock-path=/var/lock/nginx.lock
–error-log-path=/var/log/nginx/error.log
–http-log-path=/var/log/nginx/access.log
–with-http_gzip_static_module
–http-client-body-temp-path=/var/temp/nginx/client
–http-proxy-temp-path=/var/temp/nginx/proxy
–http-fastcgi-temp-path=/var/temp/nginx/fastcgi
–http-uwsgi-temp-path=/var/temp/nginx/uwsgi
–http-scgi-temp-path=/var/temp/nginx/scgi
(4)在nginx解压目录下执行make
(5)make install

(6) 启动./nginx -s start , 停止 ./nginx -s stop, 重启 ./nginx -s reload
nginx默认的端口是80,可以直接使用访问ip地址看nginx下面的页面

三、首先,Nginx是一个HTTP服务器,可以将服务器上的静态文件(如HTML、图片)通过HTTP协议展现给客户端。
把文件放到html上,通过ip地址+文件名就可以访问了
下面是我把一个rotate.html放到了里面,然后通过网页访问

四、配置虚拟主机 就是在一台服务器启动多个网站。
如何区分不同的网站:

1、端口不同



2、域名不同
在nginx.conf中配置如下

server {
listen       80;
server_name  www.taobao.com;

#charset koi8-r;

#access_log  logs/host.access.log  main;

location / {
root   html-taobao;
index  index.html index.htm;
}
}
server {
listen       80;
server_name  www.baidu.com;

#charset koi8-r;

#access_log  logs/host.access.log  main;

location / {
root   html-baidu;
index  index.html index.htm;
}
}
配置域名:

域名就是网站: www.baidu.comwww.taobao.comwww.jd.com

Dns服务器:把域名解析为ip地址。保存的就是域名和ip的映射关系。 一级域名: Baidu.com Taobao.com Jd.com
二级域名: www.baidu.comImage.baidu.comItem.baidu.com 三级域名:
1.Image.baidu.com Aaa.image.baidu.com

一个域名对应一个ip地址,一个ip地址可以被多个域名绑定。

在本地的
C:\Windows\System32\drivers\etc中配置
(用nodepad++打开就可直接配置了)
域名的配置:
192.168.136151 www.taobao.com
192.168.136.151 www.baidu.com

此时,你在你的ie浏览器上输入 www.baidu.com,和www.taobao.com将会变成你nginx中的页面

  1. 反向代理与负载均衡
    想要理解反向代理,就必须要先理解正向代理,来说说我的理解吧,
    假如我们现在有很多人都想要去超市,都有差不多的需求,所以这个时候我们就可一个人代理我们去超市,这样就可以解决我们的需求了。
    反向代理,就是现在很多人都想去超市,但是超市有很多家,可能你要去不同的地方才能把东西买全,现在就一个地方是所有超市的来联盟,它就是这些超市的代理,你可去在这一地方买就行了,这就反向代理,正向代理是有一个代理代表了所有的客户,反向代理是有一个代理代表了很多服务器,个人理解欢迎纠正


反向代理的配置:


先解压出来2个tomcat,修改其中的一个tomcat的配置文件(如果两个端口都是8080,在启动一个以后,再启动另一个会报端口号被占用),在conf的server.xml修改其中的一个端口号为8081,需要修改3个地方,如下
把8005修改8006(如果想要开启3个tomcat时,就依次往上+1,其他端口也一样,当然也可以写其他的)

8080改为8081
8009改为8010

修改apache-tomcat-7.0.47_1/webapps/ROOT下的index.jsp文件
修改两个tomcat的这个文件,大概在48行
修改第一个的为www.baidu.com
第二个添加www.souhu.com

然后再nginx.conf中配置如下

upstream tomcat1 {
#此处的端口号对应的一个没有修改tomcat的端口号,也就是默认的
server 192.168.136.150:8080;
}
server {
listen       80;
server_name  www.sina.com.cn;

#charset koi8-r;

#access_log  logs/host.access.log  main;

location / {
proxy_pass   http://tomcat1;
index  index.html index.htm;
}
}
upstream tomcat2 {
#此处的端口号和修改的对应
server 192.168.136.150:8081;
}
server {
listen       80;
server_name  www.sohu.com
24000
;

#charset koi8-r;

#access_log  logs/host.access.log  main;

location / {
proxy_pass   http://tomcat2;
index  index.html index.htm;
}
}

nginx重新加载配置文件 nginx -s reload
配置域名 在hosts文件中添加域名和ip的映射关系
192.168.136.150 www.sina.com.cn
192.168.136.150 www.sina.com.cn
然后可以通过ie浏览器访问www.sina.com.cnwww.sina.com.cn

负载均衡:
当某个服务器的负载过大时,可以使用多台服务器分摊同一功能,
比如说,上面有两个www.baidu.com和www.souhu.com,如果www.souhu.com一直被访问,那么它的压力会很大,所以我们可以设置负载均衡
如果一个服务由多条服务器提供,需要把负载分配到不同的服务器处理,需要负载均衡。

再解压一个tomcat,把server.conf文件修改,还是按上面的,但是端口号不要相同,我是改成了8082.
修改tomcat3中的index.jsp,修改为www.souhu.com1111111111

下面来为www.souhu.com这台服务器进行负载均衡

upstream tomcat1 {
server 192.168.136.150:8080;
}
server {
listen       80;
server_name  www.sina.com.cn;

#charset koi8-r;

#access_log  logs/host.access.log  main;

location / {
proxy_pass   http://tomcat1;
index  index.html index.htm;
}
}
upstream tomcat2 {
server 192.168.136.150:8081;
server 192.168.136.150:8082 ;
}

server {
listen       80;
server_name  www.sohu.com;

#charset koi8-r;

#access_log  logs/host.access.log  main;

location / {
proxy_pass   http://tomcat2;
index  index.html index.htm;
}
}

此时你在去访问www.souhu.com,会发现网页可能会变了,这就证明了两天服务器再不断的替换进行服务,但是比例不是1:1,k=可以设置权重
权重越高出现的次数越多

upstream tomcat2 {
server 192.168.136.150:8081; server
192.168.136.150:8082 weight=2;
}

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: