本文内容: 1. nginx 简介 2. nginx 安装 3. nginx 简单使用
Nginx是一个HTTP服务器,可以将服务器上的静态文件(如HTML、图片)通过HTTP协议展现给客户端。
Nginx也是反向代理服务器。
说反向代理之前先说一下正向代理,正向代理相信很多大陆同胞都在这片神奇的土地上用过了。就是访问国外网被墙了,然后找个代理服务,通过该服务器访问国外网站,这个是正向代理。
反向代理是 客户端访问代理服务器,但是代理服务器没有用户需要的资源,然后代理服务器偷偷访问应用服务器,获取资源返回给用户,用户不知道代理服务器是访问了应用服务器,代理服务器也隐藏了应用服务器的url。(反向代理的典型用途是将 防火墙后面的服务器提供给Internet用户访问)
Nginx可以通过反向代理来实现负载均衡。
2.1.1.添加Nginx到YUM源
添加CentOS 7 Nginx yum资源库,打开终端,使用以下命令:
sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm2.2.2.安装Nginx
在你的CentOS 7 服务器中使用yum命令从Nginx源服务器中获取来安装Nginx:
sudo yum install -y nginxNginx将完成安装在你的CentOS 7 服务器中。
2.2.3. Nginx启动
nginx -c nginx.conf启动后就可以访问 域名或者本机ip 如果出现下图,说明启动成功。
2.2.4. Nginx 停止
//查询出nginx的pid ps -ef|grep nginx//通过kill 命令杀死 nginx kill pid注意图中nginx的 pid 为 104972.2.5. Nginx配置信息
网站文件存放默认目录
/usr/share/nginx/html网站默认站点配置
/etc/nginx/conf.d/default.conf自定义Nginx站点配置文件存放目录
/etc/nginx/conf.d/Nginx全局配置
/etc/nginx/nginx.conf2.2.1下载镜像,
docker pull nginx:1.92.2.2 启动容器,
docker run -d -p 8080:80 nginx:1.9把容器内的nginx的80端口,映射到当前服务器的8080端口,假设当前服务器的ip是192.168.0.100,浏览器输入http://192.168.0.100:8080/,就可以看到nginx已启动,
关于静态资源服务器的使用这里就不做说明了。
小例子:实现访问本机 ip 然后代理 我的博地址 ,也就是在浏览器输入本机地址,然后跳转到我的博客。
如果是本地安装的nginx 的话需要修改 /etc/nginx/conf.d/default.conf 配置文件
注释原有的 location 然后替换为新的location
//注释原有的# location / { # root /usr/share/nginx/html; # index index.html index.htm; # }//新添加的location / { PRoxy_pass http://blog.csdn.net/u012373815?viewmode=list;}然后重启nginx ,访问本机ip 就会代理到“http://blog.csdn.net/u012373815?viewmode=list“ 我的博客地址。
如果是docker 安装的话,需要本地随意目录下新建default.conf 文件,内容如下:
server { listen 80; server_name localhost; #charset koi8-r; #access_log /var/log/nginx/log/host.access.log main; location / { proxy_pass http://blog.csdn.net/u012373815?viewmode=list;} error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; }}然后重新启动容器,将default.conf 文件映射到docker容器内。 启动命令如下:
docker run -p 8080:80 --name myNginx -v /本地路径/default.conf:/etc/nginx/conf.d/default.conf -d nginx:1.9容器启动后 ,访问本机ip 就会代理到“http://blog.csdn.net/u012373815?viewmode=list“ 我的博客地址。
上面的配置只实现了反向代理没有实现传说中的负载均衡。所有的请求就都被反向代理到 我的博客地址去了。这样我们反向代理的功能是实现了,可是就能代理到一台服务器上哪有什么负载均衡呀?这就要用到 nginx 的 upstream 模块了。
upstream backend { ip_hash; server backend1.example.com; server backend2.example.com; server backend3.example.com; server backend4.example.com;}location / { proxy_pass http://backend;}我们在 upstream 中指定了一组机器,并将这个组命名为 backend,这样在 proxypass 中只要将请求转移到 backend 这个 upstream 中我们就实现了在四台机器的反向代理加负载均衡。其中的 iphash指明了我们均衡的方式是按照用户的 ip 地址进行分配。 要让配置生效,我们不必重启 nginx 只需要 reload 配置即可。
参考资料: http://blog.csdn.net/u012486840/article/details/52610320 http://www.CUoXIn.com/article/61137.htm
新闻热点
疑难解答