ubuntu中使用Nginx配置Mapserver

本文详细介绍了如何在Ubuntu系统上,利用宝塔面板安装并配置Mapserver,包括安装Mapserver、设置FastCGI服务、修改Nginx配置文件,并提供了测试配置成功的步骤。适合对服务器环境不熟悉的开发者参考。
摘要由CSDN通过智能技术生成

前言

对于一部分开发者和轻量级环境而言,Nginx无疑有很多优势,很可能我们已有的环境是Lnmp环境(Nginx + mysql + php)。如果你已有的Lnmp环境下已经部署了内容。现在又想添加mapserver,有和我一样对服务器环境部署不是那么熟悉,可能会遇到一个很头疼的问题——整个中文互联网就没有个靠谱的NGINX + Mapserver部署教程。
这里我折腾了很久解决了,在此将方法分享在这里帮助有同样问题的伙伴们解决。

一、安装配置 mapserver

1、安装mapserver

先决条件你已经安装了 Lnmp环境。

终端输入:

sudo apt-get install mapserver-bin mapserver-doc

注:因为 UbuntuGIS库的存在,这里安装时相关库会自动安装。

2、使用spawn-fcgi将Mapserver配置为CGI Worker

如果尚未安装,请安装spawn-fcgi。

sudo apt-get install spawn-fcgi

FastCGI配置

将mapserver作为cgi服务运行。以超级用户权限在/etc/init.d/mapserv中创建文件。放入此内容并保存。


> sudo touch /etc/init.d/mapserv


> cd /etc/init.d/
> ls

查看是否已经生成()

添加下面内容到mapserv

#!/usr/bin/env sh
#
# description: Mapserver Service Manager
# processname: lt-mapserv
# pidfile: /var/run/mapserv.pid
# Source function library.
#. /etc/init.d/functions
# Check that networking is up.
#. /etc/sysconfig/network
if [ "$NETWORKING" = "no" ]
then
    exit 0
fi
PREFIX=/usr
NAME=mapserv
PID=/var/run/mapserv.pid
DAEMON=$PREFIX/bin/spawn-fcgi
DAEMON_OPTS=" -a 127.0.0.1 -p 9999 -F 4 -u www-data -U www-data -P $PID $PREFIX/bin/mapserv"
start () {
    echo -n $"Starting $NAME "
        exec $DAEMON $DAEMON_OPTS >> /dev/null
        daemon --pidfile $PID
        RETVAL=$?
        echo
    [ $RETVAL -eq 0 ]
}
stop () {
    echo -n $"Stopping $NAME "
        killproc -p $PID
        #make sure all mapservers are closed
        pkill -f lt-mapserv
        RETVAL=$?
        echo
    if [ $RETVAL -eq 0 ] ; then
        rm -f $PID
    fi
}
restart () {
    stop
    start
}
# See how we were called.
case "$1" in
    start)
        start
    ;;
    stop)
        stop
    ;;
    status)
        status lt-mapserv
        RETVAL=$?
    ;;
    restart)
        restart
    ;;
    *)
        echo $"Usage: $0 {start|stop|status|restart}"
        RETVAL=2
    ;;
esac
exit $RETVAL

向文件添加执行权限。


> sudo chmod +x /etc/init.d/mapserv

使用命令启动mapserver服务


> sudo /etc/init.d/mapserv start

修改Nginx配置文件(这里以宝塔面板环境为例):

在配置中添加
 location / {
        # Load from /etc/init.d/mapserv
        fastcgi_pass 127.0.0.1:9999;
        include fastcgi_params;
        fastcgi_param SCRIPT_NAME /usr/bin/mapserv$fastcgi_script_name;
    }

修改/www/server/nginx/conf/nginx.conf(宝塔面板双击编辑)

在这里插入图片描述
修改后:

user  www www;
worker_processes auto;
error_log  /www/wwwlogs/nginx_error.log  crit;
pid        /www/server/nginx/logs/nginx.pid;
worker_rlimit_nofile 51200;

events
    {
        use epoll;
        worker_connections 51200;
        multi_accept on;
    }

http
    {
        include       mime.types;
		#include luawaf.conf;

		include proxy.conf;

        default_type  application/octet-stream;

        server_names_hash_bucket_size 512;
        client_header_buffer_size 32k;
        large_client_header_buffers 4 32k;
        client_max_body_size 50m;

        sendfile   on;
        tcp_nopush on;

        keepalive_timeout 60;

        tcp_nodelay on;

        fastcgi_connect_timeout 300;
        fastcgi_send_timeout 300;
        fastcgi_read_timeout 300;
        fastcgi_buffer_size 64k;
        fastcgi_buffers 4 64k;
        fastcgi_busy_buffers_size 128k;
        fastcgi_temp_file_write_size 256k;
		fastcgi_intercept_errors on;

        gzip on;
        gzip_min_length  1k;
        gzip_buffers     4 16k;
        gzip_http_version 1.1;
        gzip_comp_level 2;
        gzip_types     text/plain application/javascript application/x-javascript text/javascript text/css application/xml;
        gzip_vary on;
        gzip_proxied   expired no-cache no-store private auth;
        gzip_disable   "MSIE [1-6]\.";

        limit_conn_zone $binary_remote_addr zone=perip:10m;
		limit_conn_zone $server_name zone=perserver:10m;

        server_tokens off;
        access_log off;
server {
    listen 80;
    listen [::]:80;
    server_name mapserver.local;

    add_header Access-Control-Allow-Origin *;

    location / {
        # Load from /etc/init.d/mapserv
        fastcgi_pass 127.0.0.1:9999;
        include fastcgi_params;
        fastcgi_param SCRIPT_NAME /usr/bin/mapserv$fastcgi_script_name;
    }
}

server
    {
        listen 888;
        server_name phpmyadmin;
        index index.html index.htm index.php;
        root  /www/server/phpmyadmin;

        #error_page   404   /404.html;
        include enable-php.conf;

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
            expires      30d;
        }

        location ~ .*\.(js|css)?$
        {
            expires      12h;
        }

        location ~ /\.
        {
            deny all;
        }

        access_log  /www/wwwlogs/access.log;
    }
include /www/server/panel/vhost/nginx/*.conf;
}

二、测试设否配置成功

怎么看mapserver是否配置成功

在局域网下的浏览器中打开如下链接:
http://替换自己 IP /?

注意:不是
http://替换自己 IP /cgi-bin/mapserv?

如果返回结果为如下:

No query information to decode. QUERY_STRING is set, but empty.

在这里插入图片描述
说明你的mapserver配置成功。大功告成!!!!

您好!要在Ubuntu使用Nginx配置 RTMPS,您需要按照以下步骤进行操作: 1. 安装 Nginx: ``` sudo apt update sudo apt install nginx ``` 2. 安装 OpenSSL 开发库: ``` sudo apt install libssl-dev ``` 3. 下载 Nginx 的 RTMP 模块: ``` wget https://github.com/arut/nginx-rtmp-module/archive/master.zip unzip master.zip ``` 4. 下载 Nginx 的源码: ``` wget http://nginx.org/download/nginx-1.19.7.tar.gz tar -zxvf nginx-1.19.7.tar.gz cd nginx-1.19.7 ``` 5. 配置编译参数并编译安装 Nginx: ``` ./configure --add-module=../nginx-rtmp-module-master make sudo make install ``` 6. 配置 RTMPS: 编辑 nginx.conf 文件: ``` sudo nano /usr/local/nginx/conf/nginx.conf ``` 7. 在 `http` 上下文添加以下配置: ``` http { ... server { listen 80; listen 443 ssl; ssl_certificate /path/to/your/certificate.crt; ssl_certificate_key /path/to/your/private.key; ... } ... } ``` 8. 在 `rtmp` 上下文添加以下配置: ``` rtmp { server { listen 1935; chunk_size 4096; application myapp { live on; allow publish 127.0.0.1; deny publish all; allow play all; push rtmps://live.twitch.tv/app/YOUR_TWITCH_STREAM_KEY; } } } ``` 注意替换 `/path/to/your/certificate.crt` 和 `/path/to/your/private.key` 为您的 SSL 证书和私钥路径。另外,将 `YOUR_TWITCH_STREAM_KEY` 替换为您的 Twitch 直播流密钥。 9. 保存并关闭文件。 10. 启动 Nginx: ``` sudo /usr/local/nginx/sbin/nginx ``` 现在,您的 Nginx 已经配置好了 RTMPS 支持。可以使用 OBS 或其他 RTMP 客户端将视频流推送到 RTMPS://您的服务器地址/myapp。 希望这对您有所帮助!如果您有任何其他问题,请随时提问。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值