我是靠谱客的博主 想人陪发带,最近开发中收集的这篇文章主要介绍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

最后

以上就是想人陪发带为你收集整理的java实现nginx路由转发,将nginx配置成url_hash转发方式的全部内容,希望文章能够帮你解决java实现nginx路由转发,将nginx配置成url_hash转发方式所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部