linux-nginx配置

一.Nginx的介绍

        Nginx会按需同时运行多个进程:一个主进程(master)和几个工作进程(worker),配置了缓存时还会有缓存加载器进程(cache loader)和缓存管理器进程(cache manager)等。所有进程均是仅含有一个线程,并主要通过“共享内存”的机制实现进程间通信。主进程以 root 用户身份运行,而worker、cache loader 和 cache manager 均应以非特权用户身份运行。

nginx的安装时配置文件默认在nginx程序安装目录的conf目录下,启动主配置文件默认为为nginx.conf

安装的时候可以通过—conf-path来指定配置文件的放置路径,同时启动的时候可以通过 -c指令来另行指定启动的配置文件

在修改配置后可以通过使用./nginx -t来检查配置文件是否正确,使用./nginx -s reload 或是kill -s  SHGHUP <nginx master pid>让nginx在不停止服务的时候,重新读取配置文件并生效


二.Nginx的安装

客户机:172.25.254.51

nginx服务器:172.25.254.1





1.解压nginx文件


linux-nginx配置


2.修改配置文件

vim nginx.h

linux-nginx配置

linux-nginx配置


3.关闭gcc的debug调试模式

linux-nginx配置

linux-nginx配置


4.设置nginx的目录及各种模块比如openssl加密等

./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-threads --with-http_stub_status_module

常用编译参数

--prefix=PATH:指定 nginx 的安装目录
--conf-path=PATH:指定 nginx.conf 配置文件路径
--user=NAME:nginx 工作进程的用户
--with-pcre:开启 PCRE 正则表达式的支持
--with-http_ssl_module:启动 SSL 的支持
--with-http_stub_status_module:用于监控 Nginx 的状态
--with-http-realip_module:允许改变客户端请求头中客户端 IP 地址
--with-file-aio:启用 File AIO
--add-module=PATH:添加第三方外部模块





5.安装过程出现error,逐步安装所需要的devel开发包,记得加-devel,安装pcre-devel


linux-nginx配置


6.安装openssl-devel

linux-nginx配置

linux-nginx配置


没有保存,可以直接编译,如未安装gcc包,需要安装gcc包


7.make编译

linux-nginx配置


8.安装编译后的包

linux-nginx配置



9.创建nginx的本地家目录,uid:800

useradd -M -d /usr/local/nginx/ -s /sbin/nologin -u 800 nginx



10.进入到/var/local/nginx/sbin下,为方便调用做软连接

      -t 检测nginx语法是否错误

linux-nginx配置



11.用ps ax 查看进程,nginx正常开启

linux-nginx配置



三.Nginx多核绑定


1.nginx的配置

cd  /usr/local/nginx/conf/

vim /usr/local/nginx/conf/nginx.conf


在最上端修改添加

worker_processes  2;                     二核CPU,开启2个进程
worker_cpu_affinity 01 10;          01和10分别表示第一个CPU和第二个CPU(三个001,010,100)
worker_connections  65535;        连接数,65535为最大的进程数

linux-nginx配置


2.修改内核最大连接参数
vim /etc/security/limits.conf   
nginx           -       nofile          65535        最后一行添加,最大进程数



四.配置nginx证书加密


1.配置文件  vim /usr/local/nginx/conf/nginx.conf

ssl_certificate_key  cert.pem       加密证书

linux-nginx配置


2.生成证书,pem为私钥,在此目录下查看Makefile可知pem包含证书与加密


linux-nginx配置


3.移至/usr/local/nginx/conf目录下,重新加载nginx,使之生效

linux-nginx配置


4.客户端测试

linux-nginx配置

五.虚拟主机,定义多个不同域名站点的后端服务器


1.配置文件  vim /usr/local/nginx/conf/nginx.conf

linux-nginx配置


2.创建默认发布文件

linux-nginx配置


3.测试

linux-nginx配置

linux-nginx配置


六. 负载均衡  round-robin(轮询)


1.轮询是nginx中默认的负载均衡模式

linux-nginx配置


将server2与server3的httpd的端口改为如上upstream中需求

linux-nginx配置


轮询测试:

linux-nginx配置

linux-nginx配置


2.ip_hash算法

ip_hash模式会根据来源IP和后端配置来做hash分配,确保固定IP只访问一个后端。


linux-nginx配置


测试:

linux-nginx配置


3.weight为权重,若不设置则默认为1

linux-nginx配置

测试:

linux-nginx配置



4.主备,当前两主机崩溃时由127.0.0.1接手

http {
        upstream westos {
        server 172.25.29.2:80;
        server 172.25.29.3:80;
        server 127.0.0.1:8080 backup;     
}


测试主备(server2与server3关闭httpd服务,server1顶替)

linux-nginx配置


七.重新定向


注:配置完成后做好本地解析


1.配置文件  vim /usr/local/nginx/conf/nginx.conf

2.输入westos.org重定向到bbs.westos.org

linux-nginx配置


测试:

linux-nginx配置

linux-nginx配置



3.添加luntan.westos.org重定向到bbs.westos.org

linux-nginx配置


测试:

linux-nginx配置



4.将bbs.westos.org重定向到https://bbs.westos.org


linux-nginx配置


linux-nginx配置


测试:

linux-nginx配置


linux-nginx配置


八.访问其他发布目录


1.新建发布目录文件

mkdir  /static/images  -p

vim index.html   (images)


2.配置文件  vim /usr/local/nginx/conf/nginx.conf

location /images = bbs.westos.org/images

alias后面是绝对路径

linux-nginx配置


3.客户端测试

linux-nginx配置