Ubuntu 安装 Nginx 实现反向代理

Posted sinbada

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ubuntu 安装 Nginx 实现反向代理相关的知识,希望对你有一定的参考价值。

安装nginx依赖库(ubuntu平台)

最近域名通过了备案, 想着应用总不能带着端口号访问吧, 于是在网上踩了很多坑, 终于找到了一步直达的方法,起码这一次很顺利的实现了

安装gcc g++的依赖库

  ubuntu平台:

apt-get install build-essential
apt-get install libtool

  centeros平台:

// centos平台编译环境使用如下指令
// 安装make:
yum -y install gcc automake autoconf libtool make
 
// 安装g++:
yum install gcc gcc-c++  

安装pcre依赖库

sudo apt-get update
sudo apt-get install libpcre3 libpcre3-dev

安装zlib依赖库

apt-get install zlib1g-dev

安装ssl依赖库

apt-get install openssl

安装Nginx

#下载最新版本:
wget http://nginx.org/download/nginx-1.13.8.tar.gz
#解压:
tar -zxvf nginx-1.13.8.tar.gz
#进入解压目录:
cd nginx-1.13.8
#配置:
./configure --prefix=/usr/local/nginx 
#编辑nginx:
make
注意:这里可能会报错,提示“pcre.h No such file or directory”,具体详见:http://stackoverflow.com/questions/22555561/error-building-fatal-error-pcre-h-no-such-file-or-directory
需要安装 libpcre3-dev,
命令为:sudo apt-get install libpcre3-dev
#安装nginx:
sudo make install
#启动nginx:
sudo /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
注意:-c 指定配置文件的路径,不加的话,nginx会自动加载默认路径的配置文件,可以通过 -h查看帮助命令。
#查看nginx进程:
ps -ef|grep nginx

  接下来我们可以sudo (super user do) 一下看是否安装正常: (注意: 关注一下目录路径!!!)

[email protected]:/usr/local/nginx$ sudo ./sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

  如果显示如上, 则表示配置文件正确. 否则会有相关的提示

 

  接下来就是ip映射的关键步骤了: 

# 进入nginx配置目录文件夹下
[email protected]:~# cd /usr/local/nginx/conf/
# ls 查看文件你会看见一个 nginx.conf的文件
# 进入nginx.conf文件并编辑 
[email protected]:/usr/local/nginx/conf#  vi nginx.conf


# 你会找到这样的一部分

#设定虚拟主机配置
    server {
        #侦听80端口
        listen    80;
        #定义使用 www.nginx.cn访问
        server_name  www.nginx.cn;
 
        #定义服务器的默认网站根目录位置
        root html;
 
        #设定本虚拟主机的访问日志
        access_log  logs/nginx.access.log  main;
 
        #默认请求
        location / {
            
            #定义首页索引文件的名称
            index index.php index.html index.htm;   
 
        }
 
        # 定义错误提示页面
        error_page   500 502 503 504 /50x.html;
        location = /50x.html {
        }
 
        #静态文件,nginx自己处理
        location ~ ^/(images|javascript|js|css|flash|media|static)/ {
            
            #过期30天,静态文件不怎么更新,过期可以设大一点,
            #如果频繁更新,则可以设置得小一点。
            expires 30d;
        }
 
        #PHP 脚本请求全部转发到 FastCGI处理. 使用FastCGI默认配置.
        location ~ .php$ {
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include fastcgi_params;
        }
 
        #禁止访问 .htxxx 文件
            location ~ /.ht {
            deny all;
        }
 
    }

  以上代码实在太多了, 如果你和我一样只是前端代码可以再简化一下如下: 

(

编辑文件: i

编辑完成后 esc

之后 shift + : wq

)

# 默认的配置
server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
}

# 新添加的配置(如果有需要可以再添加)
server {
        listen 80;
        server_name chat.sinbada.top; # 你的域名地址

        location / {
            index index.html;
            proxy_pass http://101.132.69.201:8888; # 你的项目ip地址
        }
}

  OK, 至此所有步骤基本完成, 最后一步就是重启nginx

nginx -s reload     重新载入nginx(当配置信息发生修改时)  

  大功告成!!!

  直接打开域名就可以访问项目了, 完美!

 

Nginx常用命令

  启动Nginx

nginx常用命令  
    nginx -c /usr/local/nginx/conf/nginx.conf  启动nginx(windows下start nginx);  
    nginx -s quit       停止ngix  
    nginx -s reload     重新载入nginx(当配置信息发生修改时)  
    nginx -s reopen     打开日志文件  
    nginx -v            查看版本  
    nginx -t            查看nginx的配置文件的目录  
    nginx -h            查看帮助信息  

  

以上是关于Ubuntu 安装 Nginx 实现反向代理的主要内容,如果未能解决你的问题,请参考以下文章

nginx在ubuntu上的反向代理实现

Ubuntu14.04下Nginx反向代理Odoo域名

浅谈Nginx做反向代理

在MacCentOSUbuntu平台下源码安装Nginx反向代理服务器

nginx 反向代理 on ubuntu

Nginx