nginx简单介绍:
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等
第一步:在官网下载压缩包
解压它
tar zxf nginx-1.14.0.tar.gz
ls ##查看是否解压
更改一些设置
cd nginx-1.14.0/src/core/
ls
vim nginx.h
删除掉14行最后的NGINX_VERSION ,这样可以不对外显示你的版本号
cd nginx-1.14.0/auto/cc/
ls
vim gcc
将172行 CFLAGS="$CFLAGS -g"注释掉
源码编译和安装
./configure --help ###查看编译时的帮助命令
yum install gcc -y ###解决编译过程中需要安装的软件
yum install -y pcre-devel
yum install -y openssl-devel
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-threads --with-file-aio
make
make install
cd /usr/local/nginx/
ls
du -sh ###查看刚装文件的大小
cd sbin/
pwd
ln -s /usr/local/nginx/sbin/nginx /sbin/ ##做软链接
nginx -t ###检测语法
nginx ##打开nginx
nginx -s stop ###关闭nginx
cd /usr/local/nginx/html/ ###nginx的默认发布目录
ls
vim test.html
测试:
在网站访问 www.westos.org
www.westos.org/test.html
cd /usr/local/nginx/conf/ ###切换到这个目录
lscpu ###可以查看主机的cpu数
vim /etc/security/limits.conf
写入:
nginx - nofile 65536
ngnix -s reload ###重新加载nginx
nginx -t ##检查语法
nginx -s stop ##关闭nginx
useradd -M -d /usr/local/nginx/ nginx ###建立一个nginx用户
id nginx ###查看用户nginx
vim nginx.conf ##编辑nginx主配置文件
2 user nginx nginx; ##nginx用户
3 worker_processes 1; ##工作的进程数
#####注意:当cpu数为1时,下面这句就可以不用加,不需要绑定
4 worker_cpu_affinity ; ##将工作进程与cpu绑定
5
6 #error_log logs/error.log;
7 #error_log logs/error.log notice;
8 #error_log logs/error.log info;
9
10 #pid logs/nginx.pid;
11
12
13 events {
14 worker_connections 65535; ##工作的连接数
15 }
18 http {
19 upstream westos{
20 #ip_hash; ####添加这条语句后,一但检测到ip,后端服务器将不再改变
21 server 172.25.3.2:80 weight=2; ##weight为权重
22 server 172.25.3.3:80;
23 }
24 include mime.types;
25 default_type application/octet-stream;
server {
124 listen 80;
125 server_name www.westos.org;
126 location / {
127 proxy_pass http://westos;
128 }
129 }
正常的轮询
加上权重后的效果
添加ip_hash后的效果
给nginx添加功能模块(sticky)
添加sticky算法后,在用浏览器访问时,其通常会缓存信息,结果不会轮询
它是针对浏览器的,更换浏览器后它会改变
nginx -s stop ###关闭nginx
tar zxf nginx-1.10.1.tar.gz
tar zxf nginx-sticky-module-ng.tar.gz
ls
cd nginx-1.10.1
ls
######源码安装三步曲
###因为之前安装的版本不支持sticky算法,所以要重新源码安装一个nginx版本,为了避免覆盖之前的nginx
所以要重新再定义一个目录安装
./configure --prefix=/opt/nginx --with-http_ssl_module --with-http_stub_status_module --with-threads --with-file-aio --add-module=/root/nginx-sticky-module-ng
make
make install
修改它的配置文件
cd /opt/nginx/conf/
###这里为了节省时间,我直接将前面的编辑过的文件拷贝一份到此目录只做部分的修改即可
cp /usr/local/nginx/conf/nginx.conf .
vim nginx.conf
18 http {
19 upstream westos{
20 #ip_hash;
21 sticky; ###添加sticky算法
22 server 172.25.3.2:80 ;
23 server 172.25.3.3:80;
24 }
/opt/nginx/sbin/nginx -t ##通过绝对路径检测语法
/opt/nginx/sbin/nginx ###打开nginx
可见浏览器中将后端服务器中的信息缓存,不会瞬间丢失信息