目录

一.安装      二.启动 配置文件      三.多虚拟主机      三.nginx 反向代理         四.nginx负载均衡配置

一.安装

编译安装nginx:
1.解决依赖关系
yum install gcc patch libffi-devel python-devel  zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel openssl openssl-devel -y
2.下载源码包      wget -c https://nginx.org/download/nginx-1.12.0.tar.gz
3.解压缩源码包   tar -zxvf nginx-1.12.0
4.在当前路径下通过configure这个脚本文件执行,释放makefile,然后指定安装nginx的路径,以及开启模块功能ssl与状态模块功能
./configure  --prefix=/opt/nginx1-12/   --with-http_ssl_module --with-http_stub_status_module   指定安装目录  以及一些安装配置
5.编译且编译安装
make && make install

二.启动 配置文件

1. 进入 sbin/nginx   nginx -V 查看版本

6.在/opt/nginx1-12/ 安装好nginx的目录,找到一个sbin的文件夹 ,启动nginx服务  命令 sbin/nginx就可以启动了 
    1.检查nginx安装后的目录, /opt/nginx1-12
        drwxr-xr-x 2 root root 333 12月  6 09:32 conf   配置文件存放的目录,  nginx.conf这个文件就是nginx的主配置文件
        drwxr-xr-x 2 root root  40 12月  6 09:32 html    存放网页根目录的文件夹,存放了index.html   **.html  **.gif **.jpg 
        drwxr-xr-x 2 root root   6 12月  6 09:32 logs      日志目录
        drwxr-xr-x 2 root root  19 12月  6 09:32 sbin   nginx启动脚本目录
    2.nginx的可执行命令
    - rwx(user)   r-x(group)  r-x(other)  1    root(属主)    root(属组)     5656000 12月  6 09:32 sbin/nginx

./sbin/nginx                           #直接启动nginx
     ./sbin/nginx -s     stop 
     ./sbin/nginx -s     reload        #平滑重启(修改了nginx配置文件,不重启服务就加载配置且生效)
     ./sbin/nginx -t                        # 检测nginx.conf 配置文件的语法正确性

 三.多虚拟主机

    #虚拟主机1                                                      nginx的主配置文件, nginx1-12/conf  /nginx.conf 修改
      server {
          listen       80;                                              监听端口
          server_name  0.0.0.0;                               #域名1  这里是nginx通过这个参数,来定位不同的虚拟主机 
          location  /  {                                               #    / 代表访问nginx的匹配路径        
              root   /opt/html;           资源文件              #指明网页根目录在/data/huoying/文件夹下   存放静态文件 .htlm 图片视频...
              index  index.html index.htm;                  访问域名时呈现的默认页面   必须有

# deny   192.168.1.103                     拒绝一个ip地址 爬虫
        }

#虚拟主机2          9 yy复制9行   t打印
      server {
              listen       80;
              server_name  www.s14hanjutv.com;       #域2  这里是nginx通过这个参数,来定位不同的虚拟主机 
              location / {                                                #代表访问nginx的匹配路径
              root   /data/hanju/;             资源文件         #指明网页根目录在/data/hanju/文件夹下   存放静态文件 .htlm 图片视频...
              index  index.html index.htm ;              默认首页   访问www.s14hanjutv.com  相当于访问www.s14hanjutv.com/index.html
             }

多虚拟机  就可以 使用一个web服务 软件    展示多个域名          www.s14huoying.com   www.s14hanjutv.com

2.重新加载nginx配置文件      ../sbin/nginx -t  #检测语法                ../sbin/nginx -s reload #平滑重启     修改配置文件比重启

3.修改完后  创建所需要文件夹  /data/hanju/      和文件资源   index.html   tupian.jpg

4.写入到本地dns解析文件,由于我是在windows中通过浏览器访问,应该在windows的hosts文件中添加记录
      hosts文件就是一个本地dns(就是将域名转化成ip地址)强制解析的文件

windows的hosts文件就在这里:C:\Windows\System32\drivers\etc\hosts ,写入如下信息
      www.s14huoying.com   192.168.12.96      将 域名强制用 本机ip去解析
      www.s14hanjutv.com    192.168.12.96

 5.浏览器 访问时      www.s14hanjutv.com     就会访问到  index.html这个页面

如果 /data/hanju/ 下面有一个 tupian.jpg      www.s14hanjutv.com /tupian.jpg   就会访问到图片

2.如果  index.html 写入 img标签   src='tupian.jpg'   就会从当前目录自动查找     就会在index页面显示这张页面

 6.nginx状态模块功能:   nginx1-12/conf  /nginx.conf
       1.在配置文件中server {}内,添加一个参数即可               就可以 域名/status 访问 查看信息
         location /status {
              stub_status on;
         }

 7. location语法   

       1. 一个server  两个

             1.添加一个location  /s14   {     

             alias  /data/s14                  # 先创建 存放文件位置        在s14文件下创建一个文件wyc.txt

               }                                       就可以访问www.s14hanju.com/s14/wyc.txt   下的资源了

        2.location 匹配优先级
            #  www.s14hanju.com/                            # www.s14hanju.com/images/
            1.location = / {                                        2.location ^~ /images/ {
                      我是代码1                                                     我是代码2
            } 精确匹配                                                   }  匹配常规串,不做正则检查
       #  www.s14hanju.com/xxx.gif                   # www.s14hanju.com/av/xx资源

            3.location ~* \.(gif|jpg|jpeg)$  {                 4. location /av/ {
                      alias /data/img                                         我是代码4 
             }        正则匹配 ,通常静态资源                        }  匹配常规字符,有正则优先正则

           5.location /
                  我是代码5                                      #如果你谁都没匹配到的话,默认走/,走django 处理动态请求,优先级最低
             }      所有的location都不匹配后,默认匹配            3  5 常用

    8.nginx访问日志功能: 反爬虫

1.在nginx1-12/conf  /nginx.conf配置文件中,打开注释,nginx.conf

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                        '$status $body_bytes_sent "$http_referer" '
                        '"$http_user_agent" "$http_x_forwarded_for"';

access_log  logs/access.log  main;                 打开注释,nginx.conf 
    
           参数详解:
            $remote_addr            记录客户端ip
            $remote_user             远程用户,没有就是 “-”
            $time_local             对应[14/Aug/2018:18:46:52 +0800]
            $request            对应请求信息"GET /favicon.ico HTTP/1.1"
            $status              状态码
            $body_bytes_sent  571字节 请求体的大小
            $http_referer                 对应“-”  由于是直接输入浏览器就是 -
            $http_user_agent          客户端身份信息
            $http_x_forwarded_for  记录客户端的来源真实ip 97.64.34.118
             打开了功能之后,可一通过access_log查看用户身份信息
 9. nginx的错误页面优化:
  1.在配置文件中添加  nginx1-12/conf  /nginx.conf
     server {
            listen       80;
            server_name  www.s14huoying.com;
            location / {
                #指明网页根目录在/opt/html/文件夹下
                root   /data/huoying;
                index  index.html index.htm;
                deny 192.168.12.120;
            
            error_page  400 401 402 404   /40x.html;              出这些错误时  访问40x.htlm页面    必须存在 root指定目录
          #当请求来自于wwww.s14huoying.com/status/

三.nginx 反向代理

概念  创建两个nginx 服务   一个ip 是 192.168.1.103    一个ip是192.168.1.114

第一个nginx 服务 在主配置文件nginx.conf  中写入一个server

server {
           listen 80;
           server_name  www.s14huoying.com;              
           location / {
           proxy_pass http://192.168.1.114;
      }

#浏览器当请求  www.s14huoying.com 时 第一个nginx 服务请求来源是浏览器的IP地 址

然后会直接转接到 第二个nginx服务去请求资源  第二个nginx 服务 显示的请求 来源是  第一个nginx的ip地址

四.nginx负载均衡配置

1.环境准备,准备3台服务器
   192.168.119.128       nginx入口node1  负载均衡器
   192.168.119.130       web01
   192.168.119.133       web02

2.关闭所有机器的防火墙
3.在node1节点上配置负载均衡配置(发牌人)
    1.修改配置文件nginx.conf ,写入如下配置                    
            upstream s14django {                                     #定义负载均衡池名字叫做wycflask          与sever 同级                  
                server 192.168.119.130:8000;                    #池子中存放2个服务器,默认轮训方式调度服务器
                server 192.168.119.133:8000;                     当访问  负载均衡器 时 接入这两个接口 
            }
            root html;         #root参数定义网页的根目录,可以写在虚拟主机内,局部变量      #如果写在server标签外,就是全局变量

负载均衡server  配置
            server {                                
                listen 80;
                server_name  192.168.119.128 ;
                location / {                                                #当请求发送到www.s14huoying.com的时候,匹配到 /  ,就执行以下代码
                proxy_pass  http://s14django;                 proxy_pass这个指向  upstream负载均衡池中的IP地址
                include  /opt/nginx1-12/conf/proxy_params;              #这个proxy_params文手动件创建在/opt/nginx1-12/conf底下

}         }                                                                         #包含语法参数,将一个配置文件添加到当前虚拟主机生效
      
      2.手动创建这个参数文件
             touch /opt/nginx1-12/conf/proxy_params
              写入信息
               proxy_set_header Host $http_host;
               proxy_set_header X-Real-IP $remote_addr;
               proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_connect_timeout 30;
               proxy_send_timeout 60;
               proxy_read_timeout 60;

proxy_buffering on;
               proxy_buffer_size 32k;
               proxy_buffers 4 128k;

4.配置 web01 的应用服务器                                                           5.配置web02的应用服务器
    1.准备一个flask代码,运行  
    pip3 install flask
    2.准备代码  myflask.py                                                                  2.准备代码  myflask.py 
        from flask import Flask                                                                  from flask import Flask
        app=Flask(__name__)                                                                  app=Flask(__name__)
        @app.route('/')                                                                              @app.route('/')
        def hello():                                                                                     def hello():
            return "<h1>我是web01</h1>"                                                              return "<h1>我是web01</h1>"
        if __name__=="__main__":                                                           if __name__=="__main__":
        app.run(host='0.0.0.0',port=8000)                                                 app.run(host='0.0.0.0',port=8000)
    3.启动应用服务器                                                                         3.启动应用服务器
    python3 myflask.py                                                                       python3 myflask.py 
    这样访问    192.168.119.128  这个 IP地址时    会默认轮询 访问到 两个网页(两个web地址)

负载均衡池     分配权重

upstream s14django {                                      
                server 192.168.119.130:8000  weight =3;             访问时30%使用到web01服务器         
                server 192.168.119.133:8000   weight=7;             访问时70%使用到web02服务器  ,可将性能高的web服务器设置高值 
            }

linux 之nginx相关推荐

  1. Linux环境Nginx安装多版本PHP

    关于Linux环境Nginx安装与调试以及PHP安装参考此文即可:http://blog.csdn.net/unix21/article/details/8544922 linux版本:64位Cent ...

  2. Django+Linux+Uwsgi+Nginx项目部署文档

    Django+Linux+Uwsgi+Nginx项目部署文档 WSGI 在生产环境中使用WSGI作为python web的服务器 WSGI:全拼为Python Web服务器网关接口,Python We ...

  3. linux下nginx+python+fastcgi部署总结(web.py版)

    2019独角兽企业重金招聘Python工程师标准>>> 在上一篇文章linux下nginx+python+fastcgi部署总结(django版)中,我们部署了nginx+djang ...

  4. Linux下Nginx编译安装后的开机自启动设置

    Linux下Nginx编译安装后的开机自启动设置 一.查看当前Nginx启动状态 二.而配置Nginx相关服务文件 三 .设置nginx命令 四.设置开机启动 五.测试开机启动 一.查看当前Nginx ...

  5. Linux下Nginx编译安装过程详解

    Linux下Nginx编译安装过程详解 一.Nginx介绍 二.Nginx源码下载 1.打开Nginx官网 2.下载官网的源码包 三.Nginx源码安装 1.解压源码包 2.安装开发包组及环境 3.编 ...

  6. Ubuntu Linux配置Nginx+MySQL+PHP+phpMyAdmin详细步骤

    博主之前一直用的是apache,随着网站负荷量增高,感觉apache稍微有点力不从心了.随着nginx越来越流行,而且其功能强大,博主准备采用nginx作为自己的服务器啦. 每当到了环境配置的时候,博 ...

  7. linux window nginx性能,Nginx负载均衡搭建(Window与Linux)

    windows上搭建nginx负载均衡 1.准备几台http服务器软件,这里选用一台apache一台tomcat apache(windows)下载链接:https://www.apachehaus. ...

  8. linux下使用nginx搭建集群,CentOS(linux) 下Nginx的安装(Nginx+Tomcat集群第一步)

    CentOS(linux) 下Nginx的安装(Nginx+Tomcat集群) CentOS 7.4(腾讯云) pcre库 zlib库 openssl Nginx服务器 安装gcc g++开发类库 y ...

  9. Linux+.NetCore+Nginx搭建集群

    本篇和大家分享的是Linux+NetCore+Nginx搭建负载集群,对于netcore2.0发布后,我一直在看官网的文档并学习,关注有哪些新增的东西,我,一个从1.0到2.0的跟随者这里只总结一句话 ...

  10. nginx 在阿里云怎么安装mysql_阿里云Linux服务器安装 nginx+mysql+php

    阿里云Linux服务器安装 nginx+mysql+php 步骤 1.登录服务器 2.下载安装包 3.将安装包上传到服务器的/home目录下 注:使用rz sz命令进行本地和服务器间的上传.下载,安装 ...

最新文章

  1. 一次excel的countifs的成功应用
  2. Servlet 2.0 Servlet 3.0 新特性
  3. 养成一个习惯需要多久?
  4. 编程开发中最浪费时间和资源的7个错误
  5. 2020-12-11 图片格式互转:base64、PIL Image opencv cv2互转
  6. tableau双折线图_Tableau可视化之多变条形图
  7. OC-成员变量的作用域
  8. eclipse不进入断点_Eclipse 调试中不支持运行到断点问题
  9. Joomla!程序中加载JS和CSS的方法
  10. 【转】认识 C++ 中的 explicit 关键字
  11. 微软投资混合连接,发布本地数据网关
  12. Ubuntu 12.04 部署 PostGIS 2.1
  13. 关于FND_PROFILE与FND_GLOBLE
  14. Maven 使用本地Tomcat9 一键启动和热部署
  15. 第三讲 信息资产的分类与控制
  16. 图片服务器的架构演进
  17. 软件可靠性指标mtbf测试评估,产品可靠性指标预计
  18. JS网页特效实例:让网页前进和后退
  19. 二叉树中已知前序和中序求其后序(图解加技巧让你轻松掌握)
  20. 《阿里云天池大赛赛题解析(深度学习篇)》学习笔记(1)自然语言处理基础

热门文章

  1. 腾讯:企鹅帝国的风雨路
  2. Java-贷款计算器小程序
  3. 前端学习——JavaScript抽屉,手风琴,购物车特效案例
  4. 软考 | 2018年下半年 软件设计师 下午试卷
  5. vue-cli3.0中Tslint配置
  6. 【附源码】计算机毕业设计SSM校内考研互助网站
  7. Cpolar配合Everything快速搜索私有云资料
  8. 小可爱 java实训课程06 jdbc
  9. 应用计算机专业硕士,计算机应用技术专业(学术型硕士研究生招生专业)
  10. 我有特殊的节能技巧,处理事件的时候我会装作四处看风景