centos安装、配置nginx

1、gcc环境安装
gcc -v 查看是否已经有安装gcc


image.png
yum -y install gcc
image.png

2、按顺序按照好剩余依赖文件

yum -y install openssl openssl-devel
yum -y install pcre pcre-devel
yum -y install zlib zlib-devel

3、安装nginx
安装wget命令工具

yum -y install wget
image.png

下载、解压、安装
(版本可访问官网检查,根据需求下载;官网地址:http://nginx.org/en/download.html)

wget http://nginx.org/download/nginx-1.18.0.tar.gz
tar -xzf nginx-1.18.0.tar.gz

进入目录并利用默认配置 执行命令

cd nginx-1.18.0

./configure
make
make install

4、简单配置conf文件

进入conf目录,仅修改端口为8088测试

cd /usr/local/nginx/conf
vi nginx.conf

按i进入修改,默认端口80改为8088,esc退出编辑,:wq保存退出,

image.png

5、启动、停止、重启等命令
切换目录到/usr/local/nginx/sbin
(此默认安装目录,可以通过命令查到安装目录whereis nginx)
进入目录后 运行 ./nginx

cd /usr/local/nginx/sbin
 ./nginx  
image.png

输入centos ip:8088访问到默认页面


成功访问

附上完整启动、停止、重启等命令

./nginx (-c nginx配置文件地址):#启动(可选参数为:-c nginx配置文件地址;默认目录的配置文件/usr/local/nginx/conf)
./nginx -s stop.   #停止(强制)
./nginx -s quit.    #停止(处理完成后停止)
./nginx -s reload   #重新加载

当 ngin x的配置文件 nginx.conf 修改后,要想让配置生效需要重启 nginx,

./nginx -s quit
./nginx

也可使用 reload而不重启即可将配置信息在 nginx 中生效:

./nginx -s reload

6、查看nginx运行状态

ps -ef | grep nginx
运行中

运行中

未运行

7、root与alias配置问题:
一般情况下,在nginx配置中的良好习惯是:
1)在location /中配置root目录;
2)在location /path中配置alias虚拟目录。

如下一例:

server {
          listen 80;
          server_name www.wangshibo.com;
          index index.html index.php index.htm;
          access_log /usr/local/nginx/logs/image.log;
    location / {
        root /var/www/html;
        }
   location /haha {                                          //匹配的path目录haha不需要真实存在alias指定的目录中
       alias /var/www/html/ops/;                       //后面的"/"符号一定要带上
       rewrite ^/opp/hen.php(.*)$ /opp/hen.php?s=$1 last;
    # rewrite ^/opp/(.*)$ /opp/hen.php?s=$1 last;
       }

   location /wang {                    //匹配的path目录wang一定要真实存在root指定的目录中(就/var/www/html下一定要有wang目录存在)
      root /var/www/html;
     }

 }

附上用于地图切片服务的配置

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    
    server {
        listen       8088;
        server_name  citydogis;
        
        #允许跨域请求的域,*代表所有
        add_header 'Access-Control-Allow-Origin' *;
        #允许带上cookie请求
        add_header 'Access-Control-Allow-Credentials' 'true';
        #允许请求的方法,比如 GET/POST/PUT/DELETE
        add_header 'Access-Control-Allow-Methods' *;
        #允许请求的header
        add_header 'Access-Control-Allow-Headers' *;
        
        #切片服务
     location /maptile/ {  
         alias /home/maptile/; #指定图片存放路径  
         autoindex on; #打开浏览功能
        }


     #nginx默认页面
        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;
        }
    }
}

8、代理转发proxy_pass配置
proxy_pass的地址配置时,当在后面的url加上了/,相当于是绝对根路径,则nginx不会把location中匹配的路径部分代理走。如果没有/,则会把匹配的路径部分(location后面的 /xxx/)也给代理走。

下面配置了两种可行的访问方式:

8.1、配置案例1(proxy_pass以“/”直接结尾)

 location /ArcgisMapServer/ {
            proxy_pass   http://127.0.0.1:6080/;
            break;
        }

访问:http://ip/ArcgisMapServer/
真实地址:http://127.0.0.1:6080/

访问:http://ip/ArcgisMapServer/arcgis/rest/services/sunduan/MapServer
真实地址:http://127.0.0.1:6080/arcgis/rest/services/sunduan/MapServer
此配置带来的问题是,虽然完整的地址可以对应到服务上,但点击"aqt"服务链接时,会出错,截图如下:

image.png

点击aqt链接后,地址发生了改变,对应不上了:
image.png

8.2、配置案例2(proxy_pass不以“/”结尾,location就要对应上真实的地址)

 location /arcgis/ {
            proxy_pass   http://127.0.0.1:6080;
            break;
        }


访问:http://ip/arcgis
真实地址:http://127.0.0.1:6080/arcgis

访问:http://ip/arcgis/rest/services/
真实地址:http://127.0.0.1:6080/arcgis/rest/services/

8.3、完整的arcgis服务配置如下:

 #arcgis 地图图层服务(土地规划与现状图层)
        location /arcgis/ {
            #proxy_pass http://122.224.52.56:6080/arcgis/rest/services/aqt/MapServer/;
            proxy_pass https://127.0.0.1:6443;
            proxy_redirect off;
            proxy_set_header   host             $host;
            proxy_set_header   x-real-ip        $remote_addr;
            proxy_set_header   x-forwarded-for  $proxy_add_x_forwarded_for;
            proxy_next_upstream error timeout invalid_header http_500 http_504 http_404;
            break;
        }

END


参考:
nginx代理转发proxy_pass
Nginx虚拟目录alias和root目录

linux基本命令

https://blog.csdn.net/qq_37345604/article/details/90034424
https://www.cnblogs.com/boonya/p/7907999.html

https://www.cnblogs.com/lishen2021/p/14664003.html

你可能感兴趣的:(centos安装、配置nginx)