您现在的位置是:首页 > 正文

CppCMS和Nginx协同工作

2024-01-30 21:30:38阅读 0

为什么需要Nginx

CppCMS自己已经支持Http访问,为什么还需要Nginx.一些原因是我们需要动态负载平衡,还有原因是安全问题。下面的文字来自于CppCMS站点。
CppCMS provides basic implementation of HTTP protocol and thus it can run behind reverse HTTP Proxy. But this option is not recommended for use in production environment unless HTTP protocol is fully sanitized by the proxy itself, otherwise you may expose yourself to various security issues.

Nginx开启FastCGI

在nginx.conf文件的server一节添加如下配置,请注意^/hello(.*)$代表用CppCMS构建的Web站点的URI的上下文路径。而fastcgi_pass 192.168.30.17:8081 则是指Nginx要和位于30.17的CppCMS站点通过FastCGI协议通信。这里其实可以指定多个。

# for cppms FastCGI set $path_info ""; if ( $fastcgi_script_name ~ ^/hello(.*)$ ) { set $path_info $1; } # Specify UTL to match location ~ ^/hello.*$ { # Socket to communicate fastcgi_pass 192.168.30.17:8081; # All supported CGI variables fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length; fastcgi_param SCRIPT_NAME /hello; fastcgi_param PATH_INFO $path_info; fastcgi_param REQUEST_URI $request_uri; fastcgi_param DOCUMENT_URI $document_uri; fastcgi_param DOCUMENT_ROOT $document_root; fastcgi_param SERVER_PROTOCOL $server_protocol; fastcgi_param GATEWAY_INTERFACE CGI/1.1; fastcgi_param SERVER_SOFTWARE nginx; fastcgi_param REMOTE_ADDR $remote_addr; fastcgi_param REMOTE_PORT $remote_port; fastcgi_param SERVER_ADDR $server_addr; fastcgi_param SERVER_PORT $server_port; fastcgi_param SERVER_NAME $server_name; }

CppCMS配置

现在来配置30.17上的CppCMS服务。主要是config.js文件的内容:
"service" : {
"api" : "fastcgi",
"ip" : "192.168.30.17",
"port" : 8081
    }

测试

现在启动CppCMS服务和Nginx服务。然后测试通过。

转载于:https://www.cnblogs.com/believeit/archive/2011/09/03/2183531.html

网站文章

  • 12-Oracle包的定义与使用

    本章内容 1.包概述 2.包的创建 3.包的调用 4.包重载 5.包的初始化 6.包的持续性 7.包的串行化 8.包的管理

    2024-01-30 21:30:10
  • 面试篇--网络通信

    面试篇--网络通信

    目录【前言】【TCP三次握手】在TCP/IP协议中,TCP协议提供可靠的连接服务,采用 三次握手建立一个连接.1.第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEN...

    2024-01-30 21:30:03
  • 阿里面试题

    阿里面试题

    阿里面试题文章目录阿里面试题JDK、JRE、JVM之间的区别hashCode()与equals()之间的关系String、StringBuffer、StringBuilder的区别泛型中extends...

    2024-01-30 21:29:48
  • leecode 450. 删除二叉搜索树中的节点

    leecode 450. 删除二叉搜索树中的节点

    450. 删除二叉搜索树中的节点 本题是删除搜索树中的指定值,和添加值比,却复杂很多,但是本题的具体逻辑我竟然能自己慢慢实现出来,第一次感觉到对递归理解加深了。/** * Definition ...

    2024-01-30 21:29:17
  • 图片的黑魔法——GitHub 热点速览 v.21.13

    图片的黑魔法——GitHub 热点速览 v.21.13

    作者:HelloGitHub-小鱼干图片的黑魔法并不是图片修复、旧照上色,而是将任意文件打包成图片的样子,上传到推特。看过去这张图片平平无奇,那么普通却深藏不露,工程师 DavidBuch...

    2024-01-30 21:29:09
  • JS数组对象——英文按照首字母进行排序sort()、localeCompare()

    JS数组对象——英文按照首字母进行排序sort()、localeCompare()

    排序在后台管理系统对于数据的处理中用得非常多。本期文章重点介绍根据英文首字母排序。将用到JavaScript的sort()和localeCompare()方法。

    2024-01-30 21:29:01
  • a-descriptions-item描述列表点击按钮显示相应内容

    a-descriptions-item描述列表点击按钮显示相应内容

    实现功能:点击查询按钮,显示相应数据,部分数据只读,部分数据可修改。 实现思路:首先通过点击按钮事件从接口获取内容,然后通过{{}}显示在界面上。 查询按钮触发事件代码 searchQuery(){ ...

    2024-01-30 21:28:30
  • exe4j使用方法

    exe4j使用方法

    1.选jar in exe。2.选择jar包,选择主类。

    2024-01-30 21:28:24
  • Android ADIL和BInder

    Android ADIL和BInder

    AIDL(Android接口定义语言),可以使用它定义客户端与服务端进程间通信(IPC)的编程接口。在Android系统中,每个进程都运行在一块独立的内存中,在其中完成自己的各项活动,与其他进都分隔开...

    2024-01-30 21:28:16
  • 版本管理-SVN冲突爆红后如何通过颜色和快捷键准确无误地合并代码(一)

    版本管理-SVN冲突爆红后如何通过颜色和快捷键准确无误地合并代码(一)

    SVN冲突出现场景如今是一个团结协作的时代,开发一个系统,往往会多人协作共同完成。版本管理是必不可少的,常用的软件有Git,SVN等。今天说一下,SVN管理版本时,如果出现冲突后,如何快速解决冲突。首...

    2024-01-30 21:27:47