nginx的简单优化和反向代理
来源:互联网 发布:淘宝偏远地区有哪些 编辑:程序博客网 时间:2024/06/03 19:49
Nginx的特点是:
1、工作在网络的7层之上,可以针对http应用做一些分流的策略,比如针对域名、目录结构;
2、Nginx对网络的依赖比较小;
3、Nginx安装和配置比较简单,测试起来比较方便;
4、也可以承担高的负载压力且稳定,一般能支撑超过1万次的并发;
5、Nginx可以通过端口检测到服务器内部的故障,比如根据服务器处理网页返回的状态码、超时等等,并且会把返回错误的请求重新提交到另一个节点,不过其中缺点就是不支持url来检测;
6、Nginx对请求的异步处理可以帮助节点服务器减轻负载;
7、Nginx能支持http和Email,这样就在适用范围上面小很多;
8、不支持Session的保持、对Big request header的支持不是很好,另外默认的只有Round-robin和IP-hash两种负载均衡算法。
nginx
三台实验用虚拟机
版本:redhat6.5
IP:172.25.10.1~172.25.10.3 分别是server1~3
server1:|CPU:2 | memory:1024M | seliunx:disabled
server2:|CPU:1 | memory:1024M | seliunx:disabled
server2:|CPU:1 | memory:1024M | seliunx:disabled
实验:
nginx-1.10.1.tar.gz
压缩包传给server1通过tar zxf nginx-1.10.1.tar.gz 进行解压
进入/root/Desktop/nginx-1.10.1目录
编辑auto/cc/gcc 文件将179行注释
178 # debug
179 #CFLAGS="$CFLAGS -g"
编辑src/core/nginx.h 将14行后参数改为"nginx"
#define NGINX_VER "nginx"
两步操作可以curl -I 命令中nginx的版本隐藏
命令./configure --prefix=/usr/local/lnmp/nginx --with-http_ssl_module --with-http_stub_status_module 生成Makefile 静态安装 注意空格
生成过程中缺什么安装什么
yum install -y pcre-devel
yum install -y openssl-devel
ll Makefile
在make之前没有/usr/local/lnmp/nginx/目录
切换到 nginx-1.10.1 : make 后生成/usr/local/lnmp/nginx/目录
make install 安装到系统里
ll -d /usr/local/lnmp/nginx/
进入/usr/local/lnmp/nginx/目录
which nginx 查看nginx的路径
创建软链接ln -s /usr/local/lnmp/nginx/sbin/nginx /usr/local/sbin/
查看nginx服务是否配置成功nginx -t
重新加载nginx服务nginx -s reload
物理机浏览器输入server1 IP 即可显示相关页面
nginx web服务器以搭建好
下面做的是nginx服务进程的,限制 ,查看
进入/usr/local/lnmp/nginx/conf目录
创建新用户useradd -u 900 -d /usr/local/lnmp/nginx nginx
编辑nginx.conf文件 将第二行注释删除,将user改成nginx
user nginx;
查看nginx服务是否配置成功nginx -t
重新加载nginx服务nginx -s reload
ps aux查看nginx进程个数
关闭server1
将虚拟机server1的CPU个数添加为两个
打开虚拟机管理器 点击 processor cpu添加为2个
重新连接
lscpu查看CPU个数
编辑nginx.conf文件将work_processes 后接参数改为2
user nginx;
worker_processes 2;
worker_cpu_affinity 01 10;
查看nginx服务是否配置成功nginx -t
重新加载nginx服务nginx -s reload 【如果出现 nginx: [error] open() "/usr/local/lnmp/nginx/logs/nginx.pid" failed (2: No such file or directory) 则说明nginx没开 直接打:nginx 就开启了】
然后 cd /usr/local/sbin
ll 查看nginx的软连接
rm -f nginx 删除 nginx连接
ln -s /usr/local/lnmp/nginx/sbin/ngin /usr/local/sbin 重新创建软连接
ulimit -a 查看当前用户进程限制
cd 切换到root/ vim /etc/security/limits. conf
在最后加上 nginx - nofile 200 该用户文件限制为200
nginx - nproc 200 该用户进程限制为200
su - nginx 切换到该用户
ulimint -a 来查看
cd /usr/local/lnmp/nginx/conf/
vim nginx.conf 打开文件修改参数
events {
use epoll;
worker_connections 65535; 这里为root的总进程数
}
ulimint -a 来查看
vim nginx.conf 打开文件添加下列参数
location /status {
stub_status on;
access_log off;
}
查看nginx服务是否配置成功nginx -t
重新加载nginx服务nginx -s reload
切换到物理机浏览器 server1 ip/status 查看进程数
在物理机打 ab -n 5000 -c 500 http://172.25.9.1/index.html
-n 为5000进程 -c 为500个客户端同时发送 【不成功,要在server1 启动nginx】
在看 切换到物理机浏览器 server1 ip 查看进程数
下面做的是 nginx 可以用加密协议 https 访问
vim nginx.conf 打开文件修改下列参数
server {
listen 443 ssl;
server_name server1.example.com;
ssl_certificate cert.pem;
ssl_certificate_key cert.pem;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
}
去掉注释,并修改为这样 server_name server1.example.com; ssl_certificate_key cert.pem;
cd /etc/pki/tls/certs/
make cert.pem 生成这个文件 参数为下
1 CN 2 Shaanxi 3 xi'an 4 westos 5 linux 6 server1.example.com 7 root@server1.example.com
然后 mv cert.pem /usr/local/lnmp/nginx/conf
查看nginx服务是否配置成功nginx -t
重新加载nginx服务nginx -s reload
打开浏览器输入 https://server1 ip
选择 i unserstand the risks
下面是nginx的反向代理与负载均衡
vim /usr/local/lnmp/nginx/conf/nginx.conf 添加以下参数
server {
listen 80;
server_name www.westos.org;
location /{
root /web1;
index index.html;
}
}
server {
listen 80;
server_name www.linux.org;
location /{
root /web2;
index index.html;
}
}
mkdir /web1 /web2 建立二根个目录
分别切换到 cd /web1
vim index.html 随便写东西
cd /web2
vim index.html 随便写东西和第一个不一样就行
查看nginx服务是否配置成功nginx -t
重新加载nginx服务nginx -s reload
那台机子访问就:
vim /etc/hosts 写上ip解析
如:172.25.9.1 server1.example.com www.westos.org www.linux.org
打开浏览器就可以访问了 输入网址如:www.westos.org www.linux.org
以上为反向代理,下面为负载均衡
vim /usr/local/lnmp/nginx/conf/nginx.conf 添加以下
注释 #root /web1;
#index index.html;
添加 proxy_pass http://westos; 地址转换
http {
upstream westos {
server 172.25.9.2:80 ;
server 172.25.9.3:80 ;
}
}
此为负载均衡模块
查看nginx服务是否配置成功nginx -t
重新加载nginx服务nginx -s reload
打开 server2 server3 的httpd服务
/etc/init.d/httpd start
然后 for i in $(seq 10);do curl www.westos.org; done 进行实验
阿帕奇和nginx的区别:
1.nginx比阿帕奇快,(进程和线程的区别?)nginx:异步非阻塞机制 阿帕奇:阻塞机制
- nginx的简单优化和反向代理
- nginx简单的反向代理
- nginx 简单负载和反向代理
- 正向代理和nginx的反向代理
- 配置简单的nginx反向代理
- Nginx作为反向代理的简单应用
- nginx配置简单的反向代理
- 最简单的nginx反向代理tomcat
- Nginx反向代理的简单配置应用
- nginx+apache实现简单的反向代理
- nginx反向代理与nat123转发代理的区别和二者安装使用方法和优化配置
- 《实战nginx》第6章-Nginx负载均衡和反向代理的配置与优化
- nginx优化之反向代理与集群简单创建
- Nginx的upstream模块和反向代理
- 反向代理 和nginx 的使用
- nginx的安装和反向代理配置
- Nginx的反向代理 和 负载均衡
- Nginx的负载均衡和反向代理
- 大概是史上最炫酷便捷的扫描仪……
- 扫描线填充算法,单链表实现
- Mac tar.gz方式安装、配置MySQL 5.7.18
- 设计模式C++实现(1)——工厂模式
- 去外包公司的伙伴们小心了!——亲身经历,数数外包公司的坑
- nginx的简单优化和反向代理
- 进程间通信----->共享内存
- 1等于0.循环9吗?
- 分享三个USB抓包软件---Bus Hound,USBlyzer 和-USBTrace
- Leetcode 303 Range Sum Query
- linux查看目录的四种方法(ls只显示目录)
- Apache2
- Python笔记(1)----条件、循环语句
- execl保护工作簿解锁