您的位置:首页 > 运维架构 > Nginx

Nginx部署指南

2018-02-25 21:14 92 查看

安装

从Nginx官网下载页面(http://nginx.org/en/download.html)下载Nginx最新版本(目前是1.5.13版本)安装包;

解压后复制到部署目录。

启动和停止Nginx

Nginx目前只支持命令行操作,操作前先进入Dos命令环境,并进入Nginx部署目录。

1. 启动Nginx:start nginx

2. 停止Nginx:nginx -s stop

3. 修改配置后重启:nginx -s reload

这三个命令可分别做成bat文件,放在部署目录下,方便后续操作。

start nginx.bat文件内容:start nginx

stop nginx.bat文件内容:nginx -s stop

reload nginx.bat文件内容:nginx -s reload

反向代理配置

修改部署目录下conf子目录的nginx.conf文件(如nginx-1.5.13\conf\nginx.conf)内容,可调整相关配置。

反向代理配置示例:

location / {
# 设置主机头和客户端真实地址,以便服务器获取客户端真实IP
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 禁用缓存
proxy_buffering off;
# 设置反向代理的地址
proxy_pass http://192.168.1.1; }


代理地址根据实际情况修改。

负载均衡配置

nginx 的 upstream默认是以轮询的方式实现负载均衡,这种方式中,每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

另外一种方式是ip_hash:每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

负载均衡配置示例:

upstream backend {
#ip_hash;
server 192.168.1.251 weight=1 max_fails=2 fail_timeout=30s;
server 192.168.1.252 weight=1 max_fails=2 fail_timeout=30s;
server 192.168.1.247 weight=1 max_fails=2 fail_timeout=30s;
}

server {
listen       80;
server_name  trffweb;
location / {
#反向代理的地址
proxy_pass http://backend; }
location ^~ /admin/ {
# 这里注意:http://backend 与 http://backend/ 是不一样的效果。
# http://backend/  会把实际uri映射到根目录。
# 比如:http://192.168.1.247/admin 本来想访问admin的,此时会被映射到 根目录上http://192.168.1.247
proxy_pass http://backend/; }
}


upstream命名和服务器地址根据实际情况修改。

完整配置示例

nginx.conf:

worker_processes  1;
events {
worker_connections  1024;
}
http {
include       mime.types;
default_type  application/octet-stream;
sendfile        on;
keepalive_timeout  65;

#连接超时时间
proxy_connect_timeout 1;

#读超时时间
#proxy_read_timeout 5;

#响应超时时间
#proxy_send_timeout 5;

upstream backend {
#ip_hash;

afc9
server 192.168.1.251;
server 192.168.1.252;
server 192.168.1.247;
}

server {
listen       80;
server_name  2;
location / {
#设置主机头和客户端真实地址,以便服务器获取客户端真实IP
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

#禁用缓存
proxy_buffering off;

#反向代理的地址
proxy_pass http://backend; }
}
}


如果server 的 listen属性配置为非80默认端口,比如配置成81,需要配置proxy_set_header Host $host:81;

否则响应后的url,端81端口则消失
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: