# 用了nginx for win很久,安装也是超级简单。
# 还是用一下linux版的吧。环境是centos 6.5 x64

# 安装开始:
# 先安装依赖
yum install gcc-c++
yum -y install pcre*
yum -y install openssl*# 下载,可以wget 目前最新1.15.3
cd /opt
wget http://nginx.org/download/nginx-1.12.2.tar.gztar zxf nginx-1.12.2.tar.gz
cd nginx-1.12.2# 指定安装目录 、编译安装
./configure --prefix=/opt/nginx
make && make install# 检查测试
/opt/nginx/sbin/nginx -t

# 启动  停止  退出

/opt/nginx/sbin/nginx
/opt/nginx/sbin/nginx -s stop
/opt/nginx/sbin/nginx -s quit# 如果是centos7以上,已经注册为系统服务的:systemctl stop nginxsystemctl start nginx

#---------------- 官方文档: -s 参数------------
# stop — fast shutdown
# quit — graceful shutdown
# reload — reloading the configuration file
# reopen — reopening the log files
#----------------------------------------------

# 查看进程,端口  检查运行情况

ps aux |grep nginx # master worker 至少各一个
netstat -tulnp | grep :80# 如果想要命令方便执行,可将路径加入PATH变量中
vim /etc/profile # 加入 2 行export NGINX_HOME=/opt/nginx
export PATH=$NGINX_HOME/sbin:$PATHsource /etc/profile # 生效

#-------------------- 配置文件 nginx.conf ---------------------------

以下版本有一些简单的优化, 注意那些写有注释的行。

user nginx;
worker_processes auto; # 进程数,一般设置为CPU核数,或者 auto
pid /var/run/nginx.pid; # 记录进程PID文件,可以不启用# Load dynamic modules. See /usr/share/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;events {
use epoll; # 使用高效的 epoll 方式
worker_connections 65535; # 单个worker进程同时打开的最大连接数 跟系统的 ulimit -n 有关
}http {
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 /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
server_tokens off; # 隐藏web出错时的版本号

虚拟主机

超简单配置 基于不同域名的虚拟主机,其实就是:根据访问的不同网址对应不同的nginx中的不同文件夹。

先备份一个conf/nginx.conf文件,然后修改 http{}中的server, 删除原有的,示例如下:

## 注意:下面仅仅是http{}部分,不是nginx.conf的全部
http {server_tokens  on; include       mime.types;default_type  application/octet-stream;sendfile        on;keepalive_timeout  65;server { # 创建服务listen       80;server_name  wwww.node-6.com;  # 域名## location 匹配URL路径地址,/ 表示匹配所有路径  =开头表示精确匹配  ~区分大小写  ~*不区分大小写(默认不区分)location / {  root   data/www;  # 根目录对应真实文件夹index  index.html index.htm index.jsp;}}server {listen       80;server_name  bbs.node-6.com;location / {root   data/bbs;index  index.html index.htm index.jsp;}}}

对应地,需要在nginx下建立目录 data/www 和 data/bbs 以及各自目录下的文件。

执行 nginx -s reload 重新载入配置文件。 配置好DNS解析或hosts文件,浏览器测试访问。

超简单配置 基于不同端口号的虚拟主机,其实就是:根据访问网址的不同端口 对应不同的nginx中的不同文件夹。

和上面的配置差不多,只不过域名相同,listen不同:

    server { # 服务listen       80;server_name  wwww.node-6.com;  # 域名location / { root   data/www;  # 根目录对应真实文件夹index  index.html index.htm index.jsp;}}    server {listen       81;server_name  wwww.node-6.com;location / {root   data/bbs;index  index.html index.htm index.jsp;}}server {listen       82;server_name  wwww.node-6.com;location / {root   data/img;index  index.html index.htm index.jsp;}}

同样,nginx -s reload 即可生效。

配置 nginx 反向代理

和上面的虚拟主机配置差不多,既可以不同端口,也可以不同域名,关键词 proxy_pass  示例如下:

## 不同端口的反向代理  server{}部分server { # 服务listen       80;server_name  wwww.node-6.com;  # 域名location / { proxy_pass  http://127.0.0.1:8080;  # 反向代理本地 tomcatindex  index.html index.htm index.jsp;}}    server {listen       81;server_name  www.node-6.com;  # 域名location / {proxy_pass  http://127.0.0.1:8081;  # 反向代理index  index.html index.htm index.jsp;}}

## 不同域名的反向代理  server{}部分server { # 服务listen       80;server_name  wwww.node-6.com;  # 域名location / { proxy_pass  http://127.0.0.1:8080;  # 反向代理本地 tomcatindex  index.html index.htm index.jsp;}}    server {listen       80;server_name  bbs.node-6.com;  # 域名location / {proxy_pass  http://127.0.0.1:8081;  # 本地另一个 tomcatindex  index.html index.htm index.jsp;}}

配置完成后,同样,nginx -s reload 即可生效。

不同Location 做反向代理,示例如下:

## 不同Location的反向代理  server{}部分
## 注意目标地址末尾要有/server { # 服务listen       80;server_name  www.node-6.com;  # 域名location /www {  # 末尾有无/不影响proxy_pass  http://127.0.0.1:8080/;  # 末尾一定要/index  index.html index.htm index.jsp;}location /bbs {proxy_pass  http://127.0.0.1:8081/; index  index.html index.htm index.jsp;}}

负载均衡:

使用 upstream 方式,配置也很简单:在server{} 上面定义一个 upstream backServer 然后在proxy_pass中指向backServer  示例如下:

## 以下部分全部应在 http{}内:
## 定义多个上游服务器(真实业务)服务器的IP和端口,默认采用轮询机制upstream backServer{server 127.0.0.1:8080;server 192.168.112.5:8080;}server {listen       80;server_name  www.node-6.com;  # 域名location / {proxy_pass  http://backServer/;  # 末尾一定要/index  index.html index.htm index.jsp;}}

负载均衡的方式:

轮询机制:轮流访问,非常均匀

权重机制:使用weight配置比例

ip hash: nginx获取IP地址hash运算固定分配到某服务器上,可以解决session共享问题

fair :第三方

url绑定:第三方

权重机制的设置和上面的简单设置差不多,只在目标后面加了weight。示例如下:

    upstream backServer{server 127.0.0.1:8080 weight=1;server 192.168.112.5:8080 weight=3;}

IP绑定方式,只是多了行 ip_hash;

upstream backServer{server 127.0.0.1:8080;server 192.168.112.5:8080;ip_hash;}

一般情况下,可能实际生产环境,配置轮询机制或者权重机制比较多见。

如果上游服务器有个突然挂了怎么办?

所以,要设置好nginx的故障转移,示例如下:

## http{}中的两段配置    upstream backServer{server 127.0.0.1:8080;server 127.0.0.1:8081;server 192.168.112.5:8080;}server {listen       80;server_name  www.node-6.com;  # 域名location / {proxy_pass  http://backServer/;  # 末尾一定要/## 故障转移:设置超时时间proxy_connect_timeout 1s;proxy_send_timeout 1s;proxy_read_timeout 1s;index  index.html index.htm index.jsp;}}

URL重写:

参考:http://www.cnblogs.com/czlun/articles/7010604.html

    https://www.linuxidc.com/Linux/2014-01/95493.htm

rewrite    <regex>    <replacement>    [flag];

关键字      正则        替代内容          flag标记

。关键字:其中关键字error_log不能改变

。正则:perl兼容正则表达式语句进行规则匹配

。替代内容:将正则匹配的内容替换成replacement

。flag标记:rewrite支持的flag标记

flag标记说明:

last  #本条规则匹配完成后,继续向下匹配新的location URI规则

break  #本条规则匹配完成即终止,不再匹配后面的任何规则

redirect  #返回302临时重定向,浏览器地址会显示跳转后的URL地址

permanent  #返回301永久重定向,浏览器地址栏会显示跳转后的URL地址

rewrite参数的标签段位置:

server, location, if

实际配置文件示例: nginx/default.conf

分类: Server
标签: nginx, epoll, 反向代理, 负载均衡, 故障转移, proxy_pass, location, tomcat, url重写

转载于:https://www.cnblogs.com/FHBIAO/p/10174600.html

centos 6.5 下 nginx 简单优化_虚拟主机_负载均衡相关推荐

  1. Nginx简单入门与反向代理和负载均衡

    什么是Nginx   Nginx 是一款高性能的 http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器.由俄罗斯的程序设计师伊戈尔•西索夫(Igor Sysoev)所开发,官方测 ...

  2. keepalive+nginx实现负载均衡高可用_高可用、负载均衡 集群部署方案:Keepalived + Nginx + Tomcat...

    前言:初期应用较小,一般以单机部署为主,即可满足业务的需求,随着业务的不断扩大,单机部署的模式无法承载这么大的业务量,需要进行服务集群化的部署,本文主要介绍服务器Tomcat多实例部署,搭载Keepa ...

  3. nginx学习笔记(8)虚拟主机名---转载

    通配符名字 正则表达式名字 其他类型的名字 优化 兼容性 虚拟主机名使用server_name指令定义,用于决定由某台虚拟主机来处理请求.具体请参考<nginx如何处理一个请求>.虚拟主机 ...

  4. nginx反向代理+缓存开启+url重写+负载均衡(带健康探测)的部署记录

    在日常运维工作中,运维人员会时常使用到nginx的反向代理,负载均衡以及缓存等功能来优化web服务性能. 废话不多说,下面对测试环境下的nginx反向代理+缓存开启+url重写+负载均衡(带健康探测) ...

  5. NGINX配置基于Node.js服务的负载均衡服务器

    NGINX配置基于Node.js服务的负载均衡服务器 本部署指南说明了如何使用NGINX开源和NGINX Plus在Node.js应用程序服务器池之间平衡HTTP和HTTPS通信.本指南中的详细说明适 ...

  6. Nginx 部署、反向代理配置、负载均衡

    Nginx 部署.反向代理配置.负载均衡 最近我们的angular项目部署,我们采用的的是Nginx,下面对Nginx做一个简单的介绍. 为什么选择Nginx 轻:相比于Apache,同样的web服务 ...

  7. 即时通讯新手入门:一文读懂什么是Nginx?它能否实现IM的负载均衡?

    本文引用了"蔷薇Nina"的"Nginx 相关介绍(Nginx是什么?能干嘛?)"一文部分内容,感谢作者的无私分享. 1.引言 Nginx(及其衍生产品)是目前 ...

  8. tomcat7+nginx+memcached 配置tomcat 集群以及负载均衡

    首先:配置tomcat集群 nginx+ tomcat7 1 安装jdk (可以选择6或者7都可以) 此处不用多说. 2 下载nginx-1.2.5 (下载附件) 3 下载 memcached(下载附 ...

  9. Nginx反向代理、动静分离、负载均衡及rewrite隐藏路径详解(Nginx Apache MySQL Redis)–第二部分...

    Nginx反向代理.动静分离.负载均衡及rewrite隐藏路径详解 (Nginx Apache MySQL Redis) 楓城浪子原创,转载请标明出处! 更多技术博文请见个人博客:https://fe ...

最新文章

  1. android 子module混淆_Android 传统(经典)蓝牙框架
  2. SpringMVC中@RequestHeader
  3. 邮件防伪SPF,反垃圾邮件
  4. python编程游戏手机版_利用Python开发手机同款游戏:开心消消乐
  5. 【项目管理】CMMI内容整理
  6. 02_创建Git仓库,克隆仓库,git add,git commit,git push,git pull,同行冲突,不同行冲突的结局方案,git mergetool的使用
  7. 《数据库SQL实战》获取所有非manager的员工emp_no
  8. Vue权限控制——动态注册路由
  9. 电子科大计算机调试,电子科大计算机学院 汇编语言程序设计 实验报告 99分精品版.doc...
  10. loj#115. 无源汇有上下界可行流
  11. 【332】Machine Learning
  12. Python+Opencv图像处理新手入门教程(二):颜色空间转换,图像大小调整,灰度直方图
  13. vue怎么改logo_vue项目添加网页logo
  14. iOS功能测试工具 Frank
  15. 影子卫士中文注册版+系统保护的尚方宝剑、、
  16. 关于计算机系统的夺命12问,你能坚持到第几问?
  17. 对不起 我追不上你了。
  18. APP渠道推广手册(新手必备)
  19. VUE学习(一)、创建一个Vue应用。
  20. java避免出现科学计数法表示_Java中的浮点数-科学计数法-加减乘除

热门文章

  1. [Bzoj4289]PA2012 Tax(Dijkstra+技巧建图)
  2. F5金飞:“双十一”安全事项三部曲
  3. 机房收费系统重构(五)—登陆窗口完整版
  4. Mongodb~Linux环境下的部署~服务的部署与自动化
  5. 批处理文件检测windows系统是32位还是64位
  6. 经典vim插件功能说明、安装方法和使用方法介绍(已更新)
  7. NYOJ-99 单词拼接(欧拉+回溯)
  8. 2019 surf project for a milestone
  9. 还记得范进中举的故事吗
  10. 以经济周期的角度来看世界