java实现nginx路由转发,将nginx配置成url_hash转发方式

所需软件名称及版本:

pcre-8.02.tar.gz

nginx-0.7.58.tar.gz

Nginx_upstream_hash-0.3.1.tar.gz

1、安装pcre

Java代码

tar -zxvf pcre-8.02.tar.gz

cd pcre-8.02/

./configure

make && make install

tar -zxvf pcre-8.02.tar.gz cd pcre-8.02/ ./configure make && make install

2、给nginx安装url_hash补丁

Java代码

tar -zxvf nginx-0.7.58.tar.gz

tar -zxvf Nginx_upstream_hash-0.3.1.tar.gz

cd nginx-0.7.58/

patch -p0 < /var/tmp/loojoy/nginx_upstream_hash-0.3.1/nginx.patch

tar -zxvf nginx-0.7.58.tar.gz tar -zxvf Nginx_upstream_hash-0.3.1.tar.gz cd nginx-0.7.58/ patch -p0 < /var/tmp/loojoy/nginx_upstream_hash-0.3.1/nginx.patch

3、安装nginx

Java代码

groupadd www

useradd www -g www

./configure --prefix=/usr/local/webserver/nginx \

--user=www \

--group=www \

--add-module=/var/tmp/loojoy/nginx_upstream_hash-0.3.1\

--with-http_ssl_module \

--with-http_stub_status_module

groupadd www useradd www -g www ./configure --prefix=/usr/local/webserver/nginx \ --user=www \ --group=www \ --add-module=/var/tmp/loojoy/nginx_upstream_hash-0.3.1 \ --with-http_ssl_module \ --with-http_stub_status_module

4、检查nginx生成的配置文件是否正确

Java代码

/usr/local/webserver/nginx/sbin/nginx -t

/usr/local/webserver/nginx/sbin/nginx -t

5、启动nginx

若nginx.conf检查通过,则启动nginx。

Java代码

/usr/local/webserver/nginx/sbin/nginx

/usr/local/webserver/nginx/sbin/nginx

6、查看端口80

netstat -ant

7、通过浏览器访问:

http://your_nginx_server_ip/

若可以正常访问,则nginx安装成功。

8、修改nginx的配置文件如下:

Java代码

-------------------[S]url_hash转发方式nginx.conf[S]--------------------

user www www;

worker_processes 10;

error_log logs/error.log;

#error_log logs/error.log notice;

#error_log logs/error.log info;

#pid logs/nginx.pid;

worker_rlimit_nofile 51200;

events

{

use epoll;

worker_connections 51200;

}

http

{

include mime.types;

default_type application/octet-stream;

keepalive_timeout 120;

tcp_nodelay on;

upstream your.website.name{

server your.tomcat.server.ip1:8080;

server your.tomcat.server.ip1:8080;

hash $request_uri;

}

server

{

listen 80;

server_name your.website.name;

location / {

proxy_pass http://your.website.name;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}

log_format www_gjw_com '$remote_addr - $remote_user [$time_local] $request '

'"$status" $body_bytes_sent "$http_referer" '

'"$http_user_agent" "$http_x_forwarded_for"';

#access_log /data1/logs/www.log www_gjw_com;

location /nginx_status {

stub_status on;

access_log off;

}

}

}

-------------------[E]url_hash转发方式nginx.conf[E]--------------------

-------------------[S]url_hash转发方式nginx.conf[S]-------------------- user www www; worker_processes 10; error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; worker_rlimit_nofile 51200; events { use epoll; worker_connections 51200; } http { include mime.types; default_type application/octet-stream; keepalive_timeout 120; tcp_nodelay on; upstream your.website.name{ server your.tomcat.server.ip1:8080 ; server your.tomcat.server.ip1:8080 ; hash $request_uri; } server { listen 80; server_name your.website.name; location / { proxy_pass http://your.website.name; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } log_format www_gjw_com '$remote_addr - $remote_user [$time_local] $request ' '"$status" $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; #access_log /data1/logs/www.log www_gjw_com; location /nginx_status { stub_status on; access_log off; } } } -------------------[E]url_hash转发方式nginx.conf[E]--------------------

9、添加nginx启动、关闭、重启脚本

Java代码

-------------------[S]url_hash转发方式nginx启动、关闭脚本[S]--------------------

#!/bin/sh

CWD=`pwd`

case$1in

start)

/usr/local/webserver/nginx/sbin/nginx

;;

stop)

kill -2`ps -ef|grep"/usr/local/webserver/nginx/sbin/nginx"|grep -v"grep"|awk'{print $2}'`

;;

restart)

cd "$CMD"

$0stop

$0start

;;

*)

echo $"Usage: $0 {start|stop|restart}"

exit 1

esac

exit 0

-------------------[E]url_hash转发方式nginx启动、关闭脚本[E]--------------------

-------------------[S]url_hash转发方式nginx启动、关闭脚本[S]-------------------- #!/bin/sh CWD=`pwd` case $1 in start) /usr/local/webserver/nginx/sbin/nginx ;; stop) kill -2 `ps -ef|grep "/usr/local/webserver/nginx/sbin/nginx"|grep -v "grep"|awk '{print $2}' ` ;; restart) cd "$CMD" $0 stop $0 start ;; *) echo $"Usage: $0 {start|stop|restart}" exit 1 esac exit 0 -------------------[E]url_hash转发方式nginx启动、关闭脚本[E]--------------------

更改该文件权限

Java代码

chmod u+x nginx.sh

启动 nginx ./nginx.sh start

重启 nginx ./nginx.sh restart

关闭 nginx ./nginx.sh stop

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值