反向代理常见的lvs、haproxy。

缓存服务常见的。squid。vanish。常见的前端缓存。
Apache是多进程的web服务器,Nginx是多线程的web服务器。

Nginx的特点,对静态能力强,远胜Apache。对动态的没有Apache好。
Nginx小,方便简单灵活,比较具有发展潜力的软件,在性能上比Apache占用资源更少,对静态的处理更少,
Nginx的特性。是开源的,支持高并发的,高性能的,资源消耗少。
Nginx的三大功能

可以充当web服务
反向代理。(可以充当负载均衡,)
可以当缓存服务

Nginx的网路模型是同过异步io的模型epoll实现的
select是同步i/o阻塞网路模型。epoll是异步i/o非阻塞模型

编译,先安装支持包
pcre-devel OpenSSL-devel
创建程序用户Nginx。
解压缩。编译
编译的时候指定按照模块./configure --user=nginx --group=nginx --prefix=/usr/local/nginx-1.10./ --with-http_stub_status_module --with-http_ssl_module && make && make install
给Nginx创建软连接

修改映射文件 vim /etc/hosts

修改Nginx的配置文件

vim /usr/local/nginx/conf/nginx.conf
worker_processes ;(工作的进程数,一般工作中服务器有几核就写几,最多不超过2倍)
events {(时间函数)
worker_connectiongs ;(进程里边的线程数,默认1024,一般我们写成他的20倍,极限65535)
}
http{
include mime.types;
default_type application/octet-stream;(默认的类型)
sendfile on;(开启Nginx的高效传输功能)
keppalive_timeout ;(连接保持时间时间秒为单位,好处会减低三次握手的额外开销,tigoa)
server{ (一个server就带表一个网站)
listen ;(监听的端口)
server_name localhost;(域名)
location / {
root html;(代表网页目录是从哪里开始的。是想对路径,相对于Nginx的安装目录)
index index.html index.htm;(索引,只的目录时那个。)
}
}
}
```

需要include导入文件脚本的路径是相对于脚本放置的目录的相对路径

例如:include  extra/www.conf

一个服务器搭建多个网站
有3种方法。
1.基于不同域名的虚拟网站
2.基于不同端口的虚拟网站
3.基于不同ip的虚拟网站

想要阻止非法用户的访问,需要在新开一个web页面的配置

```
server{
listen default_server;
server_name _;
location / {
return ;
}
}
```

状态信息也开启

```
server{
listen ;
server_name status.yuming.com;
location{
  stub_status on;(开启健康状态)
  access_log off;(不开启日志)
  allow ip地址;(只容许什么地址查看)
  deny all;(拒绝一起连接)
    }
}
```

开启错误日志不要在函数里写,
error_log logs/error.log;
命令curl是模仿URl的,
参数-v能看详细的过程。
location 是Nginx里边非常重要的函数,可以同过正则表达式来过滤不同的URL里的uri部分。匹配到不同的uri进入到不同的location里也就可以看到不同的网页了
所以我们要明白如何过滤,和过滤的优先级。精确匹配>特殊正则>正则匹配>字符串匹配>默认匹配。
匹配是前缀匹配。
"="是精确匹配,不能有别的部分。只匹配uri部分。
单独写/是模糊查找,含有根就可以。是默认匹配是优先级最低的。
~代表进行正则。*表示不区分大小写正则匹配
^~是特殊的正则匹配,一旦加了这个后边的的东西匹配优先级搞过正则。

重写,替换域名

写法:rewrite 把什么 匹配成什么 permanent
有4种标记。last 。break redirect permanent
替换域名
if ($http_host ~* "^(.*)\.yunjisuan\.com"){
set $domke $;
rewrite ^(.*) http://www.yunjisuan.com/$domke break;
}

给状态网页加密,需要安装一个服务httpd,要有htpasswd这个命令

命令;htpasswd -bc /usr/local/nginx/conf/htpasswd yunjiuan(用户) (密码)
在sever的location里加入
auth_basic "题目";
auth_basic_user_file 文件的绝对路径;

Nginx的安全机制,在找不到首页的情况下将所有网页都显示,默认是关闭的。Apache是默认开启的,找不到首页Nginx报错403,是触发了安全机制,将这个给拒绝了,想要开启需要在配置文件的server里添加

autoindex on;

nginx的编译,和简单的配置问题的更多相关文章

  1. 初识Nginx及编译安装Nginx

    初识Nginx及编译安装Nginx 环境说明: 系统版本    CentOS 6.9 x86_64 软件版本    nginx-1.12.2 1.什么是Nginx? 如果你听说或使用过Apache软件 ...

  2. (转载)学校搭建使用nginx同时编译rtmp-module进行直播的技术文档

    原文地址:学校搭建使用 nginx 同时编译 rtmp-module 进行直播的技术文档 转载自我的大佬同学 MetalkgLZH.学校有几次需要全校观看网络直播的情况,但是学校的带宽不允许所有的班一 ...

  3. 【01】Nginx:编译安装/动态添加模块

    写在前面的话 说起 Nginx,别说运维,就是很多开发人员也很熟悉,毕竟如今已经 2019 年了,Apache 更多的要么成为了历史,要么成为了历史残留. 我们在提及 Nginx 的时候,一直在强调他 ...

  4. Nginx 的编译安装和URL地址重写

    本文转自:http://www.178linux.com/14119#rd?sukey=ecafc0a7cc4a741b573a095a3eb78af6b4c9116b74d0bbc9844d8fc5 ...

  5. CentOS6.5 Nginx优化编译配置[续]

    继续上文CentOS6.5 Nginx优化编译配置本文记录有关Nginx系统环境的一些细节设置,有关Nginx性能调整除了配置文件吻合服务器硬件之前就是关闭不必要的服务.磁盘操作.文件描述符.内核调整 ...

  6. 在openwrt上编译最简单的一个ipk包文件

    1 什么是opkg Opkg 是一个轻量快速的套件管理系统,目前已成为 Opensource 界嵌入式系统标准.常用于路由.交换机等嵌入式设备中,用来管理软件包的安装升级与下载. opkg updat ...

  7. nginx配合IIS实现简单负载均衡

    1.IIS 部署两个站点端口分别为8081和8082 8081站点和8082站点如下[随便写了个没有样式的很丑的页面],我特意加了111和222区分     2.设置nginx配置文件,实现简单的负载 ...

  8. Nginx负载均衡配置简单配置方法

    http://www.jb51.net/article/121235.htm Nginx作为负载均衡服务器,用户请求先到达nginx,再由nginx根据负载配置将请求转发至不同的Web服务器.下面通过 ...

  9. nginx跨域的简单应用

    nginx跨域的简单应用 要求:1.浏览器访问print.qianbaihe.wang/zt 直接调转至 www.flybirdprint.com/zt,浏览器显示域名不变. server { lis ...

随机推荐

  1. java.sql.SQLException: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '=' 异常处理,及MySQL数据库编码设置

    java.sql.SQLException: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,C ...

  2. 分布式系统 SOA与中间件

    在分布式系统中,有一个基础的理论 CAP,Consistency一致性 Availability可用性 Partition Tolerance分区容忍性,任何一个系统都不可能同时满足这三个条件(高富帅 ...

  3. message from server: "Host '192.168.6.68' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts

    系统或者程序连接数据报错 null, message from server: "Host '192.168.6.68' is blocked because of many connect ...

  4. Ubuntu16.04安装MySQLdb

    buntu 系统下进行的操作 首先安装了pip工具 1 sudo apt-get install python-pip 然后使用 1 sudo pip install mysql-python   安 ...

  5. Base64转Blob

    最近碰见一个问题,a链接的href为base64,但在chrome下载时显示下载失败,经查询,base64过大会在某些浏览器上下载失败(如新版chrome),解决方法是将base64转为blob fu ...

  6. tomcat+svn+maven+jenkins实现自动构建

    首先说明一个各软件的版本: tomcat:apache-tomcat-8.5.16.tar.gz maven:apache-maven-3.5.0-bin.tar.gz svn:subversion- ...

  7. Hive的两种表

    1.内部表 内部表Load数据有两种方式:① Load data ***:②hdfs dfs -put ****.这是因为在Metastore文件,即mysql的hive数据库的“SDS”表中,保存着 ...

  8. 教你如何挑选深度学习GPU【转】

    本文转载自:https://blog.csdn.net/qq_38906523/article/details/78730158 即将进入 2018 年,随着硬件的更新换代,越来越多的机器学习从业者又 ...

  9. openwrt设置uboot环境变量在flash上的存储地址

    1.分析如下 ubootenv_add_app_config ubootenv_add_uci_config "/dev/mtd1" "0x40000" &qu ...

  10. nodeJs和JavaScript的异同

    JavaScript组成:ECMAScript(定义这门语言的基础,比如语法.数据类型.结构以及一些内置对象等).DOM(基于ECMASCRIPT,扩展出来的用于操作页面元素的方法).BOM(基于EC ...