nginx 安装与部署

nginx的部署与安装

对于nginx是用得多,了解得少。只知道可以用来做负载,服务分发

 

1、nginx 的安装

1、安装编译工具及库文件

yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel

2、安装PCRE

(1)安装路径:/user/local/src/

如果可以访问外网的话:

wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz

不能访问外网,可以先下载,然后上传到服务器上,

(2)解压

tar -zxvf pcre-8.45.tar.gz

(3)编译安装

cd pcre-8.45

./configure

make && make install

(4)安装完成,检测一下

pcre-config --version

 

3、开始安装Nginx 

去nginx 官网下载nginx安装包 nginx-1.20.2.tar.gz  ,然后放到 /usr/local/src

cd /usr/local/src

解压

tar -zxvf nginx-1.20.2.tar.gz

cd nginx-1.20.2

编译安装:

./configure --prefix=/opt/server01/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.45

make && make install

 

安装完成:

查看一下nginx版本:

cd /opt/server01/nginx

cd sbin

./nginx -v

至此,安装完成。

 

4、nginx 配置

默认使用的配置是  nginx/conf/nginx.conf , 做个备份,然后按需求修改这个配置文件

 

5、nginx 启停相关指令

启动:./nginx

停止:./nginx -s stop

重载配置文件 ./nginx -s reload

重启:./nginx -s reopen

 

 

验证配置文件

/usr/local/nginx/sbin/nginx -tc /usr/local/nginx/conf/nginx.conf

/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf

指定配置文件启动

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

nginx 重启

/usr/local/nginx/sbin/nginx -s reload

指定配置文件重启

/usr/local/nginx/sbin/nginx -s reload -c /usr/local/nginx/conf/nginx.conf




nginx 配置支持 ipv6

ipv6 入口访问平台

1、检查ipv6模块安装情况

先用./nginx -V 查看已安装的模块,如果有--with-ipv6,则表示已安装此模块,否则需要重新编译安装

2、nginx配置增加ipv6监听

修改 nginx.conf 文件

server {
  listen 8080;
  listen [::]:8080;
  root   /data/nginx/html/;
  index  index.html index.htm;
  location / {
    proxy_pass http://127.0.0.1:18080;
  }
  location /downloads/ {
    alias /data/downloads/;
  }
}




更好的步骤,请参考:

nginx安装及其配置详细教程 (引用更好的博文)

这个文档写得更详情。

一些备忘

情况1:

按文档执行完之后,启动nginx,发现总会报一个错
“nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)”
总报一个权限问题,一开始,还以为是因为用了root启动,或部分文档用了root,于是改了文件的归属,发现还是不行。

再看到,有博文提到,在 conf/ngin.conf 下的 user root; 这个配置项,改为与登录用户一致即可,发现还是不行。
再看到,有博文提:默认情况下Linux的1024以下端口是只有root用户才有权限占用
呃,好吧,确实,其实这个报错,已经很明确提到,是使用了80端口,绑定失败。

换了一个端口,确实就可以了。
也是一次在实践中才get到的知识。
备忘之。

访问主页403

嗯,一开始是以为文件访问路径的问题(一开始确实有问题),但改完之后,发现效果并不太好
emm, 会是什么原因呢。。。
过程就省略吧,这个问题是突然想到的,没有排错过程,soo,
直接说原因:我访问的端口,被配置了ssl , 也指定了固定的ip才能访问,但因为这个配置文件是从另外一个服务器上copy过来的。ip 自然是对不上,于是就报443了。

    server {
        listen       18080;
   #     listen 0.0.0.0:8443 ssl;      -- 一开始也是写了这个 ssl, 不太确定,一并注释掉
   #     ssl_certificate      cert/server.crt;
   #     ssl_certificate_key  cert/server.key;
        if ( $http_Host !~* ^10.12.100.106.* )   -- 这个 ip 需要与本机的ip一致。
        {
                        return 403;
        }

./nginx -v 和 ./nginx -V 是不同的!

./nginx -v 只能看到一些版本信息
./nginx -V 可以看到部署的模块信息
image

posted @ 2022-02-11 14:58  aaacarrot  阅读(97)  评论(0编辑  收藏  举报