劲枫 2018-12-18 19:59:54 1577 收藏
分类专栏: 笔记
版权
sudo service apache2 stop
update-rc.d -f apache2 remove
sudo apt-get remove apache2
sudo apt-get update
sudo apt-get install nginx
nginx流量拆分、端口映射、静态资源代理
————————————————
版权声明:本文为CSDN博主「劲枫」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/TCF_JingFeng/article/details/85063297
linux系统部署Nginx
java后台开发
一、linux系统部署Nginx
1、准备工作
Nginx的安装依赖于以下三个包,意思就是在安装Nginx之前首先必须安装一下的三个包,注意安装顺序如下:
1 SSL功能需要openssl库,直接通过yum安装:
yum install openssl
2 gzip模块需要zlib库,直接通过yum安装:
yum install zlib
3 rewrite模块需要pcre库,直接通过yum安装:
yum install pcre
2、安装Nginx依赖项和Nginx
1
使用yum安装nginx需要包括Nginx的库,安装Nginx的库
rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
2
使用下面命令安装nginx
yum install nginx
3
启动Nginx
service nginx start
nginx -s reload :修改配置后重新加载生效
3、直接浏览器访问localhost就会出现Nginx的欢迎界面表示你安装成功了,否则就是安装失败了
4、配置Nginx
CentOS安装Nginx后,安装在了
/etc/nginx/目录下,你可以打开/etc/nginx/conf.d/default/conf查看里面的配置,包括监听端口,域名和nginx访问的根目录
二、linux下配置nginx使用service nginx start 服务
1:接下来我们简单的为它提供一个服务脚本吧!
# vim /etc/init.d/nginx
2:新建文件/etc/rc.d/init.d/nginx,内容如下:
#!/bin/bash
# chkconfig:235 85 15
# description: Nginx is an HTTP server
. /etc/rc.d/init.d/functions
start() {
echo "Start..."
/usr/local/nginx/sbin/nginx &> /dev/null
if [ $? -eq 0 ];then
echo "Start successful!"
else
echo "Start failed!"
fi
}
stop() {
if killproc nginx -QUIT ;then
echo "Stopping..."
fi
}
restart() {
stop
sleep 1
start
}
reload() {
killproc nginx -HUP
echo "Reloading..."
}
configtest() {
/usr/local/nginx/sbin/nginx -t
}
case $1 in
start)
start ;;
stop)
stop ;;
restart)
restart ;;
reload)
reload ;;
configtest)
configtest ;;
*)
echo "Usage: nginx {start|stop|restart|reload|configtest}"
;;
esac
之后给这个文件可执行权限:
chmod +x /etc/init.d/nginx
现在可以使用 start,stop 这些参数控制Nginx服务了
Nginx编译安装时常见错误分析
Nginx编译安装时常见错误分析 – a2796749的专栏 – CSDN博客
linux如何查看nginx是否启动
第一种方法:查看进程列表并过滤
ps -ef | grep nginx
第二种方法:使用netstat命令
netstat -anp | grep :80
nginx卸载
yum remove nginx
linux系统上nginx安装及简单的反向代理配置
1. 更改配置文件
其配置文件位置: /application/nginx/conf/nginx.conf
2.重启nginx
先 ps -ef | grep nginx ,会出现5个关于nginx的进程,如果5个进程的id分别为 100、101、102、103、104
杀掉所有nginx进程 kill -9 101 102 103 104
进入目录 cd /usr/sbin
重启 nginx -c /etc/nginx/nginx.conf
至于 nginx -s reload 不建议使用,本人亲试,有时候无效
启动nginx的时候也可以 cd /usr/sbin,然后直接 nginx , (-c 配置文件,表示根据指定文件启动,如果该配
置文件和安装的nginx命令不是一个版本,会报错) 启动后,nginx -t 可以查看是根据那个配置文件启动的,
所以建议linux系统里只保留一个nginx.conf文件, 以免出现冲突,一般nginx.conf在两个位置,
分别是/usr/local/nginx/conf/nginx.conf和/etc/nginx/nginx.conf
nginx.conf 配置如下:
http{
.........
server{
listen 80;
server_name 192.16.10.10;
location / {
proxy_pass http://localhost:8081
}
}
server{
listen 80;
server_name www.acdf.com;
location / {
proxy_pass http://localhost:8082
}
}
}
疑问:
1.需要两个tomcat实例共用 80 端口,是不是 监听 listen 都为 80 ?
2.nginx 是怎样根据请求地址 来正则匹配 到不同的 虚拟主机的?我的理解是申请两个域名都绑定到我
映射的同一 ip,然后在不同的 server{} 中的 server_name 填入两个域名,通过域名匹配再转到本地的
http://localhost:8081
3.就是 server_name ,这个到底是什么意思,该怎么填写?网上有说填 localhost 的,也有 像我第一种
配置直接写ip:port 192.16.10.10:8081 的。如果是这种ip:port 方式的话,我的前端请求地址该如何写
,是直接写我映射的地址 http://192.16.10.10 还是 http://192.16.10.10:8081 ? 但是这样写的话
,我监听的 80 端口还有作用吗? 我的 server_name 又该怎样写?
server下的节点:
server_name :基于域名的虚拟主机,转发到哪个地址
listen:监听80端口
proxy_pass:代理到哪个地址
nginx 启动错误”nginx: [emerg] host not found in upstream “解决方案
利用nginx进行反向代理的时候,我们会配置proxy_pass。在启动nginx的时候,会报
nginx: [emerg] host not found in upstream "yq.object.com" in
/usr/local/nginx/conf/vhost/yq.nginx.com.conf:19 这个错误。
其实nginx配置语法上没有错误的,只是系统无法解析这个域名,所以报错.
解决办法就是添加dns到/etc/resolv.conf 或者是/etc/hosts,让其能够解析到IP。具体步骤如下:
vim /etc/hosts
修改hosts文件,在hosts文件里面加上一句
127.0.0.1 localhost.localdomain yq.object.com