nginx 是什么?
nginx 安装 ---linux
安装
# yum install nginx
查看所在位置
# whereis nginx
默认位置存在于: /etc/nginx
启动
# systemctl start nginx.service
关闭
# systemctl stop nginx.service
查看状态
# systemctl status nginx.service
查看进程
# ps -ef | grep nginx
查看运行中的端口
# netstart -tunlp
查看运行服务所在目录 proc目录下是所有运行服务以对应PID命名的文件夹
cd /proc
找到对应的PID文件夹 cd命令进入
cwd 则是对应的服务所在文件夹
nginx 配置文件 nginx.conf
主要分为三块
全局块,主要定义nginx全局运行参数
# 从开始到events
# 主要配置,工作进程,默认为1,建议无需要不修改,需要修改则根据服务器的CPU核心数配置
worker_processes 1;
events 块
events{
# 单个工作进程可以允许同时建立外部连接的数量数字越大,能同时处理的连接越多
worker_connections 1024;
#设置指标,一:内存,二::操作系统级别的“进程最大可打开文件数”。
}
http块:又分为 全局块和server块(实际使用中修改最多的位置)
http{
所有内容
}
http块---全局块
server块以外的内容
例如:
include mime.types;
server_names_hash_bucket_size 512;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 50m;sendfile on;
tcp_nopush on;keepalive_timeout 60;
tcp_nodelay on;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;limit_conn_zone $binary_remote_addr zone=perip:10m;
limit_conn_zone $server_name zone=perserver:10m;server_tokens off;
access_log off;
http块---server块
server{
listen 80;
server_name loclhost;
location ~ / {
proxy_pass http://127.0.0.1:8082;
}
}又分为server 全局块和 location 块
全局快主要配置监听、服务名称、访问的文件夹、ssl等
location 主要用于转发、代理
http反向代理
server{
listen 80;
server_name www.123.com;
location ~ / {
proxy_pass http://www.baidu.com:8082;
}
}
http负载均衡
http块全局块中定义
upstream myserver{
server: 127.0.0.1:8081;
server:127.0.0.1:8082;
}
负载方式有三种:
1 轮询:默认,请求均衡的分布在对应的服务上
2 配置权重:权重数值越大访问次数越多
server中配置 :server: 127.0.0.1:8081 weight =1;
3:ip_hash:每个用户固定访问一个服务,解决session共享问题
直接在upstream中配置
upstream myserver{
ip_hash;
server: 127.0.0.1:8081;
server:127.0.0.1:8082;
}
4:fair : 根据服务器的响应时间来处理负载,响应越快分配的越多
直接在upstream中配置
upstream myserver{
server: 127.0.0.1:8081;
server:127.0.0.1:8082;
fair;
}
server{
listen 80;
server_name www.123.com;
location ~ / {
proxy_pass myserver;
}
}



