Linux | Nginx

Nginx 简单来说就是一个反向代理软件,支持高并发连接,负载均衡,资源消耗少,稳定……

一、安装

这里介绍的是 CentOS 环境,步骤如下:

  • 下载编译
  • 配置文件
  • 开机启动
  • 检查服务

1.1 下载编译

从 Nginx 下载页面 获取指定版本的压缩包链接,通过 wget 命令下载下来:

sudo wget http://nginx.org/download/nginx-1.14.0.tar.gz

上面选的是当前稳定版本:

创建、拷贝、解压:

sudo mkdir /usr/local/nginx

sudo cp nginx-1.14.0.tar.gz /usr/local/nginx

cd /usr/local/nginx

tar xvzf nginx-1.14.0.tar.gz

可以参考 Centos7安装Nginx实战 中的【安装步骤】。

比如,你可以这样做:

sudo mkdir /var/run/nginx

cd nginx-1.14.0

./configure --prefix=/usr/local/nginx && make install

编译效果如图:


1.2 配置文件

编译完成后,编辑 ./conf/nginx.conf 文件,在 server 节点后面增加:

include /etc/nginx/conf.d/*.conf;

如图所示:

接着在 /etc/nginx/conf.d 目录下创建对应的配置文件,比如:

sudo touch game.conf

编辑 game.conf 配置文件,添加如下内容:

upstream game {
    server 127.0.0.1:9000;
}

server {
    listen 80;
    server_name game.randall.top;

    location / {
        proxy_pass http://game;
    }
}

还可以新建 smith.conf 配置文件:

注意:对应子域名映射到的具体端口,一定不能搞混了。

说一个额外内容:

如果你是用 apt 安装的 Nginx,那么这个内容已经写入配置文件,并且额外附带一个 sites-enabled 文件夹。

按照名称,在 sites-available 文件夹下放置可用的 Web 服务配置,然后在 sites-enabled 文件夹中使用 ln -s /etc/nginx/sites/available/ 进行软链接,就是最好的配置方式。

1.3 开机启动

Nginx 应该做到 开机启动,相关内容参考这篇文章:基于CentOS 7配置Nginx自启动。

与文中不同是,我们的 nginx.service 文件是这样的:

[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx  -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

其他步骤则基本一致,此处就不画蛇添足了。

1.4 检查服务

启动 Nginx 后,可以用 Chrome 浏览器打开 game.randall.topsmith.randall.top 试试:

这是因为没有设置 域名解析,导致 DNS 服务器找不到对应的 IP 地址。

在 阿里云 控制台的域名解析中,添加记录:

smith 也是一样的添加,完成之后,基本五分钟以内就可以看到 Nginx 的 502 页面:

提示:这是因为 Play 程序还没启动,端口映射异常,所以出现 Nginx 默认的 502 页面。*

如果添加了记录,却忘记建立 Nginx 的映射配置,就会看到这样的页面:

这时只需要在 /etc/nginx/conf.d/ 下创建对应文件,添加与 game 差不多的内容(名字替换掉)就行。

总结

其实更推荐用包管理器来安装这些软件,比如 aptyum 等等。

你可能感兴趣的:(Linux | Nginx)