发表于: 2017-01-22 23:54:17
1 1822
今天完成的事情:
1、 服务器安装Jetty,代码上传到服务器,用Jetty测试
2、 安装nginx
明天计划的事情:
解决nginx问题,配置Nginx,使用子域访问。
遇到的问题:
1、 服务器安装Jetty,下载版本:
下载后上传到服务器,解决到opt下,用命令:
tar -zxvf jetty-distribution-9.3.15.v20161220.tar.gzip -C /opt
进入到opt目录下,改个名:
$mv jetty-distribution-9.3.15.v20161220 jetty
创建jetty用户,并将其设置成/opt/jetty目录的属主
sudo useradd jetty -U -s /bin/false
sudo chown -R jetty:jetty /opt/jetty
拷贝Jetty脚本到启动目录,以便让它作为一个服务来运行
cp /opt/jetty/bin/jetty.sh /etc/init.d/jetty
创建Jetty设置文件,用命令:sudo vi /etc/default/jetty
添加以下行:
JAVA_HOME=/usr/java/jdk1.8.0_121
JETTY_HOME=/opt/jetty
NO_START=0
JETTY_ARGS=jetty.port=8085
JETTY_HOST=0.0.0.0
JETTY_USER=jetty
最后启动Jetty服务,但是报错了:
这个感觉是由于把jetty设为一个服务没有生效,我网上搜索了很长时间都没结果,这里不得不吐槽一下,百度搜索出来的全他妈是同一篇文章,看多了烦不说,还他妈浪费时间。
最后没办法直接切换到$JETTY_HOME目录下用命令:java -jar start.jar启动试试,果然可以:
因为前面我已经设置了JETTY_ARGS=jetty.port=8085,所以一直以为jetty的端口改成了8085,但是显示不能访问8085,认真看了一下启动信息,发现端口仍是8080端口,这也解释了刚才端口被tomcat占用的情况,试了一下用8080访问是可以的:
但是,用service jetty start命令启动还是不能用,在/etc/default/jetty配置的信息一直没生效,不知道原因
收获:
1、 安装nginx,有两种安装方式,一种在线安装,省事。一种本地下载源文件上传到服务器上安装,较复杂。我选了第二个方式,不少折腾。安装nginx前要先安装PCRE,zlib和SSL这三个,下载的原码存放到目录/usr/local/src
1) 安装PCRE,我下载的是pcre-8.40.tar.gz (http://www.pcre.org/)
解压:tar -jxvf pcre-8.40.tar.gz
进入解压目录,执行./configure
执行make
执行make install
2)安装zlib,我下载的版本是zlib-1.2.7.tar.gz (http://www.zlib.net/)
解压:tar -zxvf zlib-1.2.8.tar.gz
进入解压目录,执行./configure
执行make
执行make install
3)安装openssl,我用openssl-1.0.1s.tar.gz (http://www.openssl.org/source/)
解压:tar -zxvf openssl-1.0.1s.tar.gz
进入解压目录,执行./config (注意不是./configure)
执行make
执行make install
这里又要吐槽一下了,网上搜了一遍教程,安装openssl时只执行了解压命令,后面的./configure、make和make install都没执行,
导致我以为这里不能执行这三个命令,结果最后安装nginx时报错
4)最后才是安装nginx,我下载的最新版本nginx-1.9.9.tar.gz,
解压:tar -zxvf nginx-1.9.9.tar.gz
进入解压目录,执行./configure
执行make
执行make install
注意:./configure后面可以加参数,若安装时找不到上述依赖模块,使用--with-openssl=<openssl_dir>、--with-pcre=<pcre_dir>、--with-zlib=<zlib_dir>指定依赖的模块目录。如已安装过,此处的路径为安装目录;若未安装,则此路径为编译安装包路径,nginx将执行模块的默认编译安装。
最后,保险起见,修改了一下配置文件/usr/local/nginx/conf/nginx.conf,把listen端口号默认80修改为8181,浏览器访问
2、查看端口使用情况,使用netstat命令:
查看已经连接的服务端口(ESTABLISHED)
netstat -a
查看所有的服务端口(LISTEN,ESTABLISHED)
netstat -ap
查看指定端口,可以结合grep命令:
netstat -ap | grep 8080
也可以使用lsof命令:
lsof -i:8888
若要关闭使用这个端口的程序,使用kill + 对应的pid
kill -9 PID号
ps:kill就是给某个进程id发送了一个信号。默认发送的信号是SIGTERM,而kill -9发送的信号是SIGKILL,即exit。exit信号不会被系统阻塞,所以kill -9能顺利杀掉进程。
评论