Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在tomcat web应用程序中重新加载Nginx_Java_Nginx - Fatal编程技术网

Java 如何在tomcat web应用程序中重新加载Nginx

Java 如何在tomcat web应用程序中重新加载Nginx,java,nginx,Java,Nginx,我想在向web应用程序发送http请求时重新加载nginx。因此,在web应用程序的servlet中,我执行nginx reload命令。Java代码是: “Runtime.getRuntime().exec(“/etc/init.d/nginx reload”).waitFor();”。我试过了,但没有用。但是如果我以root用户身份登录服务器,然后执行上面的Java代码,它就可以工作了! 所以我猜原因是tomcat用户没有重新加载nginx的权限。tomcat进程正在以用户tomcat6的身

我想在向web应用程序发送http请求时重新加载nginx。因此,在web应用程序的servlet中,我执行nginx reload命令。Java代码是: “Runtime.getRuntime().exec(“/etc/init.d/nginx reload”).waitFor();”。我试过了,但没有用。但是如果我以root用户身份登录服务器,然后执行上面的Java代码,它就可以工作了! 所以我猜原因是tomcat用户没有重新加载nginx的权限。tomcat进程正在以用户tomcat6的身份运行。nginx主进程作为用户根运行,nginx工作进程作为用户www数据运行。我怎样才能解决这个问题?谢谢

我的环境: 操作系统:Ubuntu 10.04 tomcat:6.0.24 nginx:1.2.2。
Tomcat和nginx都是通过Ubuntu的“apt-get”方式安装的。

您可以使用
sudo
命令。您还可以向tomcat用户授予相应的权限。您还可以执行
su
将用户更改为具有相应权限的用户,然后执行nginx重新加载。实际上有很多不同的方法来解决这个问题。

我认为最好编写和测试一些脚本,可以从tomcat用户会话重新加载nginx,并使用它来重新加载,而不是使用
/etc/init.d/nginx reload
命令。

非常感谢。您能告诉我如何向tomcat用户授予相应的权限,以及应该向tomcat用户授予哪些权限吗?我对Linux不是很熟悉,只是有一点:)首先,您可以执行
ls-la | grep nginx
命令来确定哪个用户和组拥有nginx。在我的例子中,所有守护进程都有根组和根用户作为其所有者。因此,我可以使用命令
sudo groupadd nginx\u admin
添加负责nginx管理的新组。然后我可以使用命令
sudo chown root:nginx\u admin/etc/init.d/nginx
将nginx的所有者组设置为nginx\u admin组。请注意,我使用root作为nginx的所有者用户,因为我不想更改它。然后,您最终可以使用
sudousermod-a-gnginx\u admin tomcat将tomcat用户添加到nginx\u管理组中。