1、gcc环境安装
gcc -v 查看是否已经有安装gcc
yum -y install gcc
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
下载、解压、安装
(版本可访问官网检查,根据需求下载;官网地址: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保存退出,
5、启动、停止、重启等命令
切换目录到/usr/local/nginx/sbin
(此默认安装目录,可以通过命令查到安装目录whereis nginx)
进入目录后 运行 ./nginx
cd /usr/local/nginx/sbin
./nginx
输入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"服务链接时,会出错,截图如下:
点击aqt链接后,地址发生了改变,对应不上了:
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