nginx的编译,和简单的配置问题

反向代理常见的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.2/ --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 1;(工作的进程数,一般工作中服务器有几核就写几,最多不超过2倍)
events {(时间函数)
worker_connectiongs 1024;(进程里边的线程数,默认1024,一般我们写成他的20倍,极限65535)
}
http{ 
include mime.types;
default_type application/octet-stream;(默认的类型)
sendfile on;(开启Nginx的高效传输功能)
keppalive_timeout 65;(连接保持时间时间秒为单位,好处会减低三次握手的额外开销,tigoa)
server{ (一个server就带表一个网站)
listen 80;(监听的端口)
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 80 default_server; 
server_name _;
location / {
return 404;
}
}
```

 


状态信息也开启

```
server{
listen 80;
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 $1;
  rewrite ^(.*) http://www.yunjisuan.com/$domke break;
  }
  

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

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

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

autoindex on;

 

转载于:https://www.cnblogs.com/cash-su/p/9895873.html

你可能感兴趣的:(nginx的编译,和简单的配置问题)