Nginx
一、Nginx简介
Nginx是一款基于异步框架的轻量级高性能的web服务器,它可以用来实现反向代理、负载均衡、动静分离
特点:
1、支持高并发,简单稳定
2、内存小,能够处理静态文件
反向代理: 客户端无法感知代理,因为客户端访问网络不需要配置,只要把请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据,然后再返回到客户端
此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器 IP 地址
负载均衡: 增加服务器的数量,构建集群,将请求分发到各个服务器上,将原来请求集中到单个服务器的情况改为请求分发到多个服务器,也就是我们说的负载均衡
动静分离: 为了加快网站的解析速度,可以把动态页面和静态页面交给不同的服务器来解析,加快解析的速度,降低由单个服务器的压力
二、Nginx命令
安装nginx依赖包
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel pcre-devel
安装nginx
wget http://nginx.org/download/nginx-1.6.2.tar.gz #下载
tar zxvf nginx-1.6.2.tar.gz
cd nginx-1.6.2
./configure
make && make install # 进行编译
ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx # 创建软连接
启动nginx
nginx # 启动nginx
nginx -s stop # 停止nginx
nginx -s reload # 重启nginx
nginx -t # 检测是否正确
三、nginx配置
修改 nginx.conf全局配置文件
nginx反向代理配置:
worker_processes 1; # 开启进程的形式
events {
worker_connections 1024; # 连接的数量
}
http { #
include mime.types; # 文件类型映射表
default_type application/octet-stream; # 默认文件类型
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log logs/access.log main; # 日志
sendfile on; # 开启高效文件传输模式
keepalive_timeout 65; # 长连接超时时间,单位是秒
gzip on; # 开启gzip压缩输出
server {
listen 80; # 端口
server_name coin-god.com; # 主机名
location / {
proxy_pass http://localhost:8888; # 反向代理路径
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}
nginx配置https证书配置如下:
worker_processes 1;
events {
worker_connections 1024;
}
upstream proxy {
server localhost:8000;
}
server {
listen 80;
server_name hsyj.shikehuyu.com;
location / {
proxy_pass_header Server;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_pass http://proxy;
}
}
server {
listen 443;
server_name hsyj.shikehuyu.com;
ssl_certificate /www/server/panel/vhost/nginx/cret/4967551__shikehuyu.com.pem;
ssl_certificate_key /www/server/panel/vhost/nginx/cret/4967551__shikehuyu.com.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://localhost:8000;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}