转自本人旧博客
title: nginx
date: 2018-03-16 16:09:58
tags: nginx
categories: 操作系统
nginx
- 正向代理
- 反向代理:负载均衡(默认为轮询)
什么是nginx
nginx是服务器软件
功能:
- 可以与服务器硬件结构,将程序放在nginx服务器上,将程序发布出去
-
作用:
- 高性能的HTTP:发布网站
- 反向代理服务器:实现负载均衡
- 代理邮件服务器:收发邮件
-
优点:
- 高并发、部署简单、内存消耗少、成本低
-
缺点:
- rewrite功能不够强大
- 模块没有Apache多
-
补充知识:
- 负载均衡:当同时又很多用户访问服务器时,为减少服务器压力,需要将用户分别引入各服务器,分担服务器的压力。
不同服务器的优缺点:
- IIS:IIS服务器只能在Windows上运行,Windows服务器性能不如Linux一类服务器
- Tomcat:面向Java,是一种重量级服务器
- Nginx:轻量级,但能支持处理百万级的TCP连接,10万以上的并发连接,并且是一个很好的跨平台服务器
- Apache:稳定、开源、跨平台,但不支持高并发
在Linux安装nginx服务器
-
进入终端
-
安装nginx
-
下载nginx安装包:
wget http://nginx.org/download/nginx-1.6.2.tar.gz
-
解压:
tar zxvf nginx-1.6.2 cd nginx-1.6.2
-
编译:
make make install
-
-
运行:
/usr/local/bin/nginx
- -s reload 重新载入配置文件
- -s reopen 重启nginx
- -s stop 停止nginx
-
路径:
- 配置所在路径:usr/local/etc/nginx
- 运行程序所在路径:/usr/local/bin
-
配置:
user yangq4 staff;
# 启动进程,通常设置成和CPU的数量相等
worker_processes 1;
# 全局错误日志
# error_log logs/error.log;
# error_log logs/error.log notice;
# error_log logs/error.log info;
# 记录当前启动的NGINX的进程ID
# pid logs/nginx.pid;
# 工作模式及连接数上限
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;
rewrite_log on;
sendfile on;
keepalive_timeout 120;
tcp_nopush on;
#gzip on;
# 设定实际的服务器列表
upstream zp_server1{
server 127.0.0.1:8090;
}
# HTTP服务器
server {
listen 80;
server_name www.yangq4_test.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
# root /Users/boleng/Desktop/W3E/src/frontend;
root /Users/yangqing/Desktop/test/api.py;
index index.html index.html;
}
charset utf-8;
# 代理配置参数
proxy_connect_timeout 180;
proxy_send_timeout 180;
proxy_read_timeout 180;
proxy_set_header Host $host;
proxy_set_header X-Forwarder-For $remote_addr;
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}