Linux下安装Nginx以及常见问题

转载:https://www.jianshu.com/p/9f2c162ac77c

Nginx简介

Nginx是什么?

Nginx是一款轻量级Web服务器,也是一款反向代理服务器
官网:http://nginx.org/
中文文档: http://www.nginx.cn/doc/

Nginx能干什么?

Nginx能干的事情很多,这里简要罗列一-些:

  1. 可直接支持Rails和PHP的程序
  2. 可作为HTTP反向代理服务器
  3. 作为负载均衡服务器
  4. 作为邮件代理服务器
  5. 帮助实现前端动静分离

Nginx特点

Nginx安装

Nginx下载

官网下载:http://nginx.org/en/download.html
或者直接在linux执行命令:wget http://nginx.org/download/nginx-1.12.2.tar.gz
这里下载的版本是1.12.2

安装步骤

 

# 安装依赖
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
# 解压缩
tar -zxvf linux-nginx-1.12.2.tar.gz
cd nginx-1.12.2/
# 执行配置
./configure
# 编译安装(默认安装在/usr/local/nginx)
make
make install

防火墙配置

nginx默认监听80端口,如果未关闭防火墙需要配置iptables规则开放80端口(以centos6为例)。
编辑配置文件:vim /etc/sysconfig/iptables
在文件中间添加iptables规则
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
重启防火墙:service iptables restart
或者关闭iptables规则:iptables -F && iptables -t nat -F

Nginx验证

nginx主配置文件:/usr/local/nginx/conf/nginx.conf
nginx日志文件:/usr/local/nginx/logs/access.log
启动Nginx:/usr/local/nginx/sbin/nginx
然后直接访问ip地址,比如:http://192.168.0.110/,如果能看到如下Nginx主页说明安装ok。

常见问题

-bash: nginx: command not found  要配置环境变量

https://www.cnblogs.com/zhangzhonghui/p/9999827.html

nginx: [error] invalid PID number "" in "/usr/local/nginx/logs/nginx.pid"

[root@localhost nginx]/usr/local/nginx/sbin/nginx -s reload
提示 nginx: [error] invalid PID number "" in "/usr/local/nginx/logs/nginx.pid"

[root@localhost nginx]# cd logs
[root@localhost logs]# ls
access.log  error.log  nginx-access.log  nginx_error.log
果然没有/usr/local/nginx/logs/nginx.pid 文件

解决方法:
[root@localhost nginx]/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

 

Nginx常用命令

测试配置文件:${Nginx}/sbin/nginx -t
启动命令:${Nginx}/sbin/nginx
停止命令:${Nginx}/sbin/nginx -s stop/quit
重启命令:${Nginx}/sbin/nginx -s reload
查看进程命令:ps -ef | grep nginx
平滑重启:kill -HUP [Nginx主进程号(即ps命令查到的PID)]

 

Nginx反向代理配置

我们希望实现的是通过访问某个域名能够访问到tomcat的主页。

  1. 在Nginx安装目录的conf目录下新建一个vhost目录,然后在vhost目录下新建配置文件,文件名需要以.conf结尾。

 

cd /usr/local/nginx/conf/
mkdir vhost
cd vhost/
vim www.silly.com.conf

配置文件添加如下内容,这里server_name配置的是主机对应的域名,如果没有域名可以通过配置host来映射虚拟域名,或者这里直接配置ip地址,然后用ip访问,proxy_pass是反向代理配置。

 

server {
    listen 80;
    autoindex on;
    server_name www.silly.com;
    access_log /usr/local/nginx/logs/access.log combined;
    index index.html index.htm index.jsp index.php;
    if ( $query_string ~* ".*[\;'\<\>].*" ){
        return 404;
    }

    location / {
        proxy_pass http://127.0.0.1:8080;
        add_header Access-Control-Allow-Origin *;
    }
}
  1. 配置完成之后,编辑Nginx主配置文件nginx.conf,在http节点下添加如下内容,注意分号不可省略。

  1. 因为这里使用的是虚拟机,所以需要配置host文件,注意host配置的应该是我们使用的客户端也就是浏览器所在的主机host,这里使用的是windows系统访问,所以应该在windows下配置host,位置:C://Windows/System32/drivers/etc
    编辑hosts文件,在文件末尾添加内容(虚拟机ip + 需要映射的域名):
    192.168.0.110 http://www.silly.com
    配置好了host后,打开cmd,执行ping命令验证是否生效。

  1. 重启Nginx:/usr/local/nginx/sbin/nginx -s reload
    然后启动tomcat:${tomcat}/bin/startup.sh
  2. 访问域名:http://www.silly.com/,就可以访问到tomcat的主页了。

总结:整个过程就是当我们访问域名时,首先根据host配置映射到了一个IP地址,也就是访问到了虚拟机,不加端口默认访问的就是80端口,也就是访问到了虚拟机的Nginx,在Nginx配置中对该域名进行了反向代理,代理到了本机的8080端口服务,所以最终就访问到了虚拟机的Tomcat服务器。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值