nginx安装
准备工作 官网下载Linux 版本的nginx 解压到/usr/local/
/usr/local/nginx-1.14.0
一 安装依赖的插件 yum -y install pcre-devel openssl-devel
/usr/local/nginx-1.14.0 目录下
./configure
make && make install // 默认安装的路径 /usr/local/sbin/nginx
安装完成 启动 /usr/local/nginx/sbin 路径下 ./nginx
查看启动 ps aux|grep nginx
./nginx -s quit
./nginx -s reload
./nginx -s restart
创建软连接 类似于快捷方式 将/usr/local/nginx/sbin/nginx 放到 /usr/local/sbin/nginx
/usr/local/sbin/这里放用户自行安装的可执行程序
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/nginx
完成后再任何位置都可以执行
nginx
nginx -s quit
nginx -s reload
nginx -s restart
添加到系统服务 添加之后 就可以通过 service nginx start 这样的操作来启动了
vi /etc/int.d/nginx
DAEMON=/usr/local/nginx/sbin/nginx
#chkconfig: 35 85 15
case $1 in
start)
echo "starting nginx ...."
$DAEMON && echo "success"
;;
stop)
echo "stop nginx ..."
$DAEMON -s quit && echo "success"
;;
reload)
echo "reload nginx ..."
$DAEMON -s reload && echo "success"
;;
restart )
echo "restart nginx ..."
$DAEMON -s quit
$DAEMON&& echo "success"
;;
*)
echo "Usage:service nginx stop|restart|start|reload"
exit 2
;;
esac
保存
chmod +x nginx
使用chkconfig 添加nginx服务自动启动
chkconfig --add nginx
ngnix.conf配置文件
目录级别
main
events {}
http {
server{
location{...}
}
}
http块 server块 location块
默认的配置及说明
#配置ngnix工作进程的数量一般为cpu的总核数或总核数的2倍
worker_processes 1;
events {
#允许单个进程并发连接数的最大请求数
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
server {
listen 80;#监听的端口
server_name localhost; #监听的域名
location / {
root html;#主机站点根目录地址
index index.html index.htm;#指定默认的索引文件
}
location = /50x.html {
root html;
}
}
}
Ngnix进程设计思想:一个主进程和多个工作进程,主进程主要接受客户端的请求,转交给工作进程处理,很好的利用了cpu多核的处理能力
当执行reload命令时,主进程会等待工作进程完成之后再结束工作进程。然后基于新的配置重新创建工作进程,这样避免了工作进程被打断的
情况,同时主进程一直没有停止过也不会漏掉客户的请求。
控制访问的权限
allow允许 deny禁止
http{
allow 192.168.21;
deny all;
server{....}
}
http{
server{
location=/js{
allow 192.168.21;
deny all;
}
}
}
越是内层的块权限的级别越高
同一个IP同一个块种先出现的覆盖后出现的
日志
错误日志默认的存放位置 logs/里面的error文件
虚拟主机
虚拟主机技术就是在一台服务器上分隔多个磁盘空间,每个磁盘都是一个虚拟主机。在外界看来虚拟主机就是一台独立的服务器
可以实多个域名web部署在同一台物理主机上
配置的方式
基于端口号 最简单的 一个server就是一个虚拟机
http {
#监听8081的虚拟主机
server {
listen 8081;
server_name 192.168.122;
root html8081;
index index.html index.htm;
}
#监听8082的虚拟主机
server {
listen 8082;
server_name 192.168.122;
root html8081;
index index.html index.htm;
}
server {
listen 8090;
server_name www.ltt.com; #该域名需要绑定win hosts文件 访问该域名直接代理到 http://192.168.0.30:8090
location / {
proxy_pass http://192.168.0.30:8090;
}
}
server {
listen 8080;
server_name www.bowei.com;
location / {
proxy_pass http://192.168.0.30:8080;
}
}
}
基于IP配置虚拟主机
http {
#监听192.168.122的虚拟主机
server {
listen 80;
server_name 192.168.122;
root html8081;
index index.html index.htm;
}
#监听192.168.123的虚拟主机
server {
listen 80;
server_name 192.168.123;
root html8081;
index index.html index.htm;
}
}
基于域名配置虚拟主机
http {
#监听www.bowei.a的虚拟主机
server {
listen 80;
server_name www.bowei.a;
root html8081;
index index.html index.htm;
}
#监听www.bowei.b的虚拟主机
server {
listen 80;
server_name www.bowei.b;
root html8081;
index index.html index.htm;
}
}
反向代理
配置 proxy_pass 在location种配置
#将www.bowei.com反向代理到192.168.122
http {
server {
listen 80;#监听的端口
server_name www.bowei.com; #监听的域名
location / {
proxy_pass 192.168.122;
}
}
}
负载均衡配置 upstream
一般轮询的负载均衡
http {
server {
listen 80;#监听的端口
server_name www.bowei.com; #监听的域名
location / {
proxy_pass web_server;
}
}
upstream web_server{
server 192.168.122;
server 192.168.123;
}
}
加权重的轮询
http {
server {
listen 80;#监听的端口
server_name www.bowei.com; #监听的域名
location / {
proxy_pass web_server;
}
}
upstream web_server{
server 192.168.122 weight=1;
server 192.168.123 weight=2;
}
}
ip_hash的负载均衡
http {
server {
listen 80;#监听的端口
server_name www.bowei.com; #监听的域名
location / {
proxy_pass web_server;
}
}
upstream web_server{
ip_hash;
server 192.168.122;
server 192.168.123;
server 192.168.124;
}
}