nginx
特点:高并发高吞吐,占有内存少。
安装
nginx-1.12.0.tar.gz
tar zxf nginx-1.12.0.tar.gz
nginx的简单初始配置
创建nginx用户,本地家目录,pid
useradd -M -d /usr/local/lnmp/nginx -s /sbin/nologin -u 800 nginx ##创建nginx的本地家目录,uid:80
配置nginx
cd ~/nginx-1.12.0
./configure --prefix=/usr/local/lnmp/nginx --user=nginx --group=nginx --with-threads --with-file-aio --with-http_ssl_module --with-http_stub_status_module ##设置nginx的目录及各种模块比如openssl加密等,安装过程出现error。逐步安装所需要的devel开发包
记得加-devel
make && make install ##make成功后即可make install 安装
vim ~/nginx-1.12.0/src/core/nginx.h
14 #define NGINX_VER "nginx"
vim ~/nginx-1.12.0/auto/cc/gcc
172 #CFLAGS="$CFLAGS -g" ##关闭gcc的debug调试模式,节省空间
/usr/local/lnmp/nginx/sbin/目录下:
./nginx
在同上目录下:
ln -s /usr/local/lnmp/nginx/sbin/ /sbin/
##方便调用
测试:
curl -I localhost
Nginx多核绑定
vim /usr/local/lnmp/nginx/conf/nginx.conf
3 worker_processes 2; ##二核CPU,开启2个进程
5 worker_cpu_affinity 01 10; ##01和10分别表示第一个CPU和第二个CPU
15 worker_connections 65535; ##连接数,65535为最大的进程数
usermod -s /bin/bash nginx ##添加nginx用户的交互模式
vim /etc/security/limits.conf
nginx - nofile 65535 ##最后一行添加,最大进程数
测试:
su - nginx
ulimit -a
Nginx虚拟主机
vim /usr/local/lnmp/nginx/conf/nginx.conf
server {
listen 80; ##通过80端口
server_name www.westos.org; 输入虚拟机域名
location / { ##location /,在/目录下
root /web1; ##虚拟地址
index index.html; ##虚拟主页
}
测试:
curl -I www.westos.org
https,证书加密
配置nginx证书加密
vim /usr/local/lnmp/nginx/conf/nginx.conf
server {
listen 443 ssl; ##端口443,ssl加密端口
server_name www.westos.org;
ssl_certificate cert.pem; ##pem,私钥
ssl_certificate_key cert.pem; ##pem???
ssl_session_cache shared:SSL:1m; ##缓存
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root /web1;
index index.html index.htm;
}
}
生成证书与密钥
cd /etc/pki/tls/private
openssl genrsa 2048 > localhost.key ##生成密钥localhost.key
cd /etc/pki/tls/certs
make cert.pem ##生成证书,pem为私钥,在此目录下查看Makefile可知pem包含证书与加密
mv cert.pem /usr/local/lnmp/nginx/conf/ ##移至nginx/conf目录下
nginx -s reload ##重置nginx,使之生效
测试:
netstat -antlp ##查看443端口是否开启
访问https://www.westos.org
查看当前连接数与状态
vim /usr/local/lnmp/nginx/conf/nginx.conf
location /status {
stub_status on;
access_log off;
allow 127.0.0.1; ##准许登录ip,若deny存在,则需写至deny前
deny all; ##拒绝登录
测试:
www.westos.org/status
curl localhost/status ##测试拒绝和允许时会显示链接状态
重写
- ####permanent永久跳转
1)vim /usr/local/lnmp/nginx/conf/nginx.conf
server {
listen 80;
server_name www.westos.org;
rewrite ^(.*)$ https://www.westos.org permanent; ##permanent:永久
}
测试:
当输入www.westos.org时自动跳转至https://www.westos.org
curl -I www.westos.org
- redirect单次临时跳转
server {
listen 80;
server_name www.westos.org;
rewrite ^(.*)$ https://www.westos.org redirect; ##redirect:重定向
}
测试:
curl -I www.westos.org
负载均衡
- round-robin(轮询)
轮询是nginx中默认的负载均衡模式
vim /usr/local/lnmp/nginx/conf/nginx.conf
http {
upstream westos {
server 172.25.36.2:80 weight=2; ##轮询的主机,weight为权重,若不设置则默认为1
server 172.25.36.3:8080;
}
server {
listen 80;
server_name www.westos.org;
location / {
proxy_pass http://westos;
}
将server2与server3的httpd的端口改为如上upstream中需求
测试轮询:
- 主备
http {
upstream westos {
server 172.25.36.2:80 weight=2;
server 172.25.36.3:8080;
server 127.0.0.1:8000 backup; ##当前两主机崩溃时由127.0.0.1接手
}
测试主备(server2与server3关闭httpd服务,server1顶替):
- ip_hash
http {
upstream westos {
ip_hash;
server 172.25.36.2:80;
server 172.25.36.3:8080;
}
ip_hash模式会根据来源IP和后端配置来做hash分配,确保固定IP只访问一个后端。
测试ip_hash(确保固定IP只访问一个后端):
本文详细介绍Nginx的安装配置流程,包括初始配置、虚拟主机设置、HTTPS证书配置、连接数与状态监控、重写规则及负载均衡策略。特别强调了多核绑定、ip_hash模式等高级配置技巧。
3410

被折叠的 条评论
为什么被折叠?



